import React, { lazy, Suspense } from "react"; import { createRoot } from "react-dom/client"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import ErrorBoundary from "./components/ErrorBoundary"; import { ConfirmProvider } from "./components/ConfirmProvider"; import "./i18n"; import "./index.css"; // Split by top-level route so each entry point is its own chunk: a public /watch share link or a // legal page never downloads the authenticated app bundle, and the app never carries them either. // The legal pages live outside the App tree (no /api/me) so Google's consent screen and reviewers // can fetch them directly; the watch page is a login-free public player. Reached by full-page // navigation (plain ), so a simple pathname switch is enough — no router needed. const App = lazy(() => import("./App")); const PrivacyPolicy = lazy(() => import("./components/legal/PrivacyPolicy")); const Terms = lazy(() => import("./components/legal/Terms")); const WatchPage = lazy(() => import("./components/WatchPage")); const queryClient = new QueryClient({ defaultOptions: { queries: { retry: false, staleTime: 30_000, refetchOnWindowFocus: false } }, }); const path = window.location.pathname; const root = path === "/privacy" ? : path === "/terms" ? : path.startsWith("/watch/") ? : ( ); createRoot(document.getElementById("root")!).render( }>{root} );