diff --git a/app/(app)/(builder)/builder/page.tsx b/app/(app)/(builder)/builder/page.tsx index bb75aa5..6139b72 100644 --- a/app/(app)/(builder)/builder/page.tsx +++ b/app/(app)/(builder)/builder/page.tsx @@ -1,6 +1,8 @@ // app/(builder)/builder/page.tsx "use client"; +import { Suspense } from "react"; + /** * Battl Builder - Main builder page * @@ -329,7 +331,7 @@ function buildAssemblyRows(params: { return rows; } -export default function GunbuilderPage() { +function GunbuilderPageContent() { const searchParams = useSearchParams(); const router = useRouter(); @@ -1704,3 +1706,19 @@ export default function GunbuilderPage() { ); } + +export default function GunbuilderPage() { + return ( + +
+
+
Loading builder…
+
+
+ + }> + +
+ ); +} diff --git a/app/(app)/layout.tsx b/app/(app)/layout.tsx index dfd1b12..19ecbe5 100644 --- a/app/(app)/layout.tsx +++ b/app/(app)/layout.tsx @@ -1,16 +1,18 @@ // app/(builder)/layout.tsx import type { ReactNode } from "react"; +import { Suspense } from "react"; import { BuilderNav } from "@/components/BuilderNav"; import { TopNav } from "@/components/TopNav"; -import { Import } from "lucide-react"; import { Footer } from "@/components/Footer"; export default function BuilderLayout({ children }: { children: ReactNode }) { return (
- + }> + +
{children}
diff --git a/app/beta/confirm/page.tsx b/app/beta/confirm/page.tsx index 4335ee8..b1c2e59 100644 --- a/app/beta/confirm/page.tsx +++ b/app/beta/confirm/page.tsx @@ -1,14 +1,14 @@ // app/beta/confirm/page.tsx "use client"; -import { useEffect, useRef, useState } from "react"; +import { useEffect, useRef, useState, Suspense } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { useAuth } from "@/context/AuthContext"; const API_BASE_URL = process.env.NEXT_PUBLIC_API_BASE_URL ?? "http://localhost:8080"; -export default function BetaConfirmPage() { +function BetaConfirmPageContent() { const params = useSearchParams(); const token = params.get("token"); const router = useRouter(); @@ -88,4 +88,19 @@ export default function BetaConfirmPage() { ); +} + +export default function BetaConfirmPage() { + return ( + +
+

Battl Builders

+

Loading…

+
+ + }> + +
+ ); } \ No newline at end of file diff --git a/app/beta/magic/page.tsx b/app/beta/magic/page.tsx index 84182db..21501c3 100644 --- a/app/beta/magic/page.tsx +++ b/app/beta/magic/page.tsx @@ -1,10 +1,10 @@ "use client"; -import { useEffect, useRef, useState } from "react"; +import { useEffect, useRef, useState, Suspense } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { useAuth } from "@/context/AuthContext"; -export default function BetaMagicPage() { +function BetaMagicPageContent() { const params = useSearchParams(); const token = params.get("token"); const router = useRouter(); @@ -75,4 +75,19 @@ export default function BetaMagicPage() { ); +} + +export default function BetaMagicPage() { + return ( + +
+

Battl Builders

+

Loading…

+
+ + }> + +
+ ); } \ No newline at end of file diff --git a/app/builds/layout.tsx b/app/builds/layout.tsx index f0fd9f0..24108d4 100644 --- a/app/builds/layout.tsx +++ b/app/builds/layout.tsx @@ -1,5 +1,6 @@ // app/(builder)/layout.tsx import type { ReactNode } from "react"; +import { Suspense } from "react"; import { AuthProvider } from "@/context/AuthContext"; import { BuilderNav } from "@/components/BuilderNav"; @@ -10,7 +11,9 @@ export default function BuilderLayout({ children }: { children: ReactNode }) {
- + }> + +
{children}
diff --git a/app/login/page.tsx b/app/login/page.tsx index 3ed3ba0..fd2e139 100644 --- a/app/login/page.tsx +++ b/app/login/page.tsx @@ -1,7 +1,7 @@ // app/login/page.tsx "use client"; -import { FormEvent, useMemo, useState } from "react"; +import { FormEvent, useMemo, useState, Suspense } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import Link from "next/link"; import { useAuth } from "@/context/AuthContext"; @@ -10,7 +10,7 @@ import { Button, Field, Input } from "@/components/ui/form"; const API_BASE_URL = process.env.NEXT_PUBLIC_API_BASE_URL ?? "http://localhost:8080"; -export default function LoginPage() { +function LoginPageContent() { const router = useRouter(); const searchParams = useSearchParams(); const { login, loading } = useAuth(); @@ -186,3 +186,17 @@ export default function LoginPage() { ); } + +export default function LoginPage() { + return ( + +
+
+
+ + }> + + + ); +} diff --git a/app/register/page.tsx b/app/register/page.tsx index d77a424..649001a 100644 --- a/app/register/page.tsx +++ b/app/register/page.tsx @@ -1,7 +1,7 @@ // app/register/page.tsx "use client"; -import { FormEvent, useState } from "react"; +import { FormEvent, useState, Suspense } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import Link from "next/link"; import { useAuth } from "@/context/AuthContext"; @@ -9,7 +9,7 @@ import { Button, Field, Input } from "@/components/ui/form"; const TOS_VERSION = "2025-12-27"; -export default function RegisterPage() { +function RegisterPageContent() { const router = useRouter(); const searchParams = useSearchParams(); const { register, loading } = useAuth(); @@ -125,7 +125,7 @@ export default function RegisterPage() { > Privacy Policy - . I understand Battl Builders is informational only and I’m + . I understand Battl Builders is informational only and I'm solely responsible for legality, compatibility, and safe assembly/use of any firearm or components. @@ -147,4 +147,18 @@ export default function RegisterPage() {
); +} + +export default function RegisterPage() { + return ( + +
+
+
+ + }> + + + ); } \ No newline at end of file