SoftTraderFrontend/components/providers/ThemeProvider.tsx
2026-03-20 11:10:13 -04:00

26 lines
718 B
TypeScript

'use client'
import { useEffect, useState } from 'react'
export function ThemeProvider({ children }: { children: React.ReactNode }) {
const [mounted, setMounted] = useState(false)
useEffect(() => {
setMounted(true)
// Check for saved theme preference or system preference
const savedTheme = localStorage.getItem('theme')
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches
const theme = savedTheme || (prefersDark ? 'dark' : 'light')
if (theme === 'dark') {
document.documentElement.classList.add('dark')
} else {
document.documentElement.classList.remove('dark')
}
}, [])
if (!mounted) return children
return <>{children}</>
}