import { useEffect, useState } from "react"; import { cn } from "@/lib/utils"; import AeThexOSLogo from "./AeThexOSLogo"; interface LoadingScreenProps { message?: string; variant?: "full" | "overlay" | "inline"; size?: "sm" | "md" | "lg"; showProgress?: boolean; duration?: number; accentColor?: string; armLogo?: string; showOSLogo?: boolean; } export default function LoadingScreen({ message = "Loading...", variant = "full", size = "md", showProgress = false, duration = 3000, accentColor = "from-aethex-500 to-neon-blue", armLogo, showOSLogo = true, }: LoadingScreenProps) { const [progress, setProgress] = useState(0); const [currentMessage, setCurrentMessage] = useState(message); useEffect(() => { if (showProgress) { const interval = setInterval(() => { setProgress((prev) => { const newProgress = prev + 100 / (duration / 100); return newProgress > 100 ? 100 : newProgress; }); }, 100); return () => clearInterval(interval); } }, [showProgress, duration]); useEffect(() => { const messages = [ "Initializing AeThex OS...", "Loading quantum processors...", "Calibrating neural networks...", "Synchronizing data streams...", "Preparing your experience...", ]; if (variant === "full") { let index = 0; const interval = setInterval(() => { setCurrentMessage(messages[index % messages.length]); index++; }, 1200); return () => clearInterval(interval); } }, [variant]); const sizeClasses = { sm: "h-4 w-4", md: "h-8 w-8", lg: "h-12 w-12", }; if (variant === "inline") { return (