@@ -1338,29 +1338,26 @@ String formatHeaderDate(
1338
1338
}
1339
1339
}
1340
1340
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' );
1347
1343
1348
- final MessageListMessageItem item;
1344
+ class _SenderRow extends StatelessWidget {
1345
+ const _SenderRow ({required this .message});
1346
+
1347
+ final Message message;
1349
1348
1350
1349
@override
1351
1350
Widget build (BuildContext context) {
1352
1351
final store = PerAccountStoreWidget .of (context);
1353
1352
final messageListTheme = MessageListTheme .of (context);
1354
1353
final designVariables = DesignVariables .of (context);
1355
1354
1356
- final message = item.message;
1357
1355
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 (
1364
1361
mainAxisAlignment: MainAxisAlignment .spaceBetween,
1365
1362
crossAxisAlignment: CrossAxisAlignment .baseline,
1366
1363
textBaseline: localizedTextBaseline (context),
@@ -1400,8 +1397,23 @@ class MessageWithPossibleSender extends StatelessWidget {
1400
1397
height: (18 / 16 ),
1401
1398
fontFeatures: const [FontFeature .enable ('c2sc' ), FontFeature .enable ('smcp' )],
1402
1399
).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;
1405
1417
1406
1418
final localizations = ZulipLocalizations .of (context);
1407
1419
String ? editStateText;
@@ -1430,9 +1442,8 @@ class MessageWithPossibleSender extends StatelessWidget {
1430
1442
child: Padding (
1431
1443
padding: const EdgeInsets .symmetric (vertical: 4 ),
1432
1444
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),
1436
1447
Row (
1437
1448
crossAxisAlignment: CrossAxisAlignment .baseline,
1438
1449
textBaseline: localizedTextBaseline (context),
@@ -1460,6 +1471,3 @@ class MessageWithPossibleSender extends StatelessWidget {
1460
1471
])));
1461
1472
}
1462
1473
}
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