Skip to content

Commit d3a254b

Browse files
committed
theme [nfc]: Move bgMessageRegular to DesignVariables
1 parent 29cbf10 commit d3a254b

File tree

4 files changed

+16
-15
lines changed

4 files changed

+16
-15
lines changed

lib/widgets/content.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import 'poll.dart';
2626
import 'scrolling.dart';
2727
import 'store.dart';
2828
import 'text.dart';
29+
import 'theme.dart';
2930

3031
/// A central place for styles for Zulip content (rendered Zulip Markdown).
3132
///
@@ -987,7 +988,7 @@ class WebsitePreview extends StatelessWidget {
987988
// TODO(#488) use different color for non-message contexts
988989
// TODO(#647) use different color for highlighted messages
989990
// TODO(#681) use different color for DM messages
990-
color: MessageListTheme.of(context).bgMessageRegular,
991+
color: DesignVariables.of(context).bgMessageRegular,
991992
child: ClipRect(
992993
child: ConstrainedBox(
993994
constraints: BoxConstraints(maxHeight: 80),

lib/widgets/message_list.dart

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import 'theme.dart';
3131
/// Message-list styles that differ between light and dark themes.
3232
class MessageListTheme extends ThemeExtension<MessageListTheme> {
3333
static final light = MessageListTheme._(
34-
bgMessageRegular: const HSLColor.fromAHSL(1, 0, 0, 1).toColor(),
3534
dmRecipientHeaderBg: const HSLColor.fromAHSL(1, 46, 0.35, 0.93).toColor(),
3635
labelTime: const HSLColor.fromAHSL(0.49, 0, 0, 0).toColor(),
3736
senderBotIcon: const HSLColor.fromAHSL(1, 180, 0.08, 0.65).toColor(),
@@ -52,7 +51,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
5251
);
5352

5453
static final dark = MessageListTheme._(
55-
bgMessageRegular: const HSLColor.fromAHSL(1, 0, 0, 0.11).toColor(),
5654
dmRecipientHeaderBg: const HSLColor.fromAHSL(1, 46, 0.15, 0.2).toColor(),
5755
labelTime: const HSLColor.fromAHSL(0.5, 0, 0, 1).toColor(),
5856
senderBotIcon: const HSLColor.fromAHSL(1, 180, 0.05, 0.5).toColor(),
@@ -72,7 +70,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
7270
);
7371

7472
MessageListTheme._({
75-
required this.bgMessageRegular,
7673
required this.dmRecipientHeaderBg,
7774
required this.labelTime,
7875
required this.senderBotIcon,
@@ -92,7 +89,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
9289
return extension!;
9390
}
9491

95-
final Color bgMessageRegular;
9692
final Color dmRecipientHeaderBg;
9793
final Color labelTime;
9894
final Color senderBotIcon;
@@ -103,7 +99,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
10399

104100
@override
105101
MessageListTheme copyWith({
106-
Color? bgMessageRegular,
107102
Color? dmRecipientHeaderBg,
108103
Color? labelTime,
109104
Color? senderBotIcon,
@@ -113,7 +108,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
113108
Color? unsubscribedStreamRecipientHeaderBg,
114109
}) {
115110
return MessageListTheme._(
116-
bgMessageRegular: bgMessageRegular ?? this.bgMessageRegular,
117111
dmRecipientHeaderBg: dmRecipientHeaderBg ?? this.dmRecipientHeaderBg,
118112
labelTime: labelTime ?? this.labelTime,
119113
senderBotIcon: senderBotIcon ?? this.senderBotIcon,
@@ -130,7 +124,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
130124
return this;
131125
}
132126
return MessageListTheme._(
133-
bgMessageRegular: Color.lerp(bgMessageRegular, other.bgMessageRegular, t)!,
134127
dmRecipientHeaderBg: Color.lerp(dmRecipientHeaderBg, other.dmRecipientHeaderBg, t)!,
135128
labelTime: Color.lerp(labelTime, other.labelTime, t)!,
136129
senderBotIcon: Color.lerp(senderBotIcon, other.senderBotIcon, t)!,
@@ -928,13 +921,12 @@ class DateSeparator extends StatelessWidget {
928921
// to align with the vertically centered divider lines.
929922
const textBottomPadding = 2.0;
930923

931-
final messageListTheme = MessageListTheme.of(context);
932924
final designVariables = DesignVariables.of(context);
933925

934926
final line = BorderSide(width: 0, color: designVariables.foreground);
935927

936928
// TODO(#681) use different color for DM messages
937-
return ColoredBox(color: messageListTheme.bgMessageRegular,
929+
return ColoredBox(color: designVariables.bgMessageRegular,
938930
child: Padding(
939931
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 2),
940932
child: Row(children: [
@@ -973,15 +965,15 @@ class MessageItem extends StatelessWidget {
973965

974966
@override
975967
Widget build(BuildContext context) {
968+
final designVariables = DesignVariables.of(context);
976969
final message = item.message;
977-
final messageListTheme = MessageListTheme.of(context);
978970
return StickyHeaderItem(
979971
allowOverflow: !item.isLastInBlock,
980972
header: header,
981973
child: _UnreadMarker(
982974
isRead: message.flags.contains(MessageFlag.read),
983975
child: ColoredBox(
984-
color: messageListTheme.bgMessageRegular,
976+
color: designVariables.bgMessageRegular,
985977
child: Column(children: [
986978
MessageWithPossibleSender(item: item),
987979
if (trailingWhitespace != null && item.isLastInBlock) SizedBox(height: trailingWhitespace!),

lib/widgets/theme.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ class DesignVariables extends ThemeExtension<DesignVariables> {
135135
bgCounterUnread: const Color(0xff666699).withValues(alpha: 0.15),
136136
bgMenuButtonActive: Colors.black.withValues(alpha: 0.05),
137137
bgMenuButtonSelected: Colors.white,
138+
bgMessageRegular: const HSLColor.fromAHSL(1, 0, 0, 1).toColor(),
138139
bgTopBar: const Color(0xfff5f5f5),
139140
borderBar: Colors.black.withValues(alpha: 0.2),
140141
borderMenuButtonSelected: Colors.black.withValues(alpha: 0.2),
@@ -192,6 +193,7 @@ class DesignVariables extends ThemeExtension<DesignVariables> {
192193
bgCounterUnread: const Color(0xff666699).withValues(alpha: 0.37),
193194
bgMenuButtonActive: Colors.black.withValues(alpha: 0.2),
194195
bgMenuButtonSelected: Colors.black.withValues(alpha: 0.25),
196+
bgMessageRegular: const HSLColor.fromAHSL(1, 0, 0, 0.11).toColor(),
195197
bgTopBar: const Color(0xff242424),
196198
borderBar: const Color(0xffffffff).withValues(alpha: 0.1),
197199
borderMenuButtonSelected: Colors.white.withValues(alpha: 0.1),
@@ -257,6 +259,7 @@ class DesignVariables extends ThemeExtension<DesignVariables> {
257259
required this.bgCounterUnread,
258260
required this.bgMenuButtonActive,
259261
required this.bgMenuButtonSelected,
262+
required this.bgMessageRegular,
260263
required this.bgTopBar,
261264
required this.borderBar,
262265
required this.borderMenuButtonSelected,
@@ -323,6 +326,7 @@ class DesignVariables extends ThemeExtension<DesignVariables> {
323326
final Color bgCounterUnread;
324327
final Color bgMenuButtonActive;
325328
final Color bgMenuButtonSelected;
329+
final Color bgMessageRegular;
326330
final Color bgTopBar;
327331
final Color borderBar;
328332
final Color borderMenuButtonSelected;
@@ -384,6 +388,7 @@ class DesignVariables extends ThemeExtension<DesignVariables> {
384388
Color? bgCounterUnread,
385389
Color? bgMenuButtonActive,
386390
Color? bgMenuButtonSelected,
391+
Color? bgMessageRegular,
387392
Color? bgTopBar,
388393
Color? borderBar,
389394
Color? borderMenuButtonSelected,
@@ -440,6 +445,7 @@ class DesignVariables extends ThemeExtension<DesignVariables> {
440445
bgCounterUnread: bgCounterUnread ?? this.bgCounterUnread,
441446
bgMenuButtonActive: bgMenuButtonActive ?? this.bgMenuButtonActive,
442447
bgMenuButtonSelected: bgMenuButtonSelected ?? this.bgMenuButtonSelected,
448+
bgMessageRegular: bgMessageRegular ?? this.bgMessageRegular,
443449
bgTopBar: bgTopBar ?? this.bgTopBar,
444450
borderBar: borderBar ?? this.borderBar,
445451
borderMenuButtonSelected: borderMenuButtonSelected ?? this.borderMenuButtonSelected,
@@ -503,6 +509,7 @@ class DesignVariables extends ThemeExtension<DesignVariables> {
503509
bgCounterUnread: Color.lerp(bgCounterUnread, other.bgCounterUnread, t)!,
504510
bgMenuButtonActive: Color.lerp(bgMenuButtonActive, other.bgMenuButtonActive, t)!,
505511
bgMenuButtonSelected: Color.lerp(bgMenuButtonSelected, other.bgMenuButtonSelected, t)!,
512+
bgMessageRegular: Color.lerp(bgMessageRegular, other.bgMessageRegular, t)!,
506513
bgTopBar: Color.lerp(bgTopBar, other.bgTopBar, t)!,
507514
borderBar: Color.lerp(borderBar, other.borderBar, t)!,
508515
borderMenuButtonSelected: Color.lerp(borderMenuButtonSelected, other.borderMenuButtonSelected, t)!,

test/widgets/message_list_test.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import 'package:zulip/widgets/message_list.dart';
2626
import 'package:zulip/widgets/page.dart';
2727
import 'package:zulip/widgets/store.dart';
2828
import 'package:zulip/widgets/channel_colors.dart';
29+
import 'package:zulip/widgets/theme.dart';
2930

3031
import '../api/fake_api.dart';
3132
import '../example_data.dart' as eg;
@@ -280,17 +281,17 @@ void main() {
280281
return widget.color;
281282
}
282283

283-
check(backgroundColor()).isSameColorAs(MessageListTheme.light.bgMessageRegular);
284+
check(backgroundColor()).isSameColorAs(DesignVariables.light.bgMessageRegular);
284285

285286
tester.platformDispatcher.platformBrightnessTestValue = Brightness.dark;
286287
await tester.pump();
287288

288289
await tester.pump(kThemeAnimationDuration * 0.4);
289-
final expectedLerped = MessageListTheme.light.lerp(MessageListTheme.dark, 0.4);
290+
final expectedLerped = DesignVariables.light.lerp(DesignVariables.dark, 0.4);
290291
check(backgroundColor()).isSameColorAs(expectedLerped.bgMessageRegular);
291292

292293
await tester.pump(kThemeAnimationDuration * 0.6);
293-
check(backgroundColor()).isSameColorAs(MessageListTheme.dark.bgMessageRegular);
294+
check(backgroundColor()).isSameColorAs(DesignVariables.dark.bgMessageRegular);
294295
});
295296

296297
group('fetch initial batch of messages', () {

0 commit comments

Comments
 (0)