diff --git a/src/pages/tickets.tsx b/src/pages/tickets.tsx index 301dfab5..ca06ff96 100644 --- a/src/pages/tickets.tsx +++ b/src/pages/tickets.tsx @@ -68,16 +68,40 @@ const SOURCE_OPTIONS = [ {value: "platform", label: "Platform"}, ]; +type CustomStatus = TicketStatus | "all" | "pending"; + +const STATUS_OPTIONS = [{ + label: 'Pending', + value: 'pending', + filter: (x: Ticket) => x.status !== 'completed', +}, { + label: 'All', + value: 'all', + filter: (x: Ticket) => true, +}, { + label: 'Completed', + value: 'completed', + filter: (x: Ticket) => x.status === 'completed', +}, { + label: 'In Progress', + value: 'in-progress', + filter: (x: Ticket) => x.status === 'in-progress', +}, { + label: 'Submitted', + value: 'submitted', + filter: (x: Ticket) => x.status === 'submitted', +}] + export default function Tickets() { const [filteredTickets, setFilteredTickets] = useState([]); const [selectedTicket, setSelectedTicket] = useState(); const [assigneeFilter, setAssigneeFilter] = useState(); const [sourceFilter, setSourceFilter] = useState(""); - + // const [statusFilter, setStatusFilter] = useState('pending'); const [dateSorting, setDateSorting] = useState<"asc" | "desc">("desc"); const [typeFilter, setTypeFilter] = useState(); - const [statusFilter, setStatusFilter] = useState(); + const [statusFilter, setStatusFilter] = useState('pending'); const {user} = useUser({redirectTo: "/login"}); const {users} = useUsers(); @@ -91,7 +115,10 @@ export default function Tickets() { const filters = []; if (user?.type === "agent") filters.push((x: Ticket) => x.assignedTo === user.id); if (typeFilter) filters.push((x: Ticket) => x.type === typeFilter); - if (statusFilter) filters.push((x: Ticket) => x.status === statusFilter); + if (statusFilter) { + const filter = STATUS_OPTIONS.find(x => x.value === statusFilter)?.filter; + if (filter) filters.push(filter); + } if (assigneeFilter) filters.push((x: Ticket) => x.assignedTo === assigneeFilter); if (sourceFilter) { if (sourceFilter === "webpage") filters.push((x: Ticket) => fromHomepage.some((r) => r.test(x.reportedFrom))); @@ -214,17 +241,9 @@ export default function Tickets() {