Skip to content

Commit a1a37c7

Browse files
committed
compose [nfc]: Factor banner background/label colors as intent enum
As we do for e.g. ZulipWebUiKitButton.
1 parent da32714 commit a1a37c7

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

lib/widgets/compose_box.dart

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1727,9 +1727,9 @@ class EditMessageComposeBoxController extends ComposeBoxController {
17271727
abstract 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+
17931805
class _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

Comments
 (0)