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