Browse Source

[feat] add theme for snackbar (#2194)

* feat: add default snackbar theme

* fix: since FlowyText overrides textTheme, supply color to widget
Alex Wallen 2 years ago
parent
commit
ae2146f427

+ 31 - 25
frontend/appflowy_flutter/lib/workspace/application/appearance.dart

@@ -210,6 +210,32 @@ class AppearanceSettingsState with _$AppearanceSettingsState {
         ? appTheme.lightTheme
         ? appTheme.lightTheme
         : appTheme.darkTheme;
         : appTheme.darkTheme;
 
 
+    final colorScheme = ColorScheme(
+      brightness: brightness,
+      primary: theme.primary,
+      onPrimary: theme.onPrimary,
+      primaryContainer: theme.main2,
+      onPrimaryContainer: _white,
+      // page title hover color
+      secondary: theme.hoverBG1,
+      onSecondary: theme.shader1,
+      // setting value hover color
+      secondaryContainer: theme.selector,
+      onSecondaryContainer: theme.topbarBg,
+      tertiary: theme.shader7,
+      tertiaryContainer: theme.questionBubbleBG,
+      background: theme.surface,
+      onBackground: theme.text,
+      surface: theme.surface,
+      // text&icon color when it is hovered
+      onSurface: theme.hoverFG,
+      onError: theme.shader7,
+      error: theme.red,
+      outline: theme.shader4,
+      surfaceVariant: theme.sidebarBg,
+      shadow: theme.shadow,
+    );
+
     return ThemeData(
     return ThemeData(
       brightness: brightness,
       brightness: brightness,
       textTheme: _getTextTheme(fontFamily: fontFamily, fontColor: theme.text),
       textTheme: _getTextTheme(fontFamily: fontFamily, fontColor: theme.text),
@@ -227,6 +253,10 @@ class AppearanceSettingsState with _$AppearanceSettingsState {
         ),
         ),
       ),
       ),
       scaffoldBackgroundColor: theme.surface,
       scaffoldBackgroundColor: theme.surface,
+      snackBarTheme: SnackBarThemeData(
+        backgroundColor: colorScheme.primary,
+        contentTextStyle: TextStyle(color: colorScheme.onSurface),
+      ),
       scrollbarTheme: ScrollbarThemeData(
       scrollbarTheme: ScrollbarThemeData(
         thumbColor: MaterialStateProperty.all(theme.shader3),
         thumbColor: MaterialStateProperty.all(theme.shader3),
         thickness: MaterialStateProperty.resolveWith((states) {
         thickness: MaterialStateProperty.resolveWith((states) {
@@ -254,31 +284,7 @@ class AppearanceSettingsState with _$AppearanceSettingsState {
       highlightColor: theme.main1,
       highlightColor: theme.main1,
       indicatorColor: theme.main1,
       indicatorColor: theme.main1,
       cardColor: theme.input,
       cardColor: theme.input,
-      colorScheme: ColorScheme(
-        brightness: brightness,
-        primary: theme.primary,
-        onPrimary: theme.onPrimary,
-        primaryContainer: theme.main2,
-        onPrimaryContainer: _white,
-        // page title hover color
-        secondary: theme.hoverBG1,
-        onSecondary: theme.shader1,
-        // setting value hover color
-        secondaryContainer: theme.selector,
-        onSecondaryContainer: theme.topbarBg,
-        tertiary: theme.shader7,
-        tertiaryContainer: theme.questionBubbleBG,
-        background: theme.surface,
-        onBackground: theme.text,
-        surface: theme.surface,
-        // text&icon color when it is hovered
-        onSurface: theme.hoverFG,
-        onError: theme.shader7,
-        error: theme.red,
-        outline: theme.shader4,
-        surfaceVariant: theme.sidebarBg,
-        shadow: theme.shadow,
-      ),
+      colorScheme: colorScheme,
       extensions: [
       extensions: [
         AFThemeExtension(
         AFThemeExtension(
           warning: theme.yellow,
           warning: theme.yellow,

+ 1 - 0
frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_customize_location_view.dart

@@ -52,6 +52,7 @@ class SettingsFileLocationCustomzierState
                       SnackBar(
                       SnackBar(
                         content: FlowyText(
                         content: FlowyText(
                           LocaleKeys.settings_files_pathCopiedSnackbar.tr(),
                           LocaleKeys.settings_files_pathCopiedSnackbar.tr(),
+                          color: Theme.of(context).colorScheme.onSurface,
                         ),
                         ),
                       ),
                       ),
                     );
                     );