import AdminOrdersPanel from "@/components/admin/AdminOrdersPanel"; import { getAdminUser } from "@/lib/admin-permissions"; import { getAdminOrders } from "@/actions/orders"; import AdminAccessDenied from "@/components/admin/AdminAccessDenied"; import { PageHeader } from "@/components/admin/design-system"; import { redirect } from "next/navigation"; import { supabase } from "@/lib/supabase"; export const dynamic = "force-dynamic"; export default async function AdminOrdersPage() { const adminUser = await getAdminUser(); if (!adminUser) return ; if (!adminUser.can_manage_orders) { redirect("/admin/pickup"); } const { orders, stops } = await getAdminOrders(); const brandStops = adminUser?.brand_id ? stops.filter((s) => s.brand_id === adminUser.brand_id) : stops; const brandOrders = adminUser?.brand_id ? orders.filter( (o) => o.stops && brandStops.some((s) => s.id === o.stop_id) ) : orders; // Fetch active products for this brand (for admin "New Order" item picker) let brandProducts: Array<{ id: string; name: string; price: number; type?: string | null; active?: boolean }> = []; try { let prodQuery = supabase .from("products") .select("id, name, price, type, active") .eq("active", true) .is("deleted_at", null) .order("name") .limit(200); if (adminUser?.brand_id) { prodQuery = prodQuery.eq("brand_id", adminUser.brand_id); } const { data: prods } = await prodQuery; brandProducts = (prods ?? []).map((p: any) => ({ id: p.id, name: p.name, price: Number(p.price), type: p.type ?? null, active: p.active ?? true, })); } catch { // non-fatal for the orders list } return (
} />
{/* Content */}
); }