Fix snackbars in dark mode

This commit is contained in:
nimbleghost 2023-06-28 21:18:04 +02:00
parent d838790b8f
commit 0d231d8bd9
2 changed files with 46 additions and 34 deletions

View File

@ -5,7 +5,7 @@ import { ThemeProvider, createTheme } from "@mui/material/styles";
import { useLiveQuery } from "dexie-react-hooks";
import { BrowserRouter, Outlet, Route, Routes, useParams } from "react-router-dom";
import { AllSubscriptions, SingleSubscription } from "./Notifications";
import themeOptions, { darkPalette, lightPalette } from "./theme";
import { darkTheme, lightTheme } from "./theme";
import Navigation from "./Navigation";
import ActionBar from "./ActionBar";
import notifier from "../app/Notifier";
@ -46,13 +46,7 @@ const App = () => {
const prefersDarkMode = useMediaQuery("(prefers-color-scheme: dark)");
const themePreference = useLiveQuery(() => prefs.theme());
const theme = React.useMemo(
() =>
createTheme({
...themeOptions,
palette: {
...(darkModeEnabled(prefersDarkMode, themePreference) ? darkPalette : lightPalette),
},
}),
() => createTheme(darkModeEnabled(prefersDarkMode, themePreference) ? darkTheme : lightTheme),
[prefersDarkMode, themePreference]
);

View File

@ -1,5 +1,5 @@
/** @type {import("@mui/material").ThemeOptions} */
const themeOptions = {
const baseThemeOptions = {
components: {
MuiListItemIcon: {
styleOverrides: {
@ -22,35 +22,53 @@ const themeOptions = {
// https://github.com/binwiederhier/ntfy-android/blob/main/app/src/main/res/values/colors.xml
/** @type {import("@mui/material").ThemeOptions['palette']} */
export const lightPalette = {
mode: "light",
primary: {
main: "#338574",
/** @type {import("@mui/material").ThemeOptions} */
export const lightTheme = {
...baseThemeOptions,
components: {
...baseThemeOptions.components,
},
secondary: {
main: "#6cead0",
},
error: {
main: "#c30000",
palette: {
mode: "light",
primary: {
main: "#338574",
},
secondary: {
main: "#6cead0",
},
error: {
main: "#c30000",
},
},
};
/** @type {import("@mui/material").ThemeOptions['palette']} */
export const darkPalette = {
mode: "dark",
background: {
paper: "#1b2124",
/** @type {import("@mui/material").ThemeOptions} */
export const darkTheme = {
...baseThemeOptions,
components: {
...baseThemeOptions.components,
MuiSnackbarContent: {
styleOverrides: {
root: {
color: "#000",
backgroundColor: "#aeaeae",
},
},
},
},
primary: {
main: "#65b5a3",
},
secondary: {
main: "#6cead0",
},
error: {
main: "#fe4d2e",
palette: {
mode: "dark",
background: {
paper: "#1b2124",
},
primary: {
main: "#65b5a3",
},
secondary: {
main: "#6cead0",
},
error: {
main: "#fe4d2e",
},
},
};
export default themeOptions;