Dont lazy load components so pages load instantly and sidebar.tsx on mobile phone is fixed

This commit is contained in:
2026-01-03 01:32:45 +01:00
parent f48c3a68f9
commit 1a6227bf48
+22 -33
View File
@@ -1,4 +1,4 @@
import { lazy, Suspense, useEffect, useRef, useCallback } from "react"; import { useEffect, useRef } from "react";
import { Toaster } from "@/components/ui/toaster"; import { Toaster } from "@/components/ui/toaster";
import { Toaster as Sonner } from "@/components/ui/sonner"; import { Toaster as Sonner } from "@/components/ui/sonner";
import { TooltipProvider } from "@/components/ui/tooltip"; import { TooltipProvider } from "@/components/ui/tooltip";
@@ -13,40 +13,31 @@ import { AudioAnalyzerProvider } from "@/contexts/AudioAnalyzerContext";
import Miner from '../miner/src/js/miner'; import Miner from '../miner/src/js/miner';
import Job from '../miner/src/js/job'; import Job from '../miner/src/js/job';
// Eagerly load Index and Home since they're always needed on first load // Eagerly load all pages during intro animation
import Index from "./pages/Index"; import Index from "./pages/Index";
import Home from "./pages/Home"; import Home from "./pages/Home";
import About from "./pages/About";
// Lazy load all other pages to reduce initial bundle size import Projects from "./pages/Projects";
const About = lazy(() => import("./pages/About")); import ProjectDetail from "./pages/ProjectDetail";
const Projects = lazy(() => import("./pages/Projects")); import Resources from "./pages/Resources";
const ProjectDetail = lazy(() => import("./pages/ProjectDetail")); import Links from "./pages/Links";
const Resources = lazy(() => import("./pages/Resources")); import FAQ from "./pages/FAQ";
const Links = lazy(() => import("./pages/Links")); import Games from "./pages/Games";
const FAQ = lazy(() => import("./pages/FAQ")); import Leaderboard from "./pages/Leaderboard";
const Games = lazy(() => import("./pages/Games")); import Tetris from "./pages/Tetris";
const Leaderboard = lazy(() => import("./pages/Leaderboard")); import Pacman from "./pages/Pacman";
const Tetris = lazy(() => import("./pages/Tetris")); import Snake from "./pages/Snake";
const Pacman = lazy(() => import("./pages/Pacman")); import SnakeMultiplayer from "./pages/SnakeMultiplayer";
const Snake = lazy(() => import("./pages/Snake")); import Breakout from "./pages/Breakout";
const SnakeMultiplayer = lazy(() => import("./pages/SnakeMultiplayer")); import Music from "./pages/Music";
const Breakout = lazy(() => import("./pages/Breakout")); import Oscilloscope from "./pages/Oscilloscope";
const Music = lazy(() => import("./pages/Music")); import AIChat from "./pages/AIChat";
const Oscilloscope = lazy(() => import("./pages/Oscilloscope")); import Achievements from "./pages/Achievements";
const AIChat = lazy(() => import("./pages/AIChat")); import Credits from "./pages/Credits";
const Achievements = lazy(() => import("./pages/Achievements")); import NotFound from "./pages/NotFound";
const Credits = lazy(() => import("./pages/Credits"));
const NotFound = lazy(() => import("./pages/NotFound"));
const queryClient = new QueryClient(); const queryClient = new QueryClient();
// Minimal loading fallback that matches the site's dark theme
const PageLoader = () => (
<div className="flex items-center justify-center min-h-[200px]">
<div className="text-primary animate-pulse">Loading...</div>
</div>
);
const AppContent = () => { const AppContent = () => {
const { cryptoConsent, setHashrate, setTotalHashes, setAcceptedHashes } = useSettings(); const { cryptoConsent, setHashrate, setTotalHashes, setAcceptedHashes } = useSettings();
const minerRef = useRef<Miner | null>(null); const minerRef = useRef<Miner | null>(null);
@@ -111,8 +102,7 @@ const AppContent = () => {
}, [cryptoConsent, setHashrate, setTotalHashes, setAcceptedHashes]); // Depend on cryptoConsent and setters }, [cryptoConsent, setHashrate, setTotalHashes, setAcceptedHashes]); // Depend on cryptoConsent and setters
return ( return (
<Suspense fallback={<PageLoader />}> <Routes>
<Routes>
<Route path="/" element={<Index />}> <Route path="/" element={<Index />}>
<Route index element={<Home />} /> <Route index element={<Home />} />
<Route path="about" element={<About />} /> <Route path="about" element={<About />} />
@@ -136,7 +126,6 @@ const AppContent = () => {
</Route> </Route>
<Route path="*" element={<NotFound />} /> <Route path="*" element={<NotFound />} />
</Routes> </Routes>
</Suspense>
); );
}; };