'use client'
import { ThemeProvider as NextThemesProvider, type ThemeProviderProps, useTheme } from 'next-themes'
import * as React from 'react'
import { useChatStore } from '@/lib/store'
export function ThemeProvider({ children, ...props }: ThemeProviderProps) {
return <NextThemesProvider {...props}>{children}</NextThemesProvider>
}
export { useTheme } from 'next-themes'
export function useThemeWithStore() {
const { theme: nextTheme, setTheme: setNextTheme } = useTheme()
const { settings, updateSettings } = useChatStore()
React.useEffect(() => {
if (nextTheme && nextTheme !== settings.theme) {
updateSettings({ theme: nextTheme as 'light' | 'dark' | 'system' })
}
}, [nextTheme, settings.theme, updateSettings])
const setThemeWithStore = (theme: 'light' | 'dark' | 'system') => {
setNextTheme(theme)
}
return { theme: nextTheme, setTheme: setThemeWithStore }
}