2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-08-07 04:12:11 +00:00

adapt theme context

This commit is contained in:
Matthias Mair
2024-04-15 00:45:06 +02:00
parent f5d12b8155
commit a00eed2451

View File

@@ -1,11 +1,10 @@
import { t } from '@lingui/macro';
import {
ColorScheme,
ColorSchemeProvider,
MantineProvider,
MantineThemeOverride
createTheme,
localStorageColorSchemeManager
} from '@mantine/core';
import { useColorScheme, useLocalStorage } from '@mantine/hooks';
import { useColorScheme } from '@mantine/hooks';
import { ModalsProvider } from '@mantine/modals';
import { Notifications } from '@mantine/notifications';
@@ -28,22 +27,16 @@ export function ThemeContext({ children }: { children: JSX.Element }) {
// Color Scheme
const preferredColorScheme = useColorScheme();
const [colorScheme, setColorScheme] = useLocalStorage<ColorScheme>({
key: 'scheme',
defaultValue: preferredColorScheme
const colorSchemeManager = localStorageColorSchemeManager({
key: 'scheme'
});
const toggleColorScheme = (value?: ColorScheme) => {
setColorScheme(value || (colorScheme === 'dark' ? 'light' : 'dark'));
myTheme.colorScheme = colorScheme;
};
// Theme
const myTheme: MantineThemeOverride = {
colorScheme: colorScheme,
const myTheme = createTheme({
primaryColor: primaryColor,
white: whiteColor,
black: blackColor,
loader: loader,
//loader: loader,
defaultRadius: radius,
breakpoints: {
xs: '30em',
@@ -52,27 +45,26 @@ export function ThemeContext({ children }: { children: JSX.Element }) {
lg: '74em',
xl: '90em'
}
};
});
return (
<ColorSchemeProvider
colorScheme={colorScheme}
toggleColorScheme={toggleColorScheme}
<MantineProvider
theme={myTheme}
defaultColorScheme={preferredColorScheme}
colorSchemeManager={colorSchemeManager}
>
<MantineProvider theme={myTheme} withGlobalStyles withNormalizeCSS>
<Notifications />
<ModalsProvider
labels={{ confirm: t`Submit`, cancel: t`Cancel` }}
modals={{
qr: QrCodeModal,
info: ServerInfoModal,
about: AboutInvenTreeModal,
license: LicenseModal
}}
>
{children}
</ModalsProvider>
</MantineProvider>
</ColorSchemeProvider>
<Notifications />
<ModalsProvider
labels={{ confirm: t`Submit`, cancel: t`Cancel` }}
modals={{
qr: QrCodeModal,
info: ServerInfoModal,
about: AboutInvenTreeModal,
license: LicenseModal
}}
>
{children}
</ModalsProvider>
</MantineProvider>
);
}