import { cookies } from "next/headers"; import type { Layout } from "react-resizable-panels"; export const readLayoutDefaults = async () => { const cookieStore = await cookies(); const defaults: Record = {}; const cookieList = typeof (cookieStore as { getAll?: () => { name: string; value: string }[] }).getAll === "function" ? (cookieStore as { getAll: () => { name: string; value: string }[] }).getAll() : (() => { const raw = cookieStore.toString?.() ?? ""; if (!raw) return []; return raw .split(";") .map((entry) => entry.trim()) .filter(Boolean) .map((entry) => { const [name, ...rest] = entry.split("="); return { name, value: rest.join("=") }; }); })(); for (const cookie of cookieList) { if (!cookie.name.startsWith("layout:")) continue; const id = decodeURIComponent(cookie.name.slice("layout:".length)); try { const parsed = JSON.parse(decodeURIComponent(cookie.value)); if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) { defaults[id] = parsed as Layout; } } catch { // Ignore malformed layout cookies. } } return defaults; };