From 7d3f6fb51b8201def7ee86b1b84a9211dc323f9b Mon Sep 17 00:00:00 2001 From: ggurdin Date: Tue, 15 Oct 2024 12:55:59 -0400 Subject: [PATCH] when navigating to learning settings from chat popup menu, show page in popup instead of redirecting to settings --- .../settings_learning/settings_learning.dart | 6 +++++- .../settings_learning_view.dart | 6 ++++++ lib/widgets/chat_settings_popup_menu.dart | 21 ++++++++++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/lib/pangea/pages/settings_learning/settings_learning.dart b/lib/pangea/pages/settings_learning/settings_learning.dart index 3e0a11e4c..368d0a7c3 100644 --- a/lib/pangea/pages/settings_learning/settings_learning.dart +++ b/lib/pangea/pages/settings_learning/settings_learning.dart @@ -8,7 +8,11 @@ import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; class SettingsLearning extends StatefulWidget { - const SettingsLearning({super.key}); + final bool isPopup; + const SettingsLearning({ + this.isPopup = false, + super.key, + }); @override SettingsLearningController createState() => SettingsLearningController(); diff --git a/lib/pangea/pages/settings_learning/settings_learning_view.dart b/lib/pangea/pages/settings_learning/settings_learning_view.dart index 1a6576770..7ca00a863 100644 --- a/lib/pangea/pages/settings_learning/settings_learning_view.dart +++ b/lib/pangea/pages/settings_learning/settings_learning_view.dart @@ -19,6 +19,12 @@ class SettingsLearningView extends StatelessWidget { title: Text( L10n.of(context)!.learningSettings, ), + leading: controller.widget.isPopup + ? IconButton( + icon: const Icon(Icons.close), + onPressed: Navigator.of(context).pop, + ) + : null, ), body: ListTileTheme( iconColor: Theme.of(context).textTheme.bodyLarge!.color, diff --git a/lib/widgets/chat_settings_popup_menu.dart b/lib/widgets/chat_settings_popup_menu.dart index bd4cf0a66..130839bbf 100644 --- a/lib/widgets/chat_settings_popup_menu.dart +++ b/lib/widgets/chat_settings_popup_menu.dart @@ -2,7 +2,9 @@ import 'dart:async'; import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; +import 'package:fluffychat/pangea/pages/settings_learning/settings_learning.dart'; import 'package:fluffychat/pangea/utils/download_chat.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; @@ -171,7 +173,24 @@ class ChatSettingsPopupMenuState extends State { ); break; case ChatPopupMenuActions.learningSettings: - context.go('/rooms/settings/learning'); + showDialog( + context: context, + builder: (c) { + return kIsWeb + ? Dialog( + child: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 600), + child: ClipRRect( + borderRadius: BorderRadius.circular(20.0), + child: const SettingsLearning(isPopup: true), + ), + ), + ) + : const Dialog.fullscreen( + child: SettingsLearning(isPopup: true), + ); + }, + ); break; // Pangea# }