splash session expired handled.

design_3.0_dark_mode
Sikander Saleem 3 months ago
parent 5484c7f5a4
commit eba3154f32

@ -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<SettingProvider>(this).language == "ar";
SettingProvider get settingProvider => Provider.of<SettingProvider>(this, listen: false);
UserProvider get userProvider => Provider.of<UserProvider>(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),
);
}

@ -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<SplashPage> {
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);
}),
);
}
}
}

@ -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,
),
],
),
),
);
}
}
Loading…
Cancel
Save