'use client' import { useEffect, useState } from 'react' import { motion, AnimatePresence } from 'framer-motion' export type Theme = 'dark' | 'light' const STORAGE_KEY = 'ghost-theme' export function useTheme(): [Theme, () => void] { const [theme, setTheme] = useState('dark') useEffect(() => { const stored = (localStorage.getItem(STORAGE_KEY) as Theme | null) ?? 'dark' setTheme(stored) document.documentElement.setAttribute('data-theme', stored) }, []) const toggle = () => { const next: Theme = theme === 'dark' ? 'light' : 'dark' setTheme(next) document.documentElement.setAttribute('data-theme', next) localStorage.setItem(STORAGE_KEY, next) } return [theme, toggle] } export default function ThemeToggle() { const [theme, toggle] = useTheme() const isLight = theme === 'light' return ( {isLight ? ( /* Moon — switch to dark */ ) : ( /* Sun — switch to light */ )} ) }