diff --git a/src/pages/AssignProjectPage.jsx b/src/pages/AssignProjectPage.jsx index 33a550c..2128f03 100644 --- a/src/pages/AssignProjectPage.jsx +++ b/src/pages/AssignProjectPage.jsx @@ -44,6 +44,8 @@ export default function AssignProjectPage() { const [showNewCustomer, setShowNewCustomer] = useState(false) const [tickets, setTickets] = useState([]) const [ticketsLoading, setTicketsLoading] = useState(false) + const [ticketsError, setTicketsError] = useState(false) + const [ticketsReload, setTicketsReload] = useState(0) const [previewOn, setPreviewOn] = useState(true) const [subdomain, setSubdomain] = useState('') const [busy, setBusy] = useState(false) @@ -75,17 +77,20 @@ export default function AssignProjectPage() { if (state.step !== 'ticket' || !state.customerId) return let cancelled = false setTicketsLoading(true) + setTicketsError(false) databases .listDocuments(DATABASE_ID, COLLECTIONS.WORKORDERS, [ Query.equal('customerId', state.customerId), + Query.notEqual('status', 'Closed'), + Query.notEqual('status', 'Cancelled'), Query.orderDesc('$createdAt'), Query.limit(200), ]) .then((r) => { if (!cancelled) setTickets(r.documents || []) }) - .catch(() => { if (!cancelled) setTickets([]) }) + .catch(() => { if (!cancelled) { setTickets([]); setTicketsError(true) } }) .finally(() => { if (!cancelled) setTicketsLoading(false) }) return () => { cancelled = true } - }, [state.step, state.customerId]) + }, [state.step, state.customerId, ticketsReload]) const openTickets = useMemo(() => openTicketsFor(tickets, state.customerId), [tickets, state.customerId]) @@ -142,7 +147,7 @@ export default function AssignProjectPage() { } try { const result = await completeAssignment(id, body) - let path = '/projects' + let path = state.forCustomer ? '/projects' : '/services' if (result.ticketId) { try { const t = await databases.getDocument(DATABASE_ID, COLLECTIONS.WORKORDERS, result.ticketId) @@ -183,7 +188,7 @@ export default function AssignProjectPage() {