import { useEffect, useState } from "react"; import { isRouteErrorResponse, Links, Meta, Outlet, Scripts, ScrollRestoration, useNavigation, } from "react-router"; import type { Route } from "./+types/root"; import "./app.css"; export const links: Route.LinksFunction = () => [ { rel: "preconnect", href: "https://fonts.googleapis.com" }, { rel: "preconnect", href: "https://fonts.gstatic.com", crossOrigin: "anonymous", }, { rel: "stylesheet", href: "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap", }, ]; export function Layout({ children }: { children: React.ReactNode }) { return ( ライブに行くしかない {children} ); } function NavigationProgress() { const navigation = useNavigation(); const [phase, setPhase] = useState<"idle" | "loading" | "done">("idle"); useEffect(() => { if (navigation.state !== "idle") { setPhase("loading"); } else { setPhase((prev) => (prev === "loading" ? "done" : prev)); } }, [navigation.state]); useEffect(() => { if (phase !== "done") return; const t = setTimeout(() => setPhase("idle"), 500); return () => clearTimeout(t); }, [phase]); if (phase === "idle") return null; return (
); } export default function App() { return ( <> ); } export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { let message = "Oops!"; let details = "An unexpected error occurred."; let stack: string | undefined; if (isRouteErrorResponse(error)) { message = error.status === 404 ? "404" : "Error"; details = error.status === 404 ? "The requested page could not be found." : error.statusText || details; } else if (import.meta.env.DEV && error && error instanceof Error) { details = error.message; stack = error.stack; } return (

{message}

{details}

{stack && (
          {stack}
        
)}
); }