1import{r as p,j as e}from"./vendor-BMTqjksT.js";import{a as N,t as g,i as v,ay as f,j as h,x as u,B as R,$ as z}from"./index-C0VezhcQ.js";import{A as y}from"./AdminLayout-Cd2syILU.js";import"./trpc-c2OaEmLI.js";import"./d3-ngNJxV2x.js";import"./sparkles-D2L2V_UA.js";import"./chart-no-axes-column-D7MgvIiw.js";const b=["all","pending","approved","rejected"],S="all";function C(c){const a=new URLSearchParams(c).get("status");return b.includes(a)?a:S}function E({rating:c}){return e.jsx("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:16",className:"flex items-center gap-0.5",children:Array.from({length:5}).map((a,l)=>e.jsx(z,{"data-loc":"client/src/pages/admin/AdminReviews.tsx:18",className:`w-3 h-3 ${l<c?"text-amber-400 fill-amber-400":"text-zinc-600"}`},l))})}function P(){const c=N(),[a,l]=p.useState(()=>C(c)),[i,r]=p.useState(0),n=50,{data:m,isLoading:A,refetch:o}=g.portal.adminGetAllReviews.useQuery({status:a==="all"?void 0:a,limit:n,offset:i}),t=g.reviews.adminModerateReview.useMutation({onSuccess:()=>{v.success("Review updated"),o()},onError:s=>v.error(s.message)}),x=m?.reviews??[],d=m?.total??0,w=m?.counts??{all:0,pending:0,approved:0,rejected:0};return e.jsxs(y,{"data-loc":"client/src/pages/admin/AdminReviews.tsx:53",title:"Reviews",breadcrumb:"Admin / Reviews",children:[e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:55",className:"flex gap-1 mb-5",children:[b.map(s=>e.jsxs("button",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:57",onClick:()=>{l(s),r(0)},className:`px-3 py-1.5 text-xs rounded capitalize transition-colors ${a===s?"bg-amber-600 text-white":"bg-zinc-800 text-zinc-400 hover:text-white hover:bg-zinc-700"}`,children:[s==="all"?"All":s,e.jsx("span",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:67",className:"ml-1.5 opacity-75",children:w[s].toLocaleString()})]},s)),e.jsx("button",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:70",onClick:()=>o(),className:"ml-auto p-2 text-zinc-400 hover:text-white bg-zinc-800 rounded hover:bg-zinc-700 transition-colors",children:e.jsx(f,{"data-loc":"client/src/pages/admin/AdminReviews.tsx:71",className:"w-4 h-4"})})]}),e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:75",className:"text-xs text-zinc-500 mb-3",children:[d.toLocaleString()," ",a==="all"?"review records":`${a} reviews`," found"]}),A?e.jsx("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:81",className:"grid gap-3",children:Array.from({length:4}).map((s,j)=>e.jsx("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:83",className:"bg-zinc-900 border border-zinc-800 rounded-lg p-5 animate-pulse h-32"},j))}):x.length===0?e.jsx("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:87",className:"bg-zinc-900 border border-zinc-800 rounded-lg p-12 text-center text-zinc-500",children:a==="all"?"No review records found.":`No ${a} reviews found.`}):e.jsx("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:91",className:"grid gap-3",children:x.map(s=>e.jsx("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:93",className:"bg-zinc-900 border border-zinc-800 rounded-lg p-5 hover:border-zinc-700 transition-colors",children:e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:94",className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:95",className:"flex-1 min-w-0",children:[e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:96",className:"flex items-center gap-3 mb-2",children:[e.jsx("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:97",className:"font-medium text-white text-sm",children:s.reviewerName}),e.jsx(E,{"data-loc":"client/src/pages/admin/AdminReviews.tsx:98",rating:s.rating}),e.jsx("span",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:99",className:`text-[10px] px-1.5 py-0.5 rounded capitalize ${s.status==="pending"?"bg-amber-500/15 text-amber-300":s.status==="approved"?"bg-emerald-500/15 text-emerald-300":"bg-red-500/15 text-red-300"}`,children:s.status}),e.jsx("span",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:106",className:"text-[10px] text-zinc-500",children:new Date(s.createdAt).toLocaleDateString()})]}),s.title&&e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:109",className:"text-sm font-medium text-zinc-200 mb-1",children:['"',s.title,'"']}),e.jsx("p",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:111",className:"text-xs text-zinc-400 leading-relaxed line-clamp-3",children:s.body}),e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:112",className:"flex items-center gap-3 mt-2",children:[s.firmName&&e.jsxs("span",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:114",className:"text-[10px] text-zinc-500",children:["For: ",e.jsx("span",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:115",className:"text-zinc-400",children:s.firmName})]}),s.caseType&&e.jsxs("span",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:119",className:"text-[10px] text-zinc-500 capitalize",children:["Case: ",e.jsx("span",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:120",className:"text-zinc-400",children:s.caseType})]}),s.reviewerEmail&&e.jsx("span",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:124",className:"text-[10px] text-zinc-500",children:e.jsx("a",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:125",href:`mailto:${s.reviewerEmail}`,className:"text-amber-500 hover:underline",children:s.reviewerEmail})})]}),s.adminNote&&e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:130",className:"mt-2 text-[10px] text-zinc-500 bg-zinc-800 rounded px-2 py-1",children:["Admin note: ",s.adminNote]})]}),e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:135",className:"flex flex-col gap-2 shrink-0",children:[a==="pending"&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:138",onClick:()=>t.mutate({id:s.id,action:"approve"}),disabled:t.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 text-[10px] bg-emerald-600/20 text-emerald-400 rounded hover:bg-emerald-600/30 transition-colors",children:[e.jsx(h,{"data-loc":"client/src/pages/admin/AdminReviews.tsx:143",className:"w-3 h-3"})," Approve"]}),e.jsxs("button",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:145",onClick:()=>t.mutate({id:s.id,action:"reject"}),disabled:t.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 text-[10px] bg-red-600/10 text-red-400 rounded hover:bg-red-600/20 transition-colors",children:[e.jsx(u,{"data-loc":"client/src/pages/admin/AdminReviews.tsx:150",className:"w-3 h-3"})," Reject"]})]}),a==="approved"&&e.jsxs("button",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:155",onClick:()=>t.mutate({id:s.id,action:"reject"}),disabled:t.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 text-[10px] bg-red-600/10 text-red-400 rounded hover:bg-red-600/20 transition-colors",children:[e.jsx(u,{"data-loc":"client/src/pages/admin/AdminReviews.tsx:160",className:"w-3 h-3"})," Reject"]}),a==="rejected"&&e.jsxs("button",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:164",onClick:()=>t.mutate({id:s.id,action:"approve"}),disabled:t.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 text-[10px] bg-emerald-600/20 text-emerald-400 rounded hover:bg-emerald-600/30 transition-colors",children:[e.jsx(h,{"data-loc":"client/src/pages/admin/AdminReviews.tsx:169",className:"w-3 h-3"}
1)," Re-approve"]})]})]})},s.id))}),d>n&&e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:181",className:"flex items-center justify-between mt-4",children:[e.jsxs("span",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:182",className:"text-xs text-zinc-500",children:["Showing ",i+1,"â",Math.min(i+n,d)," of ",d]}),e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminReviews.tsx:183",className:"flex gap-2",children:[e.jsx(R,{"data-loc":"client/src/pages/admin/AdminReviews.tsx:184",size:"sm",variant:"outline",className:"text-xs border-zinc-700 text-zinc-300 bg-zinc-800 hover:bg-zinc-700",disabled:i===0,onClick:()=>r(Math.max(0,i-n)),children:"Previous"}),e.jsx(R,{"data-loc":"client/src/pages/admin/AdminReviews.tsx:185",size:"sm",variant:"outline",className:"text-xs border-zinc-700 text-zinc-300 bg-zinc-800 hover:bg-zinc-700",disabled:i+n>=d,onClick:()=>r(i+n),children:"Next"})]})]})]})}export{P 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.