mirror of https://github.com/MaxLeiter/Drift
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
749 B
TypeScript
27 lines
749 B
TypeScript
import type { FunctionComponent, PropsWithChildren } from "react";
|
|
import ThemeClientContextProvider from "./ThemeClientContextProvider";
|
|
import ThemeServerContextProvider, {
|
|
useServerTheme,
|
|
} from "./ThemeServerContextProvider";
|
|
|
|
const ThemeProviderWrapper: FunctionComponent<PropsWithChildren<{}>> = ({
|
|
children,
|
|
}) => {
|
|
const theme = useServerTheme();
|
|
return (
|
|
<ThemeClientContextProvider defaultTheme={theme}>
|
|
{children}
|
|
</ThemeClientContextProvider>
|
|
);
|
|
};
|
|
|
|
const ThemeProvider: FunctionComponent<PropsWithChildren<{}>> = ({ children }) => {
|
|
return (
|
|
<ThemeServerContextProvider>
|
|
<ThemeProviderWrapper>{children}</ThemeProviderWrapper>
|
|
</ThemeServerContextProvider>
|
|
);
|
|
};
|
|
|
|
export default ThemeProvider;
|