From 5aeda5a34ad4bc4021302c847fad0c0ab4e66895 Mon Sep 17 00:00:00 2001 From: AmirrezaChegini Date: Tue, 23 Dec 2025 16:10:51 +0330 Subject: [PATCH] fix: my posscope --- lib/core/widgets/dialog/exit_dialog.dart | 15 +++++++++++---- lib/core/widgets/pop_scope/my_pop_scope.dart | 5 +++-- .../guider/presentation/ui/guider_page.dart | 1 + .../level/presentation/ui/level_page.dart | 1 + 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/core/widgets/dialog/exit_dialog.dart b/lib/core/widgets/dialog/exit_dialog.dart index b059cf9..db15902 100644 --- a/lib/core/widgets/dialog/exit_dialog.dart +++ b/lib/core/widgets/dialog/exit_dialog.dart @@ -6,22 +6,25 @@ import 'package:go_router/go_router.dart'; import 'package:hadi_hoda_flutter/common_ui/resources/my_colors.dart'; import 'package:hadi_hoda_flutter/common_ui/resources/my_spaces.dart'; import 'package:hadi_hoda_flutter/common_ui/resources/my_text_style.dart'; +import 'package:hadi_hoda_flutter/core/routers/my_routes.dart'; import 'package:hadi_hoda_flutter/core/utils/my_localization.dart'; import 'package:hadi_hoda_flutter/core/utils/set_platform_size.dart'; import 'package:hadi_hoda_flutter/core/widgets/dialog/styles/dialog_background.dart'; import 'package:hadi_hoda_flutter/core/widgets/dialog/styles/dialog_button.dart'; -Future showExitDialog({required BuildContext context}) async { +Future showExitDialog({required BuildContext context, bool? backHome}) async { await showDialog( context: context, - builder: (context) => const ExitDialog(), + builder: (context) => ExitDialog(backHome: backHome), barrierColor: MyColors.purple.withValues(alpha: 0.82), useSafeArea: false, ); } class ExitDialog extends StatelessWidget { - const ExitDialog({super.key}); + const ExitDialog({super.key, this.backHome}); + + final bool? backHome; @override Widget build(BuildContext context) { @@ -74,7 +77,11 @@ class ExitDialog extends StatelessWidget { Expanded( child: DialogButton( onTap: () { - SystemNavigator.pop(); + if(backHome ?? false){ + context.goNamed(Routes.homePage); + } else { + SystemNavigator.pop(); + } }, height: 72, color: const Color(0XFFD42427), diff --git a/lib/core/widgets/pop_scope/my_pop_scope.dart b/lib/core/widgets/pop_scope/my_pop_scope.dart index 96b98da..8340b4b 100644 --- a/lib/core/widgets/pop_scope/my_pop_scope.dart +++ b/lib/core/widgets/pop_scope/my_pop_scope.dart @@ -2,16 +2,17 @@ import 'package:flutter/material.dart'; import 'package:hadi_hoda_flutter/core/widgets/dialog/exit_dialog.dart'; class MyPopScope extends StatelessWidget { - const MyPopScope({super.key, required this.child}); + const MyPopScope({super.key, required this.child, this.backHome}); final Widget child; + final bool? backHome; void onPopInvokedWithResult( bool didPop, dynamic result, BuildContext context, ) { - showExitDialog(context: context); + showExitDialog(context: context, backHome: backHome); } @override diff --git a/lib/features/guider/presentation/ui/guider_page.dart b/lib/features/guider/presentation/ui/guider_page.dart index 258107b..b3ddd63 100644 --- a/lib/features/guider/presentation/ui/guider_page.dart +++ b/lib/features/guider/presentation/ui/guider_page.dart @@ -49,6 +49,7 @@ class _GuiderPageState extends State with TickerProviderStateMixin { Widget build(BuildContext context) { return Scaffold( body: MyPopScope( + backHome: true, child: Directionality( textDirection: TextDirection.ltr, child: Container( diff --git a/lib/features/level/presentation/ui/level_page.dart b/lib/features/level/presentation/ui/level_page.dart index 1bccb69..3dfcdc0 100644 --- a/lib/features/level/presentation/ui/level_page.dart +++ b/lib/features/level/presentation/ui/level_page.dart @@ -28,6 +28,7 @@ class LevelPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( body: MyPopScope( + backHome: true, child: Stack( alignment: Alignment.center, children: [