@@ -1727,9 +1727,9 @@ class EditMessageComposeBoxController extends ComposeBoxController {
17271727abstract class _Banner extends StatelessWidget {
17281728 const _Banner ();
17291729
1730+ _BannerIntent get intent;
1731+
17301732 String getLabel (ZulipLocalizations zulipLocalizations);
1731- Color getLabelColor (DesignVariables designVariables);
1732- Color getBackgroundColor (DesignVariables designVariables);
17331733
17341734 /// A trailing element, with vertical but not horizontal outer padding
17351735 /// for spacing/positioning.
@@ -1757,16 +1757,23 @@ abstract class _Banner extends StatelessWidget {
17571757 Widget build (BuildContext context) {
17581758 final zulipLocalizations = ZulipLocalizations .of (context);
17591759 final designVariables = DesignVariables .of (context);
1760+
1761+ final (labelColor, backgroundColor) = switch (intent) {
1762+ _BannerIntent .info =>
1763+ (designVariables.bannerTextIntInfo, designVariables.bannerBgIntInfo),
1764+ _BannerIntent .danger =>
1765+ (designVariables.btnLabelAttMediumIntDanger, designVariables.bannerBgIntDanger),
1766+ };
1767+
17601768 final labelTextStyle = TextStyle (
17611769 fontSize: 17 ,
17621770 height: 22 / 17 ,
1763- color: getLabelColor (designVariables) ,
1771+ color: labelColor ,
17641772 ).merge (weightVariableTextStyle (context, wght: 600 ));
17651773
17661774 final trailing = buildTrailing (PageRoot .contextOf (context));
17671775 return DecoratedBox (
1768- decoration: BoxDecoration (
1769- color: getBackgroundColor (designVariables)),
1776+ decoration: BoxDecoration (color: backgroundColor),
17701777 child: SafeArea (
17711778 minimum: EdgeInsetsDirectional .only (start: 8 , end: padEnd ? 8 : 0 )
17721779 // (SafeArea.minimum doesn't take an EdgeInsetsDirectional)
@@ -1790,6 +1797,11 @@ abstract class _Banner extends StatelessWidget {
17901797 }
17911798}
17921799
1800+ enum _BannerIntent {
1801+ info,
1802+ danger,
1803+ }
1804+
17931805class _ErrorBanner extends _Banner {
17941806 const _ErrorBanner ({
17951807 required String Function (ZulipLocalizations ) getLabel,
@@ -1801,12 +1813,7 @@ class _ErrorBanner extends _Banner {
18011813 final String Function (ZulipLocalizations ) _getLabel;
18021814
18031815 @override
1804- Color getLabelColor (DesignVariables designVariables) =>
1805- designVariables.btnLabelAttMediumIntDanger;
1806-
1807- @override
1808- Color getBackgroundColor (DesignVariables designVariables) =>
1809- designVariables.bannerBgIntDanger;
1816+ _BannerIntent get intent => _BannerIntent .danger;
18101817
18111818 @override
18121819 Widget ? buildTrailing (pageContext) {
@@ -1828,12 +1835,7 @@ class _EditMessageBanner extends _Banner {
18281835 zulipLocalizations.composeBoxBannerLabelEditMessage;
18291836
18301837 @override
1831- Color getLabelColor (DesignVariables designVariables) =>
1832- designVariables.bannerTextIntInfo;
1833-
1834- @override
1835- Color getBackgroundColor (DesignVariables designVariables) =>
1836- designVariables.bannerBgIntInfo;
1838+ _BannerIntent get intent => _BannerIntent .info;
18371839
18381840 void _handleTapSave (BuildContext pageContext) async {
18391841 final store = PerAccountStoreWidget .of (pageContext);
0 commit comments