diff --git a/lib/extensions/context_extension.dart b/lib/extensions/context_extension.dart index bab455de..92721595 100644 --- a/lib/extensions/context_extension.dart +++ b/lib/extensions/context_extension.dart @@ -4,7 +4,6 @@ import 'package:provider/provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart'; import 'package:test_sa/new_views/swipe_module/dialoge/confirm_dialog.dart'; -import '../controllers/providers/settings/setting_provider.dart'; import '../controllers/providers/settings/setting_provider.dart'; extension BuildContextExtension on BuildContext { @@ -17,13 +16,11 @@ extension BuildContextExtension on BuildContext { bool get isAr => Provider.of(this).language == "ar"; SettingProvider get settingProvider => Provider.of(this, listen: false); + UserProvider get userProvider => Provider.of(this, listen: false); void showConfirmDialog(String message, {String? title, VoidCallback? onTap}) => showDialog( context: this, - builder: (BuildContext cxt) => ConfirmDialog( - message: message, - onTap: onTap, - ), + builder: (BuildContext cxt) => ConfirmDialog(message: message, onTap: onTap, title: title), ); } diff --git a/lib/new_views/pages/splash_page.dart b/lib/new_views/pages/splash_page.dart index c250c7b0..4178cdbf 100644 --- a/lib/new_views/pages/splash_page.dart +++ b/lib/new_views/pages/splash_page.dart @@ -16,6 +16,7 @@ import 'package:test_sa/new_views/pages/land_page/land_page.dart'; import 'package:test_sa/new_views/pages/login_page.dart'; import 'package:test_sa/new_views/pages/unsafe_device_view.dart'; import 'package:test_sa/new_views/swipe_module/dialoge/local_auth_failed_dialog.dart'; +import 'package:test_sa/new_views/swipe_module/dialoge/single_btn_dialog.dart'; import 'package:test_sa/new_views/swipe_module/swipe_view.dart'; import 'package:test_sa/views/update_available_screen.dart'; @@ -87,7 +88,17 @@ class _SplashPageState extends State { if (isValid && _settingProvider.isLocalAuthEnable) { handleLocalAuth(); } else { - Navigator.of(context).pushNamedAndRemoveUntil(LoginPage.routeName, (routes) => true); + showDialog( + context: context, + builder: (BuildContext cxt) => SingleBtnDialog( + title: "Session Expired", + message: "Login session is expired, Please login.", + okTitle: "Login", + onTap: () { + Navigator.pop(context); + Navigator.of(context).pushNamedAndRemoveUntil(LoginPage.routeName, (routes) => true); + }), + ); } } } diff --git a/lib/new_views/swipe_module/dialoge/single_btn_dialog.dart b/lib/new_views/swipe_module/dialoge/single_btn_dialog.dart new file mode 100644 index 00000000..9561f318 --- /dev/null +++ b/lib/new_views/swipe_module/dialoge/single_btn_dialog.dart @@ -0,0 +1,46 @@ +import 'package:flutter/material.dart'; +import 'package:test_sa/extensions/int_extensions.dart'; +import 'package:test_sa/extensions/text_extensions.dart'; +import 'package:test_sa/extensions/widget_extensions.dart'; +import 'package:test_sa/new_views/app_style/app_color.dart'; +import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; + +class SingleBtnDialog extends StatelessWidget { + final String? title; + final String? message; + final String? okTitle; + final VoidCallback? onTap; + + const SingleBtnDialog({Key? key, this.title, this.message, this.okTitle, this.onTap}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Dialog( + backgroundColor: Colors.white, + shape: const RoundedRectangleBorder(), + insetPadding: const EdgeInsets.only(left: 21, right: 21), + child: Padding( + padding: const EdgeInsets.only(left: 20, right: 20, top: 18, bottom: 28), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + title ?? "Confirm", + style: const TextStyle(fontSize: 24, fontWeight: FontWeight.w600, color: Colors.black87, height: 35 / 24, letterSpacing: -0.96), + ).paddingOnly(top: 16), + message != null ? message!.heading5(context).custom(color: AppColor.neutral70) : const SizedBox(), + 28.height, + AppFilledButton( + label: okTitle ?? "OK", + height: 46, + onPressed: onTap ?? () => Navigator.pop(context), + textColor: Colors.white, + //color: Ap.green, + ), + ], + ), + ), + ); + } +}