Fix admin build by wrapping search params in Suspense

This commit is contained in:
2026-05-09 08:04:04 +07:00
parent cb2a2a9678
commit d8a0b9b05e
3 changed files with 30 additions and 5 deletions

View File

@ -1,6 +1,6 @@
"use client";
import { useEffect, useState } from "react";
import { Suspense, useEffect, useState } from "react";
import Link from "next/link";
import { useSearchParams } from "next/navigation";
@ -109,7 +109,7 @@ function ConfirmModal({
);
}
export default function AdminProductsPage() {
function AdminProductsPageInner() {
const searchParams = useSearchParams();
const tab = searchParams.get("tab");
const isDeletedTab = tab === "deleted";
@ -392,3 +392,11 @@ export default function AdminProductsPage() {
</div>
);
}
export default function AdminProductsPage() {
return (
<Suspense fallback={<div className="py-24 text-sm font-semibold text-on-surface-variant">Loading products...</div>}>
<AdminProductsPageInner />
</Suspense>
);
}

View File

@ -1,7 +1,7 @@
"use client";
import { useParams, useRouter, useSearchParams } from "next/navigation";
import { useEffect, useState } from "react";
import { Suspense, useEffect, useState } from "react";
const API_BASE = process.env.NEXT_PUBLIC_API_URL || "https://be.inatrading.co.id";
@ -196,7 +196,7 @@ function ProductColumn({ product, label, accent }: { product: any; label: string
// ─── Main Page ─────────────────────────────────────────────────────────────
export default function AdminReviewDetailPage() {
function AdminReviewDetailPageInner() {
const params = useParams<{ productId: string }>();
const router = useRouter();
const searchParams = useSearchParams();
@ -474,3 +474,11 @@ export default function AdminReviewDetailPage() {
</>
);
}
export default function AdminReviewDetailPage() {
return (
<Suspense fallback={<div className="m-6 py-24 text-sm font-semibold text-slate-400">Loading review detail...</div>}>
<AdminReviewDetailPageInner />
</Suspense>
);
}

View File

@ -2,13 +2,14 @@
import Link from "next/link";
import { usePathname, useSearchParams } from "next/navigation";
import { Suspense } from "react";
const adminProductSubmenu = [
{ label: "All Product", href: "/admin/products" },
{ label: "Deleted", href: "/admin/products?tab=deleted" },
];
export function AdminProductSubmenuNav() {
function AdminProductSubmenuNavInner() {
const pathname = usePathname();
const searchParams = useSearchParams();
const currentTab = searchParams.get("tab") ?? "";
@ -45,3 +46,11 @@ export function AdminProductSubmenuNav() {
</div>
);
}
export function AdminProductSubmenuNav() {
return (
<Suspense fallback={null}>
<AdminProductSubmenuNavInner />
</Suspense>
);
}