import { StrictMode, useEffect } from 'react'; import { createRoot } from 'react-dom/client'; import App from './App.tsx'; import './index.css'; // Performance monitoring const measurePerformance = () => { if (typeof window !== 'undefined' && 'performance' in window) { // Mark app start performance.mark('app-start'); // Measure when app is ready setTimeout(() => { performance.mark('app-ready'); performance.measure('app-load-time', 'app-start', 'app-ready'); const measure = performance.getEntriesByName('app-load-time')[0]; if (measure && import.meta.env.DEV) { console.log(`⚡ App loaded in ${measure.duration.toFixed(2)}ms`); } }, 100); } }; // Remove loading screen const removeLoadingScreen = () => { const loadingScreen = document.querySelector('.loading-screen'); if (loadingScreen) { loadingScreen.style.opacity = '0'; loadingScreen.style.transition = 'opacity 0.3s ease-out'; setTimeout(() => { loadingScreen.remove(); }, 300); } }; // App wrapper with performance optimizations const AppWrapper = () => { useEffect(() => { // Remove loading screen when app mounts removeLoadingScreen(); // Measure performance measurePerformance(); // Preload critical resources const preloadCriticalResources = () => { // Preload critical components that exist import('./components/Gallery').catch(() => {}); import('./components/Hero').catch(() => {}); }; // Delay preloading to not block initial render const preloadTimer = setTimeout(preloadCriticalResources, 2000); return () => clearTimeout(preloadTimer); }, []); return ; }; // Start the application const startApp = () => { const root = createRoot(document.getElementById('root')!); root.render( ); }; // Initialize app startApp();