@@ -1377,10 +1377,9 @@ class StreamComposeBoxController extends ComposeBoxController {
1377
1377
class FixedDestinationComposeBoxController extends ComposeBoxController {}
1378
1378
1379
1379
abstract class _Banner extends StatelessWidget {
1380
- const _Banner ({required this .label});
1381
-
1382
- final String label;
1380
+ const _Banner ();
1383
1381
1382
+ String getLabel (ZulipLocalizations zulipLocalizations);
1384
1383
Color getLabelColor (DesignVariables designVariables);
1385
1384
Color getBackgroundColor (DesignVariables designVariables);
1386
1385
@@ -1398,6 +1397,7 @@ abstract class _Banner extends StatelessWidget {
1398
1397
1399
1398
@override
1400
1399
Widget build (BuildContext context) {
1400
+ final zulipLocalizations = ZulipLocalizations .of (context);
1401
1401
final designVariables = DesignVariables .of (context);
1402
1402
final labelTextStyle = TextStyle (
1403
1403
fontSize: 17 ,
@@ -1421,7 +1421,7 @@ abstract class _Banner extends StatelessWidget {
1421
1421
child: Padding (
1422
1422
padding: const EdgeInsets .symmetric (vertical: 4 ),
1423
1423
child: Text (style: labelTextStyle,
1424
- label ))),
1424
+ getLabel (zulipLocalizations) ))),
1425
1425
if (trailing != null ) ...[
1426
1426
const SizedBox (width: 8 ),
1427
1427
trailing,
@@ -1431,7 +1431,14 @@ abstract class _Banner extends StatelessWidget {
1431
1431
}
1432
1432
1433
1433
class _ErrorBanner extends _Banner {
1434
- const _ErrorBanner ({required super .label});
1434
+ const _ErrorBanner ({
1435
+ required String Function (ZulipLocalizations ) getLabel,
1436
+ }) : _getLabel = getLabel;
1437
+
1438
+ @override
1439
+ String getLabel (ZulipLocalizations zulipLocalizations) =>
1440
+ _getLabel (zulipLocalizations);
1441
+ final String Function (ZulipLocalizations ) _getLabel;
1435
1442
1436
1443
@override
1437
1444
Color getLabelColor (DesignVariables designVariables) =>
@@ -1522,16 +1529,16 @@ class _ComposeBoxState extends State<ComposeBox> with PerAccountStoreAwareStateM
1522
1529
final channel = store.streams[streamId];
1523
1530
if (channel == null || ! store.hasPostingPermission (inChannel: channel,
1524
1531
user: store.selfUser, byDate: DateTime .now ())) {
1525
- return _ErrorBanner (label :
1526
- ZulipLocalizations . of (context) .errorBannerCannotPostInChannelLabel);
1532
+ return _ErrorBanner (getLabel : (zulipLocalizations) =>
1533
+ zulipLocalizations .errorBannerCannotPostInChannelLabel);
1527
1534
}
1528
1535
1529
1536
case DmNarrow (: final otherRecipientIds):
1530
1537
final hasDeactivatedUser = otherRecipientIds.any ((id) =>
1531
1538
! (store.getUser (id)? .isActive ?? true ));
1532
1539
if (hasDeactivatedUser) {
1533
- return _ErrorBanner (label :
1534
- ZulipLocalizations . of (context) .errorBannerDeactivatedDmLabel);
1540
+ return _ErrorBanner (getLabel : (zulipLocalizations) =>
1541
+ zulipLocalizations .errorBannerDeactivatedDmLabel);
1535
1542
}
1536
1543
1537
1544
case CombinedFeedNarrow ():
0 commit comments