diff --git a/lib/pangea/login/pages/pangea_login_scaffold.dart b/lib/pangea/login/pages/pangea_login_scaffold.dart index 6d578d235..9f21653cd 100644 --- a/lib/pangea/login/pages/pangea_login_scaffold.dart +++ b/lib/pangea/login/pages/pangea_login_scaffold.dart @@ -9,12 +9,14 @@ class PangeaLoginScaffold extends StatelessWidget { final Uint8List? mainAssetBytes; final List children; final bool showAppName; + final AppBar? customAppBar; const PangeaLoginScaffold({ required this.children, this.mainAssetPath = "assets/pangea/PangeaChat_Glow_Logo.png", this.mainAssetBytes, this.showAppName = true, + this.customAppBar, super.key, }); @@ -22,7 +24,7 @@ class PangeaLoginScaffold extends StatelessWidget { Widget build(BuildContext context) { return SafeArea( child: Scaffold( - appBar: AppBar(), + appBar: customAppBar ?? AppBar(), body: LayoutBuilder( builder: (context, constraints) { return SingleChildScrollView( diff --git a/lib/pangea/login/pages/user_settings_view.dart b/lib/pangea/login/pages/user_settings_view.dart index 46d58d1bc..a06f7b6f2 100644 --- a/lib/pangea/login/pages/user_settings_view.dart +++ b/lib/pangea/login/pages/user_settings_view.dart @@ -10,6 +10,7 @@ import 'package:fluffychat/pangea/login/pages/pangea_login_scaffold.dart'; import 'package:fluffychat/pangea/login/pages/user_settings.dart'; import 'package:fluffychat/pangea/login/widgets/full_width_button.dart'; import 'package:fluffychat/pangea/login/widgets/tos_checkbox.dart'; +import 'package:fluffychat/pangea/user/utils/p_logout.dart'; class UserSettingsView extends StatelessWidget { final UserSettingsState controller; @@ -69,6 +70,14 @@ class UserSettingsView extends StatelessWidget { return Form( key: controller.formKey, child: PangeaLoginScaffold( + customAppBar: AppBar( + leading: BackButton( + onPressed: () => pLogoutAction( + context, + bypassWarning: true, + ), + ), + ), showAppName: false, mainAssetPath: controller.selectedAvatarPath ?? "", mainAssetBytes: controller.avatar, diff --git a/lib/pangea/user/utils/p_logout.dart b/lib/pangea/user/utils/p_logout.dart index a7ad74840..502b679a3 100644 --- a/lib/pangea/user/utils/p_logout.dart +++ b/lib/pangea/user/utils/p_logout.dart @@ -6,18 +6,25 @@ import 'package:fluffychat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog. import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; -void pLogoutAction(BuildContext context, {bool? isDestructiveAction}) async { - if (await showOkCancelAlertDialog( - useRootNavigator: false, - context: context, - title: L10n.of(context).areYouSureYouWantToLogout, - message: L10n.of(context).dontForgetPassword, - okLabel: L10n.of(context).logout, - cancelLabel: L10n.of(context).cancel, - ) == - OkCancelResult.cancel) { - return; +void pLogoutAction( + BuildContext context, { + bool? isDestructiveAction, + bool bypassWarning = false, +}) async { + if (!bypassWarning) { + if (await showOkCancelAlertDialog( + useRootNavigator: false, + context: context, + title: L10n.of(context).areYouSureYouWantToLogout, + message: L10n.of(context).dontForgetPassword, + okLabel: L10n.of(context).logout, + cancelLabel: L10n.of(context).cancel, + ) == + OkCancelResult.cancel) { + return; + } } + final matrix = Matrix.of(context); // before wiping out locally cached construct data, save it to the server