@@ -1322,29 +1322,26 @@ String formatHeaderDate(
1322
1322
}
1323
1323
}
1324
1324
1325
- /// A Zulip message, showing the sender's name and avatar if specified.
1326
- // Design referenced from:
1327
- // - https://github.com/zulip/zulip-mobile/issues/5511
1328
- // - https://www.figma.com/file/1JTNtYo9memgW7vV6d0ygq/Zulip-Mobile?node-id=538%3A20849&mode=dev
1329
- class MessageWithPossibleSender extends StatelessWidget {
1330
- const MessageWithPossibleSender ({super .key, required this .item});
1325
+ // TODO(i18n): web seems to ignore locale in formatting time, but we could do better
1326
+ final _kMessageTimestampFormat = DateFormat ('h:mm aa' , 'en_US' );
1331
1327
1332
- final MessageListMessageItem item;
1328
+ class _SenderRow extends StatelessWidget {
1329
+ const _SenderRow ({required this .message});
1330
+
1331
+ final Message message;
1333
1332
1334
1333
@override
1335
1334
Widget build (BuildContext context) {
1336
1335
final store = PerAccountStoreWidget .of (context);
1337
1336
final messageListTheme = MessageListTheme .of (context);
1338
1337
final designVariables = DesignVariables .of (context);
1339
1338
1340
- final message = item.message;
1341
1339
final sender = store.getUser (message.senderId);
1342
-
1343
- Widget ? senderRow;
1344
- if (item.showSender) {
1345
- final time = _kMessageTimestampFormat
1346
- .format (DateTime .fromMillisecondsSinceEpoch (1000 * message.timestamp));
1347
- senderRow = Row (
1340
+ final time = _kMessageTimestampFormat
1341
+ .format (DateTime .fromMillisecondsSinceEpoch (1000 * message.timestamp));
1342
+ return Padding (
1343
+ padding: const EdgeInsets .fromLTRB (16 , 2 , 16 , 0 ),
1344
+ child: Row (
1348
1345
mainAxisAlignment: MainAxisAlignment .spaceBetween,
1349
1346
crossAxisAlignment: CrossAxisAlignment .baseline,
1350
1347
textBaseline: localizedTextBaseline (context),
@@ -1384,8 +1381,23 @@ class MessageWithPossibleSender extends StatelessWidget {
1384
1381
height: (18 / 16 ),
1385
1382
fontFeatures: const [FontFeature .enable ('c2sc' ), FontFeature .enable ('smcp' )],
1386
1383
).merge (weightVariableTextStyle (context))),
1387
- ]);
1388
- }
1384
+ ]));
1385
+ }
1386
+ }
1387
+
1388
+ /// A Zulip message, showing the sender's name and avatar if specified.
1389
+ // Design referenced from:
1390
+ // - https://github.com/zulip/zulip-mobile/issues/5511
1391
+ // - https://www.figma.com/file/1JTNtYo9memgW7vV6d0ygq/Zulip-Mobile?node-id=538%3A20849&mode=dev
1392
+ class MessageWithPossibleSender extends StatelessWidget {
1393
+ const MessageWithPossibleSender ({super .key, required this .item});
1394
+
1395
+ final MessageListMessageItem item;
1396
+
1397
+ @override
1398
+ Widget build (BuildContext context) {
1399
+ final designVariables = DesignVariables .of (context);
1400
+ final message = item.message;
1389
1401
1390
1402
final localizations = ZulipLocalizations .of (context);
1391
1403
String ? editStateText;
@@ -1414,9 +1426,7 @@ class MessageWithPossibleSender extends StatelessWidget {
1414
1426
child: Padding (
1415
1427
padding: const EdgeInsets .symmetric (vertical: 4 ),
1416
1428
child: Column (children: [
1417
- if (senderRow != null )
1418
- Padding (padding: const EdgeInsets .fromLTRB (16 , 2 , 16 , 0 ),
1419
- child: senderRow),
1429
+ if (item.showSender) _SenderRow (message: message),
1420
1430
Row (
1421
1431
crossAxisAlignment: CrossAxisAlignment .baseline,
1422
1432
textBaseline: localizedTextBaseline (context),
@@ -1444,6 +1454,3 @@ class MessageWithPossibleSender extends StatelessWidget {
1444
1454
])));
1445
1455
}
1446
1456
}
1447
-
1448
- // TODO(i18n): web seems to ignore locale in formatting time, but we could do better
1449
- final _kMessageTimestampFormat = DateFormat ('h:mm aa' , 'en_US' );
0 commit comments