diff --git a/apps/mobile/packages/features/client/hubs/lib/src/presentation/pages/client_hubs_page.dart b/apps/mobile/packages/features/client/hubs/lib/src/presentation/pages/client_hubs_page.dart index 27757a85..29cdfd63 100644 --- a/apps/mobile/packages/features/client/hubs/lib/src/presentation/pages/client_hubs_page.dart +++ b/apps/mobile/packages/features/client/hubs/lib/src/presentation/pages/client_hubs_page.dart @@ -59,7 +59,7 @@ class ClientHubsPage extends StatelessWidget { body: Stack( children: [ CustomScrollView( - slivers: [ + slivers: [ _buildAppBar(context), SliverPadding( padding: const EdgeInsets.symmetric( diff --git a/apps/mobile/packages/features/client/settings/lib/src/presentation/pages/client_settings_page.dart b/apps/mobile/packages/features/client/settings/lib/src/presentation/pages/client_settings_page.dart index f4ae4ae4..adee5336 100644 --- a/apps/mobile/packages/features/client/settings/lib/src/presentation/pages/client_settings_page.dart +++ b/apps/mobile/packages/features/client/settings/lib/src/presentation/pages/client_settings_page.dart @@ -23,6 +23,9 @@ class ClientSettingsPage extends StatelessWidget { child: BlocListener( listener: (context, state) { if (state is ClientSettingsSignOutSuccess) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Signed out successfully')), + ); Modular.to.navigate('/'); } if (state is ClientSettingsError) { diff --git a/apps/mobile/packages/features/client/settings/lib/src/presentation/widgets/client_settings_page/settings_actions.dart b/apps/mobile/packages/features/client/settings/lib/src/presentation/widgets/client_settings_page/settings_actions.dart index 1375b271..f7fd3dbb 100644 --- a/apps/mobile/packages/features/client/settings/lib/src/presentation/widgets/client_settings_page/settings_actions.dart +++ b/apps/mobile/packages/features/client/settings/lib/src/presentation/widgets/client_settings_page/settings_actions.dart @@ -28,9 +28,7 @@ class SettingsActions extends StatelessWidget { text: labels.log_out, onPressed: state is ClientSettingsLoading ? null - : () => BlocProvider.of( - context, - ).add(const ClientSettingsSignOutRequested()), + : () => _showSignOutDialog(context), ); }, ), @@ -38,4 +36,45 @@ class SettingsActions extends StatelessWidget { ), ); } + + /// Shows a confirmation dialog for signing out. + Future _showSignOutDialog(BuildContext context) { + return showDialog( + context: context, + builder: (BuildContext context) => AlertDialog( + backgroundColor: UiColors.bgPopup, + elevation: 0, + shape: RoundedRectangleBorder(borderRadius: UiConstants.radiusLg), + title: Text( + t.client_settings.profile.log_out, + style: UiTypography.headline3m.textPrimary, + ), + content: Text( + 'Are you sure you want to log out?', + style: UiTypography.body2r.textSecondary, + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: Text( + t.common.cancel, + style: UiTypography.buttonM.textSecondary, + ), + ), + TextButton( + onPressed: () { + Navigator.of(context).pop(); + BlocProvider.of( + context, + ).add(const ClientSettingsSignOutRequested()); + }, + child: Text( + t.client_settings.profile.log_out, + style: UiTypography.buttonM.textError, + ), + ), + ], + ), + ); + } }