diff --git a/App.tsx b/App.tsx index d904ed5..17bf791 100644 --- a/App.tsx +++ b/App.tsx @@ -1,11 +1,7 @@ -import React, { useState, useMemo, useEffect, useCallback } from 'react'; +import React, { useState, useMemo, useEffect, useCallback, Suspense, lazy } from 'react'; import FileUpload from './components/FileUpload'; import Dashboard from './components/Dashboard'; -import DataGrid from './components/DataGrid'; -import WeeklyGrid from './components/WeeklyGrid'; -import TopMovers from './components/TopMovers'; -// import AdvertisingDashboard from './components/AdvertisingDashboard'; // Removed import FilterBar from './components/FilterBar'; import AIChat from './components/AIChat'; import CrazeLogo from './components/CrazeLogo'; @@ -15,6 +11,18 @@ import { queryGemini } from './services/geminiService'; import { ChartIcon, TableIcon, UploadIcon, DownloadIcon, CloseIcon, TrendingIcon } from './components/Icons'; import { loadSalesData, saveSalesData, clearSalesData, loadAdsData, saveAdsData, clearAdsData } from './services/storage'; +// Lazy load heavy components for better initial performance +const DataGrid = lazy(() => import('./components/DataGrid')); +const WeeklyGrid = lazy(() => import('./components/WeeklyGrid')); +const TopMovers = lazy(() => import('./components/TopMovers')); + +// Loading fallback component +const LoadingSpinner = () => ( +