'use client'
import { Moon, Sun } from 'lucide-react'
import { Button } from '@/components/ui/button'
import { useTheme } from '@/components/theme-provider'
import { useEffect, useState } from 'react'
export function ThemeToggle() {
const { theme, setTheme } = useTheme()
const [mounted, setMounted] = useState(false)
useEffect(() => {
setMounted(true)
}, [])
if (!mounted) {
return (
)
}
const toggleTheme = () => {
if (theme === 'system') {
// If system, first switch to light/dark based on current system preference
const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches
setTheme(isDark ? 'light' : 'dark')
} else {
setTheme(theme === 'light' ? 'dark' : 'light')
}
}
const getIcon = () => {
if (theme === 'system') {
const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches
return isDark ? :
}
return theme === 'light' ? :
}
return (
)
}