@@ -1727,9 +1727,9 @@ class EditMessageComposeBoxController extends ComposeBoxController {
1727
1727
abstract class _Banner extends StatelessWidget {
1728
1728
const _Banner ();
1729
1729
1730
+ _BannerIntent get intent;
1731
+
1730
1732
String getLabel (ZulipLocalizations zulipLocalizations);
1731
- Color getLabelColor (DesignVariables designVariables);
1732
- Color getBackgroundColor (DesignVariables designVariables);
1733
1733
1734
1734
/// A trailing element, with vertical but not horizontal outer padding
1735
1735
/// for spacing/positioning.
@@ -1757,16 +1757,23 @@ abstract class _Banner extends StatelessWidget {
1757
1757
Widget build (BuildContext context) {
1758
1758
final zulipLocalizations = ZulipLocalizations .of (context);
1759
1759
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
+
1760
1768
final labelTextStyle = TextStyle (
1761
1769
fontSize: 17 ,
1762
1770
height: 22 / 17 ,
1763
- color: getLabelColor (designVariables) ,
1771
+ color: labelColor ,
1764
1772
).merge (weightVariableTextStyle (context, wght: 600 ));
1765
1773
1766
1774
final trailing = buildTrailing (PageRoot .contextOf (context));
1767
1775
return DecoratedBox (
1768
- decoration: BoxDecoration (
1769
- color: getBackgroundColor (designVariables)),
1776
+ decoration: BoxDecoration (color: backgroundColor),
1770
1777
child: SafeArea (
1771
1778
minimum: EdgeInsetsDirectional .only (start: 8 , end: padEnd ? 8 : 0 )
1772
1779
// (SafeArea.minimum doesn't take an EdgeInsetsDirectional)
@@ -1790,6 +1797,11 @@ abstract class _Banner extends StatelessWidget {
1790
1797
}
1791
1798
}
1792
1799
1800
+ enum _BannerIntent {
1801
+ info,
1802
+ danger,
1803
+ }
1804
+
1793
1805
class _ErrorBanner extends _Banner {
1794
1806
const _ErrorBanner ({
1795
1807
required String Function (ZulipLocalizations ) getLabel,
@@ -1801,12 +1813,7 @@ class _ErrorBanner extends _Banner {
1801
1813
final String Function (ZulipLocalizations ) _getLabel;
1802
1814
1803
1815
@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;
1810
1817
1811
1818
@override
1812
1819
Widget ? buildTrailing (pageContext) {
@@ -1828,12 +1835,7 @@ class _EditMessageBanner extends _Banner {
1828
1835
zulipLocalizations.composeBoxBannerLabelEditMessage;
1829
1836
1830
1837
@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;
1837
1839
1838
1840
void _handleTapSave (BuildContext pageContext) async {
1839
1841
final store = PerAccountStoreWidget .of (pageContext);
0 commit comments