'use client' import React, { useEffect, useState } from 'react' import { motion, AnimatePresence } from 'framer-motion' import { Power } from '@phosphor-icons/react' interface SystemPowerOverlayProps { state: 'active' | 'sleep' | 'restart' | 'shutdown' onWake: () => void onRestartComplete: () => void } export function SystemPowerOverlay({ state, onWake, onRestartComplete }: SystemPowerOverlayProps) { const [showPowerButton, setShowPowerButton] = useState(false) // Handle Sleep Wake useEffect(() => { if (state === 'sleep') { // Small delay to prevent the click that triggered sleep from immediately waking it const timer = setTimeout(() => { const handleWake = () => onWake() window.addEventListener('keydown', handleWake) window.addEventListener('mousedown', handleWake) window.addEventListener('touchstart', handleWake) }, 500) return () => { clearTimeout(timer) const handleWake = () => onWake() window.removeEventListener('keydown', handleWake) window.removeEventListener('mousedown', handleWake) window.removeEventListener('touchstart', handleWake) } } }, [state, onWake]) // Handle Restart useEffect(() => { if (state === 'restart') { const timer = setTimeout(() => { onRestartComplete() }, 4000) return () => clearTimeout(timer) } }, [state, onRestartComplete]) // Handle Shutdown useEffect(() => { if (state === 'shutdown') { setShowPowerButton(false) const timer = setTimeout(() => { setShowPowerButton(true) }, 3000) return () => clearTimeout(timer) } }, [state]) if (state === 'active') return null return ( {state === 'sleep' && (
)} {state === 'restart' && (
)} {state === 'shutdown' && (
{!showPowerButton ? (
R
) : (
SYSTEM OFF )}
)} ) }