Dont lazy load components so pages load instantly and sidebar.tsx on mobile phone is fixed
This commit is contained in:
+22
-33
@@ -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>
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user