flutter_login_widget/lib/sdk/screen.dart
2022-09-20 16:32:46 +02:00

65 lines
1.8 KiB
Dart

import 'package:flutter/material.dart';
import '../extensions/widget.dart';
import '../flutter_login_view.dart';
import '../plugins/login/choose_login.dart';
class ScreenService with NavigateWidgetMixin {
late bool shouldShowIntroductionScreen;
late bool shouldShowPolicyPage;
Widget getAppshellScreenWrapper(
BuildContext context, {
required Widget child,
String? backgroundImg,
}) {
var bgImage =
backgroundImg ?? context.appShell().config.appOptions.backgroundImage;
if (bgImage.isNotEmpty) {
late AssetImage image;
var split = bgImage.split(';');
image = split.length < 2
? AssetImage(bgImage)
: AssetImage(
split.first,
package: split.last,
);
return Container(
height: MediaQuery.of(context).size.height,
decoration: BoxDecoration(
image: DecorationImage(
image: image,
fit: BoxFit.cover,
),
),
child: child,
);
} else {
return child;
}
}
void openLoginScreen(BuildContext context) => navigateFadeTo(
context,
(ctx) => (FlutterLogin.of(context)
.config
.loginOptions
.loginMethod
.contains(LoginMethod.LoginInteractiveWithSocial) ||
FlutterLogin.of(context)
.config
.loginOptions
.loginMethod
.contains(LoginMethod.LoginInteractiveWithPhoneNumber))
? ChooseLogin(
allowExit: true,
child: context.appShell().app,
)
: EmailPasswordLogin(
allowExit: true,
child: context.appShell().app,
),
);
}