fix: wrap useSearchParams in Suspense boundaries for Next.js 14 static build
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,9 +1,8 @@
|
|||||||
"use client";
|
"use client";
|
||||||
export const dynamic = "force-dynamic";
|
import { Suspense, useEffect, useState } from "react";
|
||||||
import { useEffect, useState } from "react";
|
|
||||||
import { useRouter, useSearchParams } from "next/navigation";
|
import { useRouter, useSearchParams } from "next/navigation";
|
||||||
|
|
||||||
export default function AuthPage() {
|
function AuthContent() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const params = useSearchParams();
|
const params = useSearchParams();
|
||||||
const [status, setStatus] = useState<"loading" | "error">("loading");
|
const [status, setStatus] = useState<"loading" | "error">("loading");
|
||||||
@@ -48,3 +47,18 @@ export default function AuthPage() {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default function AuthPage() {
|
||||||
|
return (
|
||||||
|
<Suspense fallback={
|
||||||
|
<div className="flex flex-col items-center justify-center min-h-[60vh] gap-4">
|
||||||
|
<svg className="animate-spin h-10 w-10 text-blue-600" fill="none" viewBox="0 0 24 24">
|
||||||
|
<circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4" />
|
||||||
|
<path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8H4z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
}>
|
||||||
|
<AuthContent />
|
||||||
|
</Suspense>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
"use client";
|
"use client";
|
||||||
export const dynamic = "force-dynamic";
|
import { Suspense, useEffect, useState } from "react";
|
||||||
import { useEffect, useState } from "react";
|
|
||||||
import { useRouter, useSearchParams } from "next/navigation";
|
import { useRouter, useSearchParams } from "next/navigation";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import Card from "@/components/ui/Card";
|
import Card from "@/components/ui/Card";
|
||||||
@@ -15,7 +14,7 @@ interface Registro {
|
|||||||
tipoServicio: { nombre: string } | null;
|
tipoServicio: { nombre: string } | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function HistorialPage() {
|
function HistorialContent() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const params = useSearchParams();
|
const params = useSearchParams();
|
||||||
const autoId = params.get("autoId");
|
const autoId = params.get("autoId");
|
||||||
@@ -83,3 +82,11 @@ export default function HistorialPage() {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default function HistorialPage() {
|
||||||
|
return (
|
||||||
|
<Suspense fallback={<div className="text-center py-10 text-gray-400">Cargando...</div>}>
|
||||||
|
<HistorialContent />
|
||||||
|
</Suspense>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
"use client";
|
"use client";
|
||||||
export const dynamic = "force-dynamic";
|
import { Suspense, useEffect, useState } from "react";
|
||||||
import { useEffect, useState } from "react";
|
|
||||||
import { useRouter, useSearchParams } from "next/navigation";
|
import { useRouter, useSearchParams } from "next/navigation";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import Card from "@/components/ui/Card";
|
import Card from "@/components/ui/Card";
|
||||||
@@ -20,7 +19,7 @@ interface Turno {
|
|||||||
|
|
||||||
type Step = "servicio" | "slot" | "confirmado";
|
type Step = "servicio" | "slot" | "confirmado";
|
||||||
|
|
||||||
export default function TurnosPage() {
|
function TurnosContent() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const params = useSearchParams();
|
const params = useSearchParams();
|
||||||
const autoId = params.get("autoId");
|
const autoId = params.get("autoId");
|
||||||
@@ -205,3 +204,11 @@ export default function TurnosPage() {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default function TurnosPage() {
|
||||||
|
return (
|
||||||
|
<Suspense fallback={<div className="text-center py-10 text-gray-400">Cargando...</div>}>
|
||||||
|
<TurnosContent />
|
||||||
|
</Suspense>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user