1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5405],{26518:(e,t,s)=>{"use strict";s.d(t,{l:()=>i});var r=s(95155),a=s(12115),l=s(66088),d=s(61878),n=s(94514);let i=({options:e,value:t,onChange:s,placeholder:i="Select an option...",disabled:o=!1,className:c="",icon:m,searchable:x=!1,searchPlaceholder:u="Search...",renderOption:b,renderValue:p})=>{let[h,f]=(0,a.useState)(!1),[g,k]=(0,a.useState)(""),j=(0,a.useRef)(null),v=(0,a.useRef)(null);(0,a.useEffect)(()=>{let e=e=>{j.current&&!j.current.contains(e.target)&&(f(!1),k(""))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,a.useEffect)(()=>{h&&x&&v.current&&setTimeout(()=>v.current?.focus(),50)},[h,x]);let N=e.find(e=>e.value===t),y=x&&g?e.filter(e=>e.label.toLowerCase().includes(g.toLowerCase())):e;return(0,r.jsxs)("div",{ref:j,className:`relative ${c}`,children:[(0,r.jsxs)("button",{type:"button",onClick:()=>!o&&f(!h),disabled:o,className:` 2 w-full px-3.5 h-11 bg-(--mk-surface) border border-(--mk-card-border) rounded-xl 3 focus:outline-none focus:border-(--mk-green-border-strong) 4 transition-all text-sm text-left flex items-center justify-between gap-3 5 ${o?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-(--mk-green-border)"} 6 `,children:[(0,r.jsx)("div",{className:"flex items-center gap-2 flex-1",children:p?p(N):(0,r.jsxs)(r.Fragment,{children:[m&&(0,r.jsx)("span",{className:"text-primary",children:m}),(0,r.jsx)("span",{className:N?"text-(--mk-text) font-medium":"text-(--mk-text-3)",children:N?.label||i})]})}),(0,r.jsx)(l.A,{size:16,className:`text-(--mk-text-3) transition-transform shrink-0 ${h?"rotate-180":""}`})]}),h&&!o&&(0,r.jsxs)("div",{className:"absolute top-full left-0 right-0 mt-2 bg-(--mk-modal-bg) border border-(--mk-card-border-strong) rounded-2xl overflow-hidden z-50",style:{boxShadow:"0 16px 40px -8px rgba(0,0,0,0.35)"},children:[x&&(0,r.jsx)("div",{className:"px-2 pt-2 pb-1 border-b border-(--mk-divider)",children:(0,r.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-(--mk-surface) rounded-lg border border-(--mk-card-border)",children:[(0,r.jsx)(d.A,{size:13,className:"text-(--mk-text-3) shrink-0"}),(0,r.jsx)("input",{ref:v,type:"text",value:g,onChange:e=>k(e.target.value),placeholder:u,className:"flex-1 text-sm bg-transparent outline-none text-(--mk-text) placeholder:text-(--mk-text-3)"}),g&&(0,r.jsx)("button",{type:"button",onClick:()=>k(""),className:"text-(--mk-text-3) hover:text-(--mk-text)",children:"\xd7"})]})}),(0,r.jsxs)("div",{className:"py-1 max-h-56 overflow-y-auto",children:[0===y.length?(0,r.jsx)("p",{className:"px-3.5 py-3 text-sm text-(--mk-text-3)",children:"No results found"}):null,y.map(e=>{let a=t===e.value;return(0,r.jsxs)("button",{type:"button",onClick:()=>{s(e.value),f(!1),k("")},className:` 7 w-full px-3.5 py-2.5 text-left text-sm flex items-center justify-between 8 transition-colors border-b border-(--mk-divider) last:border-b-0 9 ${a?"bg-(--mk-green-bg) text-(--mk-green-text) font-medium":"text-(--mk-text) hover:bg-(--mk-surface)"} 10 `,children:[b?b(e,a):(0,r.jsx)("span",{children:e.label}),!b&&a&&(0,r.jsx)(n.A,{size:16,className:"text-(--mk-green-text)"})]},e.value)})]})]})]})}},39658:(e,t,s)=>{"use strict";s.d(t,{p:()=>d});var r=s(95155),a=s(12115),l=s(91337);let d=a.forwardRef(({className:e,type:t,...s},a)=>(0,r.jsx)("input",{type:t,className:(0,l.cn)("flex h-11 w-full rounded-xl border border-(--mk-card-border) bg-(--mk-surface) text-(--mk-text) px-3.5 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-(--mk-text-3) focus:outline-none focus:border-(--mk-green-border-strong) hover:border-(--mk-green-border) transition-colors disabled:cursor-not-allowed disabled:opacity-50",e),ref:a,...s}));d.displayName="Input"},49782:(e,t,s)=>{Promise.resolve().then(s.bind(s,66646))},66646:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>w});var r=s(95155),a=s(12115),l=s(73321),d=s(26708),n=s(32924),i=s(81008),o=s(84750),c=s(90426),m=s(78340);let x=(0,m.A)("bug",[["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",key:"uouzyp"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M21 21a4 4 0 0 0-3.81-4",key:"1b0z45"}],["path",{d:"M21 5a4 4 0 0 1-3.55 3.97",key:"5cxbf6"}
10],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M3 21a4 4 0 0 1 3.81-4",key:"1fjd4g"}],["path",{d:"M3 5a4 4 0 0 0 3.55 3.97",key:"1d7oge"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13V6a3 3 0 1 1 6 0v1.13",key:"1vgav8"}]]),u=(0,m.A)("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);var b=s(94961),p=s(13545),h=s(6296),f=s(80723),g=s(61878),k=s(6962);let j={report_bug:"Report a bug",suggest_feature:"Suggest a feature",ask_question:"Ask a question",feedback:"Feedback",other:"Other"},v=[{value:"all",label:"All categories"},{value:"report_bug",label:"Report a bug"},{value:"suggest_feature",label:"Suggest a feature"},{value:"ask_question",label:"Ask a question"},{value:"feedback",label:"Feedback"},{value:"other",label:"Other"}],N=[{value:"desc",label:"Newest first"},{value:"asc",label:"Oldest first"}],y={report_bug:(0,r.jsx)(x,{size:14,className:"text-red-500"}),suggest_feature:(0,r.jsx)(u,{size:14,className:"text-amber-500"}),ask_question:(0,r.jsx)(b.A,{size:14,className:"text-blue-500"}),feedback:(0,r.jsx)(p.A,{size:14,className:"text-green-500"}),other:(0,r.jsx)(p.A,{size:14,className:"text-(--mk-text-3)"})};function w(){let e=(0,l.useRouter)(),{user:t,loading:s,isAdmin:m}=(0,i.A)(),[x,u]=(0,a.useState)(1),[b]=(0,a.useState)(20),[p,w]=(0,a.useState)("all"),[_,A]=(0,a.useState)("desc"),[C,z]=(0,a.useState)("");(0,a.useEffect)(()=>{if(!s&&!t||!s&&t&&!m){let t=setTimeout(()=>{e.push("/")},1500);return()=>clearTimeout(t)}},[s,t,m,e]);let{data:M,isLoading:q,isFetching:S}=(0,d.I)({queryKey:["admin-help-requests",x,b,p,_],queryFn:()=>(0,o.C)({page:x,page_size:b,category:"all"===p?void 0:p,sort_order:_}),enabled:m,staleTime:6e4}),L=(0,a.useMemo)(()=>M?.data?.items??[],[M]),R=M?.data?.total_pages||1,$=(0,a.useMemo)(()=>{let e=C.trim().toLowerCase();return e?L.filter(t=>t.message.toLowerCase().includes(e)||t.user_email.toLowerCase().includes(e)||(t.subject||"").toLowerCase().includes(e)||(t.attachment_filename||"").toLowerCase().includes(e)):L},[L,C]);return s?(0,r.jsx)("div",{className:"flex items-center justify-center min-h-screen bg-(--mk-bg)",children:(0,r.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,r.jsx)(h.A,{className:"w-8 h-8 text-(--mk-green-text) animate-spin"}),(0,r.jsx)("p",{className:"text-(--mk-text-3)",children:"Verifying access..."})]})}):t&&m?(0,r.jsx)(n.G,{children:(0,r.jsxs)("div",{className:"p-6 md:p-8 max-w-6xl mx-auto space-y-6",children:[(0,r.jsx)("div",{className:"flex items-center justify-between gap-4 flex-wrap",children:(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>e.push("/admin/dashboard"),className:"inline-flex items-center gap-2 px-3 py-2 rounded-lg border border-(--mk-card-border) hover:bg-(--mk-surface) text-sm text-(--mk-text-2)",children:[(0,r.jsx)(f.A,{size:14}),"Back"]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-(--mk-text)",children:"Help Requests"}),(0,r.jsx)("p",{className:"text-sm text-(--mk-text-3)",children:"Review support submissions from users"})]})]})}),(0,r.jsxs)("div",{className:"bg-(--mk-bg) rounded-xl border border-(--mk-card-border) p-4 grid grid-cols-1 md:grid-cols-4 gap-3",children:[(0,r.jsxs)("div",{className:"relative md:col-span-2",children:[(0,r.jsx)(g.A,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-(--mk-text-3)"}),(0,r.jsx)("input",{value:C,onChange:e=>z(e.target.value),placeholder:"Search by message, email, subject, or attachment",className:"w-full pl-9 pr-3 py-2 text-sm rounded-lg border border-(--mk-card-border) bg-(--mk-card)"})]}),(0,r.jsx)(c.l6,{options:v,value:p,onChange:e=>{w(e),u(1)}}),(0,r.jsx)(c.l6,{options:N,value:_,onChange:e=>{A(e),u(1)}})]}),(0,r.jsxs)("div",{className:"bg-(--mk-bg) rounded-xl border border-(--mk-card-border) overflow-hidden",children:[(0,r.jsxs)("div",{className:"px-4 py-3 border-b border-(--mk-divider) flex items-center justify-between text-sm",children:[(0,r.jsx)("span",{className:"font-medium text-(--mk-text-2)",children:q?"Loading...":`${$.length} requests`}),S&&!q&&(0,r.jsx)("span",{className:"text-xs text-(--mk-text-3)",children:"Refreshing..."})]}),q?(0,r.jsx)("div",{className:"p-6 text-sm text-(--mk-text-3)",children:"Loading help requests..."}):0===$.length?(0,r.jsx)("div",{className:"p-6 text-sm text-(--mk-text-3)",children:"No help requests found."}):(0,r.jsx)("div",{className:"divide-y divide-gray-100",children:$.map(e=>(0,r.jsxs)("div",{className:"p-4 space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[y[e.category],(0,r.jsx)("span",{className:"text-xs font-medium px-2 py-1 rounded-full bg-(--mk-surface) text-(--mk-text-2)",children:j[e.category]}),(0,r.jsx)("span",{className:"text-xs text-(--mk-text-3)",children:e.user_email})]}),(0,r.jsx)("span",{className:"text-xs text-(--mk-text-3)",children:new Date(e.created_at).toLocaleStr
10ing()})]}),(0,r.jsx)("p",{className:"text-sm text-(--mk-text) whitespace-pre-wrap",children:e.message}),e.attachment_filename&&(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[(0,r.jsxs)("p",{className:"text-xs text-blue-600 break-all",children:["Attachment: ",e.attachment_filename]}),e.attachment_download_url?(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("a",{href:e.attachment_download_url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-(--mk-card-border) text-xs font-medium text-(--mk-text-2) hover:bg-(--mk-surface)",children:(e=>{if(!e)return"View file";let t=e.toLowerCase();return t.endsWith(".pdf")?"View PDF":t.endsWith(".png")||t.endsWith(".jpg")||t.endsWith(".jpeg")||t.endsWith(".webp")||t.endsWith(".gif")?"View image":"View file"})(e.attachment_filename)}),(0,r.jsxs)("a",{href:e.attachment_download_url,target:"_blank",rel:"noopener noreferrer",download:e.attachment_filename,className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-blue-500/30 text-xs font-medium text-blue-600 hover:bg-blue-500/10",children:[(0,r.jsx)(k.A,{size:12}),"Download"]})]}):(0,r.jsx)("span",{className:"text-xs text-(--mk-text-3)",children:"Download link unavailable"})]})]},e.id))}),(0,r.jsxs)("div",{className:"px-4 py-3 border-t border-(--mk-divider) flex items-center justify-between",children:[(0,r.jsx)("button",{type:"button",onClick:()=>u(e=>Math.max(1,e-1)),disabled:x<=1,className:"px-3 py-1.5 text-sm rounded-md border border-(--mk-card-border) disabled:opacity-50",children:"Previous"}),(0,r.jsxs)("span",{className:"text-xs text-(--mk-text-3)",children:["Page ",x," of ",R]}),(0,r.jsx)("button",{type:"button",onClick:()=>u(e=>Math.min(R,e+1)),disabled:x>=R,className:"px-3 py-1.5 text-sm rounded-md border border-(--mk-card-border) disabled:opacity-50",children:"Next"})]})]})]})}):(0,r.jsx)("div",{className:"flex items-center justify-center min-h-screen bg-(--mk-bg)",children:(0,r.jsxs)(c.Zp,{className:"w-full max-w-md bg-(--mk-card) rounded-2xl border border-(--mk-card-border) shadow-lg",children:[(0,r.jsx)(c.aR,{className:"border-b border-(--mk-divider)",children:(0,r.jsx)(c.ZB,{className:"text-center",children:"Access Denied"})}),(0,r.jsxs)(c.Wu,{className:"py-8 space-y-4",children:[(0,r.jsx)("p",{className:"text-center text-(--mk-text-3)",children:t?"You must be an admin to access this page.":"You must be logged in to access this page."}),(0,r.jsx)("p",{className:"text-xs text-center text-(--mk-text-3)",children:"Redirecting to home page..."})]})]})})}},80723:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(78340).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},91337:(e,t,s)=>{"use strict";s.d(t,{cn:()=>l,n:()=>d});var r=s(29722),a=s(622);function l(...e){return(0,a.QP)((0,r.$)(e))}function d(e,t="us-east-1"){if(!e?.startsWith("s3://"))return e;let s=e.replace(/^s3:\/\//,""),r=s.indexOf("/"),a=s.substring(0,r),l=s.substring(r+1);return`https://${a}.s3.${t}.amazonaws.com/${l}`}}},e=>{e.O(0,[9204,9135,120,748,8409,6609,8143,252,9212,6708,2746,1008,426,3315,1186,746,2924,8441,8928,7358],()=>e(e.s=49782)),_N_E=e.O()}]);
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.