import React, { useState, useEffect } from 'react'; interface PreloaderProps { onLoadingComplete?: () => void; } const Preloader: React.FC<PreloaderProps> = ({ onLoadingComplete }) => { const [isVisible, setIsVisible] = useState<boolean>(true); useEffect(() => { const timer = setTimeout(() => { setIsVisible(false); setTimeout(() => onLoadingComplete?.(), 500); // Wait for fade out }, 2000); return () => clearTimeout(timer); }, [onLoadingComplete]); if (!isVisible) return null; return ( <div id="kw-preloader" style={{ position: 'fixed', top: 0, left: 0, width: '100%', height: '100%', background: 'white', display: 'flex', alignItems: 'center', justifyContent: 'center', zIndex: 9999, opacity: isVisible ? 1 : 0, transition: 'opacity 0.5s ease' }} > <div>Loading...</div> </div> ); }; export default Preloader;