aboutsummaryrefslogtreecommitdiffstats
path: root/packages/renderer/src/components/ThemeProvider.tsx
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-23 15:48:58 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-23 15:48:58 +0100
commitb5d16a8068ed55b784f8e10f19a99cc7f11b8bc7 (patch)
treed819b4bb607f5b046451e15385c16804d5f43fcf /packages/renderer/src/components/ThemeProvider.tsx
parentfeat: Main to renderer store synchronization (diff)
downloadsophie-b5d16a8068ed55b784f8e10f19a99cc7f11b8bc7.tar.gz
sophie-b5d16a8068ed55b784f8e10f19a99cc7f11b8bc7.tar.zst
sophie-b5d16a8068ed55b784f8e10f19a99cc7f11b8bc7.zip
feat: Add react and mobx integration
Diffstat (limited to 'packages/renderer/src/components/ThemeProvider.tsx')
-rw-r--r--packages/renderer/src/components/ThemeProvider.tsx26
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/renderer/src/components/ThemeProvider.tsx b/packages/renderer/src/components/ThemeProvider.tsx
new file mode 100644
index 0000000..8be4f6a
--- /dev/null
+++ b/packages/renderer/src/components/ThemeProvider.tsx
@@ -0,0 +1,26 @@
1import { observer } from 'mobx-react-lite';
2import {
3 unstable_createMuiStrictModeTheme as createTheme,
4 ThemeProvider as MuiThemeProvider,
5} from '@mui/material/styles';
6import React from 'react';
7
8import { useStore } from './StoreProvider';
9
10export const ThemeProvider = observer(({ children }: {
11 children: JSX.Element | JSX.Element[],
12}): JSX.Element => {
13 const { shared: { shouldUseDarkColors } } = useStore();
14
15 const theme = createTheme({
16 palette: {
17 mode: shouldUseDarkColors ? 'dark' : 'light',
18 },
19 });
20
21 return (
22 <MuiThemeProvider theme={theme}>
23 {children}
24 </MuiThemeProvider>
25 );
26});