Fix task refresh after work order close
Keep the linked work order visible in task details and force-refresh tasks immediately after work order changes so the dashboard table updates without a hard refresh.
This commit is contained in:
@@ -566,10 +566,17 @@ export default function FleetDashboardShell({ initialSection = 'dashboard', page
|
||||
}, [serviceRecords, selectedTask?.id]);
|
||||
const selectedTaskWorkOrders = useMemo(() => {
|
||||
if (!selectedTask) return [];
|
||||
// Only open work orders in the dropdown — closed ones cannot receive new tasks.
|
||||
// Keep dropdown focused on open work orders, but preserve the task's already assigned
|
||||
// work order even when it is closed so the reference remains visible/editable in task details.
|
||||
// Cross-crane sharing allowed: no vehicle filter.
|
||||
const selectedWorkOrderId = String(selectedTask.work_order || '');
|
||||
return [...workOrders]
|
||||
.filter((order) => String(order.status || '').toLowerCase() !== 'closed')
|
||||
.filter((order) => {
|
||||
const orderId = String(order.id || '');
|
||||
const isClosed = String(order.status || '').toLowerCase() === 'closed';
|
||||
if (!isClosed) return true;
|
||||
return selectedWorkOrderId && orderId === selectedWorkOrderId;
|
||||
})
|
||||
.sort((a, b) => String(b.date || '').localeCompare(String(a.date || '')));
|
||||
}, [selectedTask, workOrders]);
|
||||
|
||||
@@ -614,7 +621,7 @@ export default function FleetDashboardShell({ initialSection = 'dashboard', page
|
||||
await updateWorkOrder(workOrder.id, changes);
|
||||
showToast('Nalog je uspješno ažuriran.', 'success');
|
||||
await fetchFleetDashboardData({ silent: true });
|
||||
await fetchTasks();
|
||||
await fetchTasks({ force: true });
|
||||
} catch (error) {
|
||||
showToast(error?.message || 'Ažuriranje naloga nije uspjelo.', 'error');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user