@@ -11,7 +11,6 @@ import '../model/narrow.dart';
11
11
import 'clipboard.dart' ;
12
12
import 'compose_box.dart' ;
13
13
import 'dialog.dart' ;
14
- import 'draggable_scrollable_modal_bottom_sheet.dart' ;
15
14
import 'icons.dart' ;
16
15
import 'message_list.dart' ;
17
16
import 'store.dart' ;
@@ -36,20 +35,44 @@ void showMessageActionSheet({required BuildContext context, required Message mes
36
35
&& reactionWithVotes.userIds.contains (store.selfUserId))
37
36
?? false ;
38
37
39
- showDraggableScrollableModalBottomSheet <void >(
38
+ showModalBottomSheet <void >(
40
39
context: context,
40
+ clipBehavior: Clip .antiAlias,
41
+ shape: const RoundedRectangleBorder (borderRadius: BorderRadius .vertical (top: Radius .circular (20.0 ))),
42
+ useSafeArea: true ,
43
+ isScrollControlled: true ,
41
44
builder: (BuildContext _) {
42
- return Column (children: [
43
- if (! hasThumbsUpReactionVote) AddThumbsUpButton (message: message, messageListContext: context),
44
- StarButton (message: message, messageListContext: context),
45
- if (isComposeBoxOffered) QuoteAndReplyButton (
46
- message: message,
47
- messageListContext: context,
45
+ return Padding (
46
+ padding: const EdgeInsets .all (16.0 ),
47
+ child: Column (
48
+ crossAxisAlignment: CrossAxisAlignment .stretch,
49
+ mainAxisSize: MainAxisSize .min,
50
+ children: [
51
+ // TODO(#217): show message text
52
+ Flexible (
53
+ child: SingleChildScrollView (
54
+ child: ClipRRect (
55
+ borderRadius: BorderRadius .circular (7 ),
56
+ child: Column (children: [
57
+ if (! hasThumbsUpReactionVote) AddThumbsUpButton (message: message, messageListContext: context),
58
+ StarButton (message: message, messageListContext: context),
59
+ if (isComposeBoxOffered) QuoteAndReplyButton (
60
+ message: message,
61
+ messageListContext: context,
62
+ ),
63
+ CopyMessageTextButton (message: message, messageListContext: context),
64
+ CopyMessageLinkButton (message: message, messageListContext: context),
65
+ ShareButton (message: message, messageListContext: context),
66
+ // TODO: The following line could be replaced by the [spacing]
67
+ // property when https://github.com/flutter/flutter/issues/55378 is fixed.
68
+ ].expand ((item) => [const SizedBox (height: 1 ), item]).skip (1 ).toList ()),
69
+ ),
70
+ ),
71
+ ),
72
+ const MessageActionSheetCancelButton (),
73
+ ],
48
74
),
49
- CopyMessageTextButton (message: message, messageListContext: context),
50
- CopyMessageLinkButton (message: message, messageListContext: context),
51
- ShareButton (message: message, messageListContext: context),
52
- ]);
75
+ );
53
76
});
54
77
}
55
78
@@ -71,9 +94,13 @@ abstract class MessageActionSheetMenuItemButton extends StatelessWidget {
71
94
Widget build (BuildContext context) {
72
95
final zulipLocalizations = ZulipLocalizations .of (context);
73
96
return MenuItemButton (
74
- leadingIcon: Icon (icon),
97
+ trailingIcon: Icon (icon, color: const Color (0xFF381DA7 )), // TODO(#831)
98
+ style: MenuItemButton .styleFrom (
99
+ backgroundColor: const Color (0xFF6159E1 ).withOpacity (0.12 ), // TODO(#831)
100
+ foregroundColor: const Color (0xFF381DA7 ), // TODO(#831)
101
+ ),
75
102
onPressed: () => onPressed (context),
76
- child: Text (label (zulipLocalizations)));
103
+ child: Text (label (zulipLocalizations), style : const TextStyle (fontSize : 16 ) ));
77
104
}
78
105
}
79
106
@@ -402,3 +429,23 @@ class ShareButton extends MessageActionSheetMenuItemButton {
402
429
}
403
430
}
404
431
}
432
+
433
+ class MessageActionSheetCancelButton extends StatelessWidget {
434
+ const MessageActionSheetCancelButton ({super .key});
435
+
436
+ @override
437
+ Widget build (BuildContext context) {
438
+ return ElevatedButton (
439
+ style: ElevatedButton .styleFrom (
440
+ elevation: 0 ,
441
+ backgroundColor: const Color (0xFF797986 ).withOpacity (0.15 ), // TODO(#831)
442
+ foregroundColor: const Color (0xFF222222 ), // TODO(#831)
443
+ shadowColor: Colors .transparent,
444
+ shape: RoundedRectangleBorder (borderRadius: BorderRadius .circular (7 )),
445
+ ),
446
+ onPressed: () => Navigator .pop (context),
447
+ child: Text (ZulipLocalizations .of (context).dialogCancel,
448
+ style: const TextStyle (fontSize: 16 )),
449
+ );
450
+ }
451
+ }
0 commit comments