diff --git a/.replit b/.replit index 90b1d94..1577d4d 100644 --- a/.replit +++ b/.replit @@ -19,6 +19,10 @@ externalPort = 80 localPort = 33035 externalPort = 3001 +[[ports]] +localPort = 40311 +externalPort = 5173 + [[ports]] localPort = 41343 externalPort = 3000 diff --git a/client/src/pages/general-planning.tsx b/client/src/pages/general-planning.tsx index a251823..0abf7e3 100644 --- a/client/src/pages/general-planning.tsx +++ b/client/src/pages/general-planning.tsx @@ -161,24 +161,17 @@ export default function GeneralPlanning() { staleTime: 0, }); - // Effect per aggiornare selectedCell quando planningData cambia (per real-time update del dialog) - useEffect(() => { - if (selectedCell && planningData) { - // Trova la cella aggiornata nei nuovi dati - const day = planningData.days.find(d => d.date === selectedCell.date); - if (day) { - const updatedSite = day.sites.find(s => s.siteId === selectedCell.siteId); - if (updatedSite) { - setSelectedCell({ - siteId: selectedCell.siteId, - siteName: selectedCell.siteName, - date: selectedCell.date, - data: updatedSite, - }); - } - } - } - }, [planningData]); + // Calcola dati aggiornati della cella selezionata (per auto-refresh dialog) + const currentCellData = (() => { + if (!selectedCell || !planningData) return selectedCell?.data; + + // Trova i dati freschi da planningData + const day = planningData.days.find(d => d.date === selectedCell.date); + if (!day) return selectedCell.data; + + const updatedSite = day.sites.find(s => s.siteId === selectedCell.siteId); + return updatedSite || selectedCell.data; + })(); // Mutation per eliminare assegnazione guardia const deleteAssignmentMutation = useMutation({ @@ -796,14 +789,14 @@ export default function GeneralPlanning() { {/* Guardie già assegnate - fuori dal form box per evitare di nascondere il form */} - {selectedCell.data.guards.length > 0 && ( + {currentCellData && currentCellData.guards.length > 0 && (
Turni Pianificati
-{selectedCell.data.shiftsCount}
+{currentCellData?.shiftsCount || 0}
Ore Totali
-{selectedCell.data.totalShiftHours}h
+{currentCellData?.totalShiftHours || 0}h
- Servono ancora {selectedCell.data.missingGuards}{" "} - {selectedCell.data.missingGuards === 1 ? "guardia" : "guardie"} per coprire completamente il servizio - (calcolato su {selectedCell.data.totalShiftHours}h con max 9h per guardia e {selectedCell.data.minGuards} {selectedCell.data.minGuards === 1 ? "guardia minima" : "guardie minime"} contemporanee) + Servono ancora {currentCellData.missingGuards}{" "} + {currentCellData.missingGuards === 1 ? "guardia" : "guardie"} per coprire completamente il servizio + (calcolato su {currentCellData.totalShiftHours}h con max 9h per guardia e {currentCellData.minGuards} {currentCellData.minGuards === 1 ? "guardia minima" : "guardie minime"} contemporanee)
{vehicle.licensePlate}