@@ -222,6 +222,13 @@ class ReactionButtons extends StatelessWidget {
222222 : zulipLocalizations.errorReactionAddingFailedTitle);
223223 }
224224
225+ void _handleTapMore () {
226+ // Dismiss current action sheet before opening emoji picker sheet.
227+ Navigator .of (pageContext).pop ();
228+
229+ showEmojiPickerSheet (pageContext: pageContext, message: message);
230+ }
231+
225232 Widget _buildButton ({
226233 required BuildContext context,
227234 required EmojiCandidate emoji,
@@ -257,6 +264,7 @@ class ReactionButtons extends StatelessWidget {
257264 assert (EmojiStore .popularEmojiCandidates.every (
258265 (emoji) => emoji.emojiType == ReactionType .unicodeEmoji));
259266
267+ final zulipLocalizations = ZulipLocalizations .of (context);
260268 final store = PerAccountStoreWidget .of (pageContext);
261269 final designVariables = DesignVariables .of (context);
262270
@@ -270,15 +278,40 @@ class ReactionButtons extends StatelessWidget {
270278
271279 return Container (
272280 decoration: BoxDecoration (color: designVariables.contextMenuItemBg.withFadedAlpha (0.12 )),
273- child: Row (
274- spacing: 1 ,
275- children: List .unmodifiable (
276- EmojiStore .popularEmojiCandidates.mapIndexed ((index, emoji) =>
277- _buildButton (
278- context: context,
279- emoji: emoji,
280- isSelfVoted: hasSelfVote (emoji),
281- isFirst: index == 0 )))));
281+ child: Row (children: [
282+ Flexible (child: Row (
283+ spacing: 1 ,
284+ children: List .unmodifiable (
285+ EmojiStore .popularEmojiCandidates.mapIndexed ((index, emoji) =>
286+ _buildButton (
287+ context: context,
288+ emoji: emoji,
289+ isSelfVoted: hasSelfVote (emoji),
290+ isFirst: index == 0 ))))),
291+ InkWell (
292+ onTap: _handleTapMore,
293+ splashFactory: NoSplash .splashFactory,
294+ borderRadius: const BorderRadius .only (topRight: Radius .circular (7 )),
295+ overlayColor: WidgetStateColor .resolveWith ((states) =>
296+ states.any ((e) => e == WidgetState .pressed)
297+ ? designVariables.contextMenuItemBg.withFadedAlpha (0.20 )
298+ : Colors .transparent),
299+ child: Padding (
300+ padding: const EdgeInsetsDirectional .fromSTEB (12 , 12 , 4 , 12 ),
301+ child: Row (children: [
302+ Text (zulipLocalizations.emojiReactionsMore,
303+ textAlign: TextAlign .end,
304+ style: TextStyle (
305+ color: designVariables.contextMenuItemText,
306+ fontSize: 14 ,
307+ ).merge (weightVariableTextStyle (context, wght: 600 ))),
308+ Icon (ZulipIcons .chevron_right,
309+ color: designVariables.contextMenuItemText,
310+ size: 24 ),
311+ ]),
312+ )),
313+ ]),
314+ );
282315 }
283316}
284317
0 commit comments