1
- import React , { createContext } from "react" ;
1
+ import React from "react" ;
2
2
import { ThemeProvider as StyledThemeProvider } from "styled-components" ;
3
3
import { PartialDeep } from "type-fest" ;
4
4
import useDarkMode from "use-dark-mode" ;
@@ -48,21 +48,17 @@ export const defaultTheme: PartialDeep<Theme> = {
48
48
} ,
49
49
} ;
50
50
51
- export const ThemeContext = createContext ( defaultTheme ) ;
52
-
53
51
export const ThemeProvider = ( props : {
54
52
children : React . ReactNode ;
55
53
theme ?: PartialDeep < Theme > ;
56
- dark ?: boolean
54
+ dark ?: boolean ;
57
55
} ) => {
58
56
const { children, theme : providedTheme , dark } = props ;
59
57
const theme = providedTheme ?? defaultTheme ;
60
58
return (
61
- < ThemeContext . Provider value = { theme } >
62
- < StyledThemeProvider theme = { dark ? theme . dark : theme . light } >
63
- { children }
64
- </ StyledThemeProvider >
65
- </ ThemeContext . Provider >
59
+ < StyledThemeProvider theme = { dark ? theme . dark : theme . light } >
60
+ { children }
61
+ </ StyledThemeProvider >
66
62
) ;
67
63
} ;
68
64
@@ -74,19 +70,16 @@ export const StorybookThemeProvider = (props: {
74
70
const darkMode = useDarkMode ( false ) ;
75
71
const theme = providedTheme ?? defaultTheme ;
76
72
return (
77
- < ThemeContext . Provider value = { theme } >
78
- < StyledThemeProvider theme = { darkMode . value ? theme . dark : theme . light } >
79
- { children }
80
- </ StyledThemeProvider >
81
- </ ThemeContext . Provider >
73
+ < StyledThemeProvider theme = { darkMode . value ? theme . dark : theme . light } >
74
+ { children }
75
+ </ StyledThemeProvider >
82
76
) ;
83
77
} ;
84
78
85
79
export const getThemeValue = ( key : keyof Palette ) => {
86
80
try {
87
- const theme = React . useContext ( ThemeContext ) ?? defaultTheme ;
88
81
const darkMode = useDarkMode ( false ) ;
89
- return darkMode . value ? theme . dark ! [ key ] : theme . light ! [ key ] ;
82
+ return darkMode . value ? defaultTheme . dark ! [ key ] : defaultTheme . light ! [ key ] ;
90
83
} catch {
91
84
defaultTheme . light ! [ key ] ;
92
85
// in case of error, return the default value
0 commit comments