import { prisma } from "@/lib/prisma"; import LeadStatusSelect from "@/components/lead-status-select"; export const dynamic = "force-dynamic"; type SearchParams = Promise<{ q?: string; status?: string; }>; export default async function AdminLeadsPage({ searchParams, }: { searchParams: SearchParams; }) { const params = await searchParams; const q = params.q?.trim() || ""; const status = params.status?.trim() || ""; const leads = await prisma.lead.findMany({ where: { AND: [ q ? { OR: [ { company: { contains: q, mode: "insensitive" } }, { phone: { contains: q, mode: "insensitive" } }, { email: { contains: q, mode: "insensitive" } }, { message: { contains: q, mode: "insensitive" } }, ], } : {}, status ? { status: status as any } : {}, ], }, orderBy: { createdAt: "desc" }, }); return (

Заявки

{leads.map((lead) => ( ))} {leads.length === 0 && ( )}
Дата Компания Телефон Email Сообщение Статус Источник
{new Date(lead.createdAt).toLocaleString("ru-RU")} {lead.company} {lead.phone} {lead.email || "—"} {lead.message || "—"} {lead.source}
Пока заявок нет
); }