diff --git a/lib/pages/chat/event_info_dialog.dart b/lib/pages/chat/event_info_dialog.dart index dca325dfd..44443f594 100644 --- a/lib/pages/chat/event_info_dialog.dart +++ b/lib/pages/chat/event_info_dialog.dart @@ -21,6 +21,7 @@ extension EventInfoDialogExtension on Event { class EventInfoDialog extends StatelessWidget { final Event event; final L10n l10n; + const EventInfoDialog({ required this.event, required this.l10n, @@ -41,10 +42,8 @@ class EventInfoDialog extends StatelessWidget { return Scaffold( appBar: AppBar( title: Text(L10n.of(context).messageInfo), - leading: IconButton( - icon: const Icon(Icons.arrow_downward_outlined), + leading: CloseButton( onPressed: Navigator.of(context, rootNavigator: false).pop, - tooltip: L10n.of(context).close, ), ), body: ListView( diff --git a/lib/utils/adaptive_bottom_sheet.dart b/lib/utils/adaptive_bottom_sheet.dart index f2addb838..96cbe5e1e 100644 --- a/lib/utils/adaptive_bottom_sheet.dart +++ b/lib/utils/adaptive_bottom_sheet.dart @@ -12,21 +12,40 @@ Future showAdaptiveBottomSheet({ bool isScrollControlled = true, bool useRootNavigator = true, }) { - final maxHeight = min(MediaQuery.of(context).size.height - 32, 600); - final dialogMode = FluffyThemes.isColumnMode(context); - return showModalBottomSheet( + if (FluffyThemes.isColumnMode(context)) { + return showDialog( + context: context, + useRootNavigator: useRootNavigator, + barrierDismissible: isDismissible, + useSafeArea: true, + builder: (context) => Container( + margin: const EdgeInsets.all(16), + constraints: const BoxConstraints( + maxWidth: 480, + maxHeight: 720, + ), + alignment: Alignment.center, + child: Material( + elevation: Theme.of(context).dialogTheme.elevation ?? 4, + shadowColor: Theme.of(context).dialogTheme.shadowColor, + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + color: Theme.of(context).scaffoldBackgroundColor, + clipBehavior: Clip.hardEdge, + child: builder(context), + ), + ), + ); + } + + return showModalBottomSheet( context: context, builder: (context) => Padding( - padding: dialogMode - ? const EdgeInsets.symmetric(vertical: 32.0) - : EdgeInsets.zero, + padding: EdgeInsets.zero, child: ClipRRect( - borderRadius: dialogMode - ? BorderRadius.circular(AppConfig.borderRadius) - : const BorderRadius.only( - topLeft: Radius.circular(AppConfig.borderRadius), - topRight: Radius.circular(AppConfig.borderRadius), - ), + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(AppConfig.borderRadius / 2), + topRight: Radius.circular(AppConfig.borderRadius / 2), + ), child: builder(context), ), ), @@ -34,7 +53,7 @@ Future showAdaptiveBottomSheet({ isDismissible: isDismissible, isScrollControlled: isScrollControlled, constraints: BoxConstraints( - maxHeight: maxHeight + (dialogMode ? 64 : 0), + maxHeight: min(MediaQuery.of(context).size.height - 32, 600), maxWidth: FluffyThemes.columnWidth * 1.25, ), backgroundColor: Colors.transparent,