'use client'
import { useEffect, useState } from 'react'
import { useTheme } from 'next-themes'
export function ThemeToggle() {
const [mounted, setMounted] = useState(false)
const { theme, setTheme } = useTheme()
const [isGlitching, setIsGlitching] = useState(false)
useEffect(() => {
setMounted(true)
}, [])
const toggleTheme = () => {
// Trigger glitch animation
setIsGlitching(true)
// Trigger screen flicker
document.body.classList.add('screen-flicker')
// Toggle theme
setTheme(theme === 'dark' ? 'light' : 'dark')
// Remove effects after animation
setTimeout(() => {
setIsGlitching(false)
document.body.classList.remove('screen-flicker')
}, 300)
}
if (!mounted) {
return (
)
}
return (
)
}