Skip to content

Commit cbdbf26

Browse files
authored
Merge pull request #64 from dots-ui/fix/next-js-theme-classname-mismatch
fix(styling): create Theme Provider that does not use it's own react …
2 parents e4b4d2c + 383e1ad commit cbdbf26

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

.storybook/preview.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from "react";
2-
import { ThemeProvider } from "../src/components/ThemeProvider";
2+
import { StorybookThemeProvider } from "../src/components/ThemeProvider";
33
import type { Preview } from "@storybook/react";
44
import {
55
ThemeDefaultBackground,
@@ -26,12 +26,12 @@ const preview: Preview = {
2626
},
2727
decorators: [
2828
(Story) => (
29-
<ThemeProvider>
29+
<StorybookThemeProvider>
3030
<ThemeDefaultBackground>
3131
<ToggleThemeButton />
3232
<Story />
3333
</ThemeDefaultBackground>
34-
</ThemeProvider>
34+
</StorybookThemeProvider>
3535
),
3636
],
3737
};

src/components/ThemeProvider.tsx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,22 @@ export const ThemeContext = createContext(defaultTheme);
5353
export const ThemeProvider = (props: {
5454
children: React.ReactNode;
5555
theme?: PartialDeep<Theme>;
56+
dark?: boolean
57+
}) => {
58+
const { children, theme: providedTheme, dark } = props;
59+
const theme = providedTheme ?? defaultTheme;
60+
return (
61+
<ThemeContext.Provider value={theme}>
62+
<StyledThemeProvider theme={dark ? theme.dark : theme.light}>
63+
{children}
64+
</StyledThemeProvider>
65+
</ThemeContext.Provider>
66+
);
67+
};
68+
69+
export const StorybookThemeProvider = (props: {
70+
children: React.ReactNode;
71+
theme?: PartialDeep<Theme>;
5672
}) => {
5773
const { children, theme: providedTheme } = props;
5874
const darkMode = useDarkMode(false);

0 commit comments

Comments
 (0)