@@ -1338,29 +1338,26 @@ String formatHeaderDate(
13381338 }
13391339}
13401340
1341- /// A Zulip message, showing the sender's name and avatar if specified.
1342- // Design referenced from:
1343- // - https://github.com/zulip/zulip-mobile/issues/5511
1344- // - https://www.figma.com/file/1JTNtYo9memgW7vV6d0ygq/Zulip-Mobile?node-id=538%3A20849&mode=dev
1345- class MessageWithPossibleSender extends StatelessWidget {
1346- const MessageWithPossibleSender ({super .key, required this .item});
1341+ // TODO(i18n): web seems to ignore locale in formatting time, but we could do better
1342+ final _kMessageTimestampFormat = DateFormat ('h:mm aa' , 'en_US' );
13471343
1348- final MessageListMessageItem item;
1344+ class _SenderRow extends StatelessWidget {
1345+ const _SenderRow ({required this .message});
1346+
1347+ final Message message;
13491348
13501349 @override
13511350 Widget build (BuildContext context) {
13521351 final store = PerAccountStoreWidget .of (context);
13531352 final messageListTheme = MessageListTheme .of (context);
13541353 final designVariables = DesignVariables .of (context);
13551354
1356- final message = item.message;
13571355 final sender = store.getUser (message.senderId);
1358-
1359- Widget ? senderRow;
1360- if (item.showSender) {
1361- final time = _kMessageTimestampFormat
1362- .format (DateTime .fromMillisecondsSinceEpoch (1000 * message.timestamp));
1363- senderRow = Row (
1356+ final time = _kMessageTimestampFormat
1357+ .format (DateTime .fromMillisecondsSinceEpoch (1000 * message.timestamp));
1358+ return Padding (
1359+ padding: const EdgeInsets .fromLTRB (16 , 2 , 16 , 0 ),
1360+ child: Row (
13641361 mainAxisAlignment: MainAxisAlignment .spaceBetween,
13651362 crossAxisAlignment: CrossAxisAlignment .baseline,
13661363 textBaseline: localizedTextBaseline (context),
@@ -1400,8 +1397,23 @@ class MessageWithPossibleSender extends StatelessWidget {
14001397 height: (18 / 16 ),
14011398 fontFeatures: const [FontFeature .enable ('c2sc' ), FontFeature .enable ('smcp' )],
14021399 ).merge (weightVariableTextStyle (context))),
1403- ]);
1404- }
1400+ ]));
1401+ }
1402+ }
1403+
1404+ /// A Zulip message, showing the sender's name and avatar if specified.
1405+ // Design referenced from:
1406+ // - https://github.com/zulip/zulip-mobile/issues/5511
1407+ // - https://www.figma.com/file/1JTNtYo9memgW7vV6d0ygq/Zulip-Mobile?node-id=538%3A20849&mode=dev
1408+ class MessageWithPossibleSender extends StatelessWidget {
1409+ const MessageWithPossibleSender ({super .key, required this .item});
1410+
1411+ final MessageListMessageItem item;
1412+
1413+ @override
1414+ Widget build (BuildContext context) {
1415+ final designVariables = DesignVariables .of (context);
1416+ final message = item.message;
14051417
14061418 final localizations = ZulipLocalizations .of (context);
14071419 String ? editStateText;
@@ -1430,9 +1442,8 @@ class MessageWithPossibleSender extends StatelessWidget {
14301442 child: Padding (
14311443 padding: const EdgeInsets .symmetric (vertical: 4 ),
14321444 child: Column (children: [
1433- if (senderRow != null )
1434- Padding (padding: const EdgeInsets .fromLTRB (16 , 2 , 16 , 0 ),
1435- child: senderRow),
1445+ if (item.showSender)
1446+ _SenderRow (message: message),
14361447 Row (
14371448 crossAxisAlignment: CrossAxisAlignment .baseline,
14381449 textBaseline: localizedTextBaseline (context),
@@ -1460,6 +1471,3 @@ class MessageWithPossibleSender extends StatelessWidget {
14601471 ])));
14611472 }
14621473}
1463-
1464- // TODO(i18n): web seems to ignore locale in formatting time, but we could do better
1465- final _kMessageTimestampFormat = DateFormat ('h:mm aa' , 'en_US' );
0 commit comments