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:
Beldor
2026-06-18 13:02:00 -03:00
parent bb1785c737
commit f28568906a
3 changed files with 37 additions and 9 deletions
+17 -3
View File
@@ -1,9 +1,8 @@
"use client";
export const dynamic = "force-dynamic";
import { useEffect, useState } from "react";
import { Suspense, useEffect, useState } from "react";
import { useRouter, useSearchParams } from "next/navigation";
export default function AuthPage() {
function AuthContent() {
const router = useRouter();
const params = useSearchParams();
const [status, setStatus] = useState<"loading" | "error">("loading");
@@ -48,3 +47,18 @@ export default function AuthPage() {
</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>
);
}
+10 -3
View File
@@ -1,6 +1,5 @@
"use client";
export const dynamic = "force-dynamic";
import { useEffect, useState } from "react";
import { Suspense, useEffect, useState } from "react";
import { useRouter, useSearchParams } from "next/navigation";
import Link from "next/link";
import Card from "@/components/ui/Card";
@@ -15,7 +14,7 @@ interface Registro {
tipoServicio: { nombre: string } | null;
}
export default function HistorialPage() {
function HistorialContent() {
const router = useRouter();
const params = useSearchParams();
const autoId = params.get("autoId");
@@ -83,3 +82,11 @@ export default function HistorialPage() {
</div>
);
}
export default function HistorialPage() {
return (
<Suspense fallback={<div className="text-center py-10 text-gray-400">Cargando...</div>}>
<HistorialContent />
</Suspense>
);
}
+10 -3
View File
@@ -1,6 +1,5 @@
"use client";
export const dynamic = "force-dynamic";
import { useEffect, useState } from "react";
import { Suspense, useEffect, useState } from "react";
import { useRouter, useSearchParams } from "next/navigation";
import Link from "next/link";
import Card from "@/components/ui/Card";
@@ -20,7 +19,7 @@ interface Turno {
type Step = "servicio" | "slot" | "confirmado";
export default function TurnosPage() {
function TurnosContent() {
const router = useRouter();
const params = useSearchParams();
const autoId = params.get("autoId");
@@ -205,3 +204,11 @@ export default function TurnosPage() {
</div>
);
}
export default function TurnosPage() {
return (
<Suspense fallback={<div className="text-center py-10 text-gray-400">Cargando...</div>}>
<TurnosContent />
</Suspense>
);
}