1import{j as s}from"./trpc-vendor-Bv0iaNDN.js";import{r as c}from"./react-vendor-CGOjsTCb.js";import{A}from"./AdminLayout-BvvhRFUw.js";import{c as F,t as r,S as b,b as y,M as l,h as N}from"./index-Bp5xQ-En.js";import{M as m}from"./message-square-D7ASK-H8.js";import"./bell-DDfP3iQl.js";import"./image-NXvCck6X.js";import"./graduation-cap-DtyfmjZD.js";import"./phone-call-DR-uxlHF.js";import"./radix-vendor-BsQgJgbQ.js";import"./charts-DUKIMxkY.js";/** 2 * @license lucide-react v0.453.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const f=F("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]),v=["all","contact","admissions","parent","feedback"];function q(){const[i,o]=c.useState("all"),[t,x]=c.useState(""),[a,g]=c.useState(null),n=r.useUtils(),{data:p,isLoading:h}=r.forms.getAll.useQuery({formType:i==="all"?void 0:i}),u=r.forms.markRead.useMutation({onSuccess:()=>{n.forms.getAll.invalidate(),n.forms.unreadCount.invalidate()}}),j=e=>{g(e),e.isRead||u.mutate({id:e.id})},d=(p||[]).filter(e=>e.name.toLowerCase().includes(t.toLowerCase())||e.email.toLowerCase().includes(t.toLowerCase())||(e.message||"").toLowerCase().includes(t.toLowerCase()));return s.jsx(A,{"data-loc":"client/src/pages/admin/AdminForms.tsx:34",title:"Form Submissions",children:s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:35",className:"space-y-5",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:36",children:[s.jsx("h1",{"data-loc":"client/src/pages/admin/AdminForms.tsx:37",className:"text-xl font-bold text-gray-900",children:"Form Submissions"}),s.jsx("p",{"data-loc":"client/src/pages/admin/AdminForms.tsx:38",className:"text-sm text-gray-500 mt-0.5",children:"All contact, admissions, and feedback enquiries"})]}),s.jsx("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:42",className:"flex flex-wrap gap-2",children:v.map(e=>s.jsx("button",{"data-loc":"client/src/pages/admin/AdminForms.tsx:44",onClick:()=>o(e),className:`px-4 py-1.5 rounded-full text-sm font-medium capitalize transition-colors ${i===e?"bg-bci text-white":"border border-gray-300 text-gray-600 hover:border-bci hover:text-bci"}`,children:e},e))}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:51",className:"relative",children:[s.jsx(b,{"data-loc":"client/src/pages/admin/AdminForms.tsx:52",size:16,className:"absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"}),s.jsx("input",{"data-loc":"client/src/pages/admin/AdminForms.tsx:53",value:t,onChange:e=>x(e.target.value),className:"w-full pl-9 pr-4 py-2.5 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-bci/30 focus:border-bci",placeholder:"Search by name, email, or message..."})]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:58",className:"grid lg:grid-cols-2 gap-5",children:[s.jsx("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:60",className:"bg-white rounded-xl border border-gray-200 shadow-sm overflow-hidden",children:h?s.jsx("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:62",className:"p-8 text-center text-gray-400 text-sm",children:"Loading..."}):d.length===0?s.jsx("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:64",className:"p-8 text-center text-gray-400 text-sm",children:"No submissions found."}):s.jsx("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:66",className:"divide-y divide-gray-100 max-h-[600px] overflow-y-auto",children:d.map(e=>s.jsx("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:68",onClick:()=>j(e),className:`p-4 cursor-pointer hover:bg-gray-50 transition-colors ${a?.id===e.id?"bg-red-50 border-l-2 border-bci":""}`,children:s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:70",className:"flex items-start gap-3",children:[s.jsx("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:71",className:`w-2 h-2 rounded-full mt-1.5 shrink-0 ${e.isRead?"bg-gray-300":"bg-bci"}`}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:72",className:"flex-1 min-w-0",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:73",className:"flex items-center gap-2 mb-0.5",children:[s.jsx("span",{"data-loc":"client/src/pages/admin/AdminForms.tsx:74",className:"font-medium text-gray-900 text-sm",children:e.name}),s.jsx("span",{"data-loc":"client/src/pages/admin/AdminForms.tsx:75",className:"text-xs bg-gray-100 text-gray-500 px-1.5 py-0.5 rounded capitalize shrink-0",children:e.formType})]}),s.jsx("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:77",className:"text-xs text-gray-500",children:e.email}),e.message&&s.jsx("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:78",className:"text-xs text-gray-400 truncate mt-0.5",children:e.message})]}),s.jsx("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:80",className:"text-xs text-gray-400 shrink-0",children:new Date(e.createdAt).toLocaleDateString("en-SG",{day:"numeric",month:"short"})})]})},e.id))})}),s.jsx("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:91",className:"bg-white rounded-xl border border-gray-200 shadow-sm p-6",children:a?s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:93",className:"space-y-4",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:94",className:"flex items-center justify-between",children:[s.jsx("h2",{"data-loc":"client/src/pages/admin/AdminForms.tsx:95",className:"font-semibold text-gray-900",children:a.name}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:96",className:"flex items-center gap-2",children:[s.jsx("span",{"data-loc":"client/src/pages/admin/AdminForms.tsx:97",className:"text-xs bg-gray-100 text-gray-500 px-2 py-1 rounded capitalize",children:a.formType}),a.isRead&&s.jsxs("span",{"data-loc":"client/src/pages/admin/AdminForms.tsx:98",className:"flex items-center gap-1 text-xs text-green-600",children:[s.jsx(y,{"data-loc":"client/src/pages/admin/AdminForms.tsx:98",size:12})," Read"]})]})]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:101",className:"space-y-2 text-sm",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:102",className:"flex items-center gap-2 text-gray-600",children:[s.jsx(l,{"data-loc":"client/src/pages/admin/AdminForms.tsx:103",size:14,className:"text-gray-400"}),s.jsx("a",{"data-loc":"client/src/pages/admin/AdminForms.tsx:104",href:`mailto:${a.email}`,className:"text-bci hover:underline",children:a.email})]}),a.phone&&s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:107",className:"flex items-center gap-2 text-gray-600",children:[s.jsx(N,{"data-loc":"client/src/pages/admin/AdminForms.tsx:108",size:14,className:"text-gray-400"}),s.jsx("a",{"data-loc":"client/src/pages/admin/AdminForms.tsx:109",href:`tel:${a.phone}`,className:"hover:text-bci",children:a.phone})]}),a.subject&&s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:113",className:"flex items-start gap-2 text-gray-600",children:[s.jsx(f,{"data-loc":"client/src/pages/admin/AdminForms.tsx:114",size:14,className:"text-gray-400 mt-0.5"}),s.jsx("span",{"data-loc":"client/src/pages/admin/AdminForms.tsx:115",children:a.subject})]})]}),a.message&&s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:120",className:"bg-gray-50 rounded-lg p-4",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:121",className:"flex items-center gap-2 text-xs font-semibold text-gray-500 uppercase tracking-wide mb-2",children:[s.jsx(m,{"data-loc":"client/src/pages/admin/AdminForms.tsx:122",size:12})," Message"]}),s.jsx("p",{"data-loc":"client/src/pages/admin/AdminForms.tsx:124",className:"text-sm text-gray-700 leading-relaxed whitespace-pre-wrap",children:a.message})]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:127",className:"text-xs text-gray-400 pt-2 border-t border-gray-100",children:["Submitted: ",new Date(a.createdAt).toLocaleStr
6ing("en-SG")]}),s.jsxs("a",{"data-loc":"client/src/pages/admin/AdminForms.tsx:130",href:`mailto:${a.email}?subject=Re: ${a.subject||"Your Enquiry to BCI"}`,className:"inline-flex items-center gap-2 px-4 py-2.5 bg-bci text-white text-sm font-medium rounded-lg hover:bg-bci-dark transition-colors",children:[s.jsx(l,{"data-loc":"client/src/pages/admin/AdminForms.tsx:132",size:15})," Reply via Email"]})]}):s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminForms.tsx:136",className:"flex flex-col items-center justify-center h-full py-12 text-center",children:[s.jsx(m,{"data-loc":"client/src/pages/admin/AdminForms.tsx:137",size:40,className:"text-gray-200 mb-3"}),s.jsx("p",{"data-loc":"client/src/pages/admin/AdminForms.tsx:138",className:"text-gray-400 text-sm",children:"Select a submission to view details"})]})})]})]})})}export{q as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.