PageSourceSearch

https://rainx.in/assets/AdminTicketsList-TdL6V7NS.js

js rainx.in collected 2026-09-24 12:21:40 UTC 10,599 bytes, 1 lines download raw bytes

1import{j as e,z as N}from"./ui-vendor-B5O6TaIB.js";import{r as s,L as M,d as I}from"./react-vendor-Dwsg5a2_.js";import{a as f,bc as O,a5 as B,c as U,$ as H}from"./index-Cbf_hYLb.js";const q=()=>{const[b,v]=s.useState([]),[a,k]=s.useState(null),[C,y]=s.useState(!0),[u,c]=s.useState(null),[o,_]=s.useState("all"),[l,D]=s.useState("all"),[i,T]=s.useState(""),[n,S]=s.useState(""),[d,p]=s.useState(1),[x,P]=s.useState(1),g=t=>t.toISOString().slice(0,10),A=()=>{const t=new Date;if(l==="today"){const r=g(t);return{from:r,to:r}}if(l==="week"){const r=new Date(t);return r.setDate(t.getDate()-6),{from:g(r),to:g(t)}}return l==="custom"?{from:i||"",to:n||""}:{from:"",to:""}};s.useEffect(()=>{p(1)},[o,l,i,n]),s.useEffect(()=>{j()},[o,l,i,n,d]);const j=async()=>{y(!0);try{const{from:t,to:r}=A();let h=`/api/admin/tickets?status=${o}&page=${d}`;t&&(h+=`&date_from=${t}`),r&&(h+=`&date_to=${r}`);const[R,$]=await Promise.all([f.get(h),f.get("/api/admin/tickets/stats")]),m=R.data,w=m.data||m;v(Array.isArray(w)?w:[]),m.last_page&&P(m.last_page),k($.data)}catch(t){console.error("Error fetching admin tickets",t)}finally{y(!1)}},L=t=>{switch(t){case"open":return e.jsx("span",{className:"px-2 py-1 bg-green-100 text-green-800 rounded-full text-xs font-semibold",children:"Open"});case"in_progress":return e.jsx("span",{className:"px-2 py-1 bg-yellow-100 text-yellow-800 rounded-full text-xs font-semibold",children:"In Progress"});case"closed":return e.jsx("span",{className:"px-2 py-1 bg-gray-100 text-gray-800 rounded-full text-xs font-semibold",children:"Closed"});default:return t}},F=t=>{switch(t){case"high":return e.jsx("span",{className:"px-2 py-1 bg-red-100 text-red-800 rounded-full text-xs font-semibold",children:"High"});case"medium":return e.jsx("span",{className:"px-2 py-1 bg-blue-100 text-blue-800 rounded-full text-xs font-semibold",children:"Medium"});case"low":return e.jsx("span",{className:"px-2 py-1 bg-gray-100 text-gray-800 rounded-full text-xs font-semibold",children:"Low"});default:return t}},z=t=>{c(t)},E=async()=>{if(u)try{await f.delete(`/api/admin/tickets/${u}`),N.success("Ticket deleted successfully"),j()}catch(t){console.error("Error deleting ticket",t),N.error("Failed to delete ticket.")}finally{c(null)}};return e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{className:"flex justify-end items-center mb-6 gap-2 flex-wrap",children:[e.jsxs("select",{value:l,onChange:t=>D(t.target.value),className:"p-2 border border-gray-300 rounded-lg bg-white text-sm focus:ring-2 focus:ring-blue-500 outline-none",children:[e.jsx("option",{value:"all",children:"All Time"}),e.jsx("option",{value:"today",children:"Today"}),e.jsx("option",{value:"week",children:"Last 7 Days"}),e.jsx("option",{value:"custom",children:"Custom Range"})]}),l==="custom"&&e.jsxs(e.Fragment,{children:[e.jsx("input",{type:"date",value:i,max:n||void 0,onChange:t=>T(t.target.value),className:"p-2 border border-gray-300 rounded-lg bg-white text-sm focus:ring-2 focus:ring-blue-500 outline-none"}),e.jsx("span",{className:"text-sm text-gray-500",children:"to"}),e.jsx("input",{type:"date",value:n,min:i||void 0,onChange:t=>S(t.target.value),className:"p-2 border border-gray-300 rounded-lg bg-white text-sm focus:ring-2 focus:ring-blue-500 outline-none"})]}),e.jsxs("select",{value:o,onChange:t=>_(t.target.value),className:"p-2 border border-gray-300 rounded-lg bg-white text-sm focus:ring-2 focus:ring-blue-500 outline-none",children:[e.jsx("option",{value:"all",children:"All Tickets"}),e.jsx("option",{value:"open",children:"Open"}),e.jsx("option",{value:"in_progress",children:"In Progress"}),e.jsx("option",{value:"closed",children:"Closed"})]})]}),a&&e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4 mb-6",children:[e.jsxs("div",{className:"bg-[#1c212d] rounded-xl p-5 border border-white/5 flex flex-col justify-between",children:[e.jsx("p",{className:"text-[#8e95a3] text-xs font-bold uppercase tracking-wider mb-3",children:"Active Tickets"}),e.jsxs("div",{className:"flex items-end justify-between",children:[e.jsx("span",{className:"text-white text-3xl font-bold",children:a.active_tickets}),e.jsxs("div",{className:"flex items-center gap-1 text-[#00e676] text-sm font-medium",children:[e.jsx(O,{size:14}),e.jsx("span",{children:a.active_tickets_trend})]})]})]}),e.jsxs("div",{className:"bg-[#1c212d] rounded-xl p-5 border border-white/5 flex flex-col justify-between",children:[e.jsx("p",{className:"text-[#8e95a3] text-xs font-bold uppercase tracking-wider mb-3",children:"Critical Priority"}),e.jsxs("div",{className:"flex items-end justify-between",children:[e.jsx("span",{className:"text-[#ffb3b3] text-3xl font-bold",children:a.critical_priority}),e.jsxs("div",{className:"flex items-center gap-1 text-[#ff8080] text-sm font-medium",children:[e.jsx(B,{size:14}),e.jsx("span",{children:a.critical_priority_trend})]})]})]}),e.jsxs("div",{className:"bg-[#1c212d] rounded-xl p-5 border border-white/5 flex flex-col justify-between",children:[e.jsx("p",{className:"text-[#8e95a3] text-xs font-bold uppercase tracking-wider mb-3",children:"Avg. Response Time"}),e.jsxs("div",{className:"flex items-end justify-between",children:[e.jsx("span",{className:"text-white text-3xl font-bold",children:a.avg_response_time}),e.jsxs("div",{className:"flex items-center gap-1 text-[#00e676] text-sm font-medium",children:[e.jsx(U,{size:14}),e.jsx("span",{children:a.avg_response_time_trend})]})]})]}),e.jsxs("div",{className:"bg-[#1c212d] rounded-xl p-5 border border-white/5 flex flex-col justify-between",children:[e.jsx("p",{className:"text-[#8e95a3] text-xs font-bold uppercase tracking-wider mb-3",children:"Resolved Today"}),e.jsxs("div",{className:"flex items-end justify-between",children:[e.jsx("span",{className:"text-[#00e676] text-3xl font-bold",children:a.resolved_today}),e.jsxs("div",{className:"flex items-center gap-1 text-[#00e676] text-sm font-medium",children:[e.jsx(H,{size:14}),e.jsx("span",{children:a.resolved_today_trend})]})]})]})]}),e.jsxs("div",{className:"bg-white shadow rounded-lg overflow-hidden",children:[C?e.jsx("div",{className:"p-8 text-center text-gray-500",children:"Loading tickets..."}):b.length===0?e.jsx("div",{className:"p-8 text-center text-gray-500",children:"No tickets found for the selected filter."}):e.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[e.jsx("thead",{className:"bg-gray-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Ticket #"}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"User"}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Subject"}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Status"}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Priority"}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Created"}),e.jsx("th",{className:"px-6 py-3 text-right text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Actions"})]})}),e.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:b.map(t=>e.jsxs("tr",{className:"hover:bg-gray-50",children:[e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:t.ticket_number}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500",children:t.user?t.user.email:t.email||"Deleted User"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:e.jsx("div",{className:"max-w-[200px] truncate",children:t.subject})}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm",children:L(t.status)}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm",children:F(t.priority)}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500",children:new Date(t.created_at).toLocaleDateString()}),e.jsxs("td",{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium",children:[e.jsx(M,{to:`/admin/tickets/${t.id}`,className:"text-blue-600 hover:text-blue-900 font-semibold mr-4",children:"View"}),e.jsx("button",{onClick:()=>z(t.id),className:"text-red-600 hover:text-red-900 font-semibold",children:"Delete"})]})]},t.id))})]}),x>1&&e.jsxs("div",{className:"bg-gray-50 px-6 py-4 border-t border-gray-200 flex items-center justify-between",children:[e.jsxs("div",{className:"text-sm text-gray-500",children:["Showing page ",d," of ",x]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{onClick:()=>p(t=>Math.max(1,t-1)),disabled:d===1,className:"px-3 py-1 border border-gray-300 rounded text-sm disabled:opacity-50 hover:bg-gray-100",children:"Previous"}),e.jsx("button",{onClick:()=>p(t=>Math.min(x,t+1)),disabled:d===x,className:"px-3 py-1 border border-gray-300 rounded text-sm disabled:opacity-50 hover:bg-gray-100",children:"Next"})]})]})]}),u&&I.createPortal(e.jsx("div",{className:"fixed inset-0 z-[70] bg-black/60 backdrop-blur-sm flex items-center justify-center p-4 animate-in fade-in duration-200",onClick:()=>c(null),children:e.jsxs("div",{className:"bg-white rounded-2xl shadow-2xl w-full max-w-sm p-6 text-center transform transition-all scale-100",onClick:t=>t.stopPropagation(),children:[e.jsx("div",{className:"mx-auto flex items-center justify-center h-16 w-16 rounded-full bg-red-100 mb-5",children:e.jsx("svg",{className:"h-8 w-8 text-red-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})})}),e.jsx("h2",{className:"text-xl font-bold mb-2 text-gray-900",children:"Delete Ticket"}),e.jsx("p",{className:"text-gray-500 mb-6 text-sm",children:"Are you sure you want to delete this ticket? This action cannot be undone."}),e.jsxs("div",{className:"flex justify-center gap-3 w-full",children:[e.jsx("button",{onClick:()=>c(null),className:"flex-1 px-4 py-2.5 bg-gray-100 text-gray-700 hover:bg-gray-200 rounded-xl font-medium transition-colors",children:"Cancel"}),e.jsx("button",{onClick:E,className:"flex-1 px-4 py-2.5 bg-red-600 hover:bg-red-700 text-white rounded-xl font-medium transition-colors shadow-lg shadow-red-500/30",children:"Yes, Delete"})]})]})}),document.body)]})};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.