mirror of
https://github.com/Iconica-Development/flutter_login_widget.git
synced 2025-05-19 13:43:44 +02:00
65 lines
1.8 KiB
Dart
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,
|
||
|
),
|
||
|
);
|
||
|
}
|