Files
chat-gpz/components/DynamicThemeProvider.tsx
T
Zacharias-Brohn d702390660 initial commit
2026-01-14 06:12:55 +01:00

33 lines
841 B
TypeScript

'use client';
import { createContext, useContext, useState } from 'react';
import { createTheme, MantineProvider } from '@mantine/core';
interface ThemeContextType {
primaryColor: string;
setPrimaryColor: (color: string) => void;
}
const ThemeContext = createContext<ThemeContextType>({
primaryColor: 'blue',
setPrimaryColor: () => {},
});
export const useThemeContext = () => useContext(ThemeContext);
export function DynamicThemeProvider({ children }: { children: React.ReactNode }) {
const [primaryColor, setPrimaryColor] = useState('blue');
const theme = createTheme({
primaryColor,
});
return (
<ThemeContext.Provider value={{ primaryColor, setPrimaryColor }}>
<MantineProvider theme={theme} defaultColorScheme="auto">
{children}
</MantineProvider>
</ThemeContext.Provider>
);
}