Skip to content

Commit 1f45124

Browse files
committed
theme [nfc]: Move bgMessageRegular to DesignVariables
1 parent 88f7060 commit 1f45124

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
///
@@ -988,7 +989,7 @@ class WebsitePreview extends StatelessWidget {
988989
// TODO(#488) use different color for non-message contexts
989990
// TODO(#647) use different color for highlighted messages
990991
// TODO(#681) use different color for DM messages
991-
color: MessageListTheme.of(context).bgMessageRegular,
992+
color: DesignVariables.of(context).bgMessageRegular,
992993
child: ClipRect(
993994
child: ConstrainedBox(
994995
constraints: BoxConstraints(maxHeight: 80),

lib/widgets/message_list.dart

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import 'theme.dart';
2828
/// Message-list styles that differ between light and dark themes.
2929
class MessageListTheme extends ThemeExtension<MessageListTheme> {
3030
static final light = MessageListTheme._(
31-
bgMessageRegular: const HSLColor.fromAHSL(1, 0, 0, 1).toColor(),
3231
dmRecipientHeaderBg: const HSLColor.fromAHSL(1, 46, 0.35, 0.93).toColor(),
3332
labelTime: const HSLColor.fromAHSL(0.49, 0, 0, 0).toColor(),
3433
senderBotIcon: const HSLColor.fromAHSL(1, 180, 0.08, 0.65).toColor(),
@@ -46,7 +45,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
4645
);
4746

4847
static final dark = MessageListTheme._(
49-
bgMessageRegular: const HSLColor.fromAHSL(1, 0, 0, 0.11).toColor(),
5048
dmRecipientHeaderBg: const HSLColor.fromAHSL(1, 46, 0.15, 0.2).toColor(),
5149
labelTime: const HSLColor.fromAHSL(0.5, 0, 0, 1).toColor(),
5250
senderBotIcon: const HSLColor.fromAHSL(1, 180, 0.05, 0.5).toColor(),
@@ -63,7 +61,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
6361
);
6462

6563
MessageListTheme._({
66-
required this.bgMessageRegular,
6764
required this.dmRecipientHeaderBg,
6865
required this.labelTime,
6966
required this.senderBotIcon,
@@ -82,7 +79,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
8279
return extension!;
8380
}
8481

85-
final Color bgMessageRegular;
8682
final Color dmRecipientHeaderBg;
8783
final Color labelTime;
8884
final Color senderBotIcon;
@@ -92,7 +88,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
9288

9389
@override
9490
MessageListTheme copyWith({
95-
Color? bgMessageRegular,
9691
Color? dmRecipientHeaderBg,
9792
Color? labelTime,
9893
Color? senderBotIcon,
@@ -101,7 +96,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
10196
Color? unreadMarkerGap,
10297
}) {
10398
return MessageListTheme._(
104-
bgMessageRegular: bgMessageRegular ?? this.bgMessageRegular,
10599
dmRecipientHeaderBg: dmRecipientHeaderBg ?? this.dmRecipientHeaderBg,
106100
labelTime: labelTime ?? this.labelTime,
107101
senderBotIcon: senderBotIcon ?? this.senderBotIcon,
@@ -117,7 +111,6 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
117111
return this;
118112
}
119113
return MessageListTheme._(
120-
bgMessageRegular: Color.lerp(bgMessageRegular, other.bgMessageRegular, t)!,
121114
dmRecipientHeaderBg: Color.lerp(dmRecipientHeaderBg, other.dmRecipientHeaderBg, t)!,
122115
labelTime: Color.lerp(labelTime, other.labelTime, t)!,
123116
senderBotIcon: Color.lerp(senderBotIcon, other.senderBotIcon, t)!,
@@ -953,13 +946,12 @@ class DateSeparator extends StatelessWidget {
953946
// to align with the vertically centered divider lines.
954947
const textBottomPadding = 2.0;
955948

956-
final messageListTheme = MessageListTheme.of(context);
957949
final designVariables = DesignVariables.of(context);
958950

959951
final line = BorderSide(width: 0, color: designVariables.foreground);
960952

961953
// TODO(#681) use different color for DM messages
962-
return ColoredBox(color: messageListTheme.bgMessageRegular,
954+
return ColoredBox(color: designVariables.bgMessageRegular,
963955
child: Padding(
964956
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 2),
965957
child: Row(children: [
@@ -998,15 +990,15 @@ class MessageItem extends StatelessWidget {
998990

999991
@override
1000992
Widget build(BuildContext context) {
993+
final designVariables = DesignVariables.of(context);
1001994
final message = item.message;
1002-
final messageListTheme = MessageListTheme.of(context);
1003995
return StickyHeaderItem(
1004996
allowOverflow: !item.isLastInBlock,
1005997
header: header,
1006998
child: _UnreadMarker(
1007999
isRead: message.flags.contains(MessageFlag.read),
10081000
child: ColoredBox(
1009-
color: messageListTheme.bgMessageRegular,
1001+
color: designVariables.bgMessageRegular,
10101002
child: Column(children: [
10111003
MessageWithPossibleSender(item: item),
10121004
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)