// app/portal/rigs/page.tsx import { cookies } from "next/headers"; import { redirect } from "next/navigation"; import RigsSwitcher from "@/components/portal/RigsSwitcher"; type Opt = { id: string | number; label: string }; export default async function Page() { const jar = await cookies(); // Next 15: async const ma_at = jar.get("ma_at")?.value; if (!ma_at) { redirect("/auth/sign-in?next=/portal/rigs"); } const DIRECTUS = (process.env.DIRECTUS_URL || "").replace(/\/$/, ""); const res = await fetch( `${DIRECTUS}/items/user_rig_type?fields=id,name&sort=sort`, { headers: { Authorization: `Bearer ${ma_at}`, Accept: "application/json", "Cache-Control": "no-store", }, cache: "no-store", } ); // Be resilient: if this fails, just show no options so the page still builds const json = res.ok ? await res.json().catch(() => ({ data: [] })) : { data: [] }; const rigTypes: Opt[] = (json?.data ?? []).map((r: any) => ({ id: r.id, label: r.name ?? String(r.id), })); return ; }