diff --git a/client/src/pages/planning-mobile.tsx b/client/src/pages/planning-mobile.tsx index 90b847f..0e3e8e3 100644 --- a/client/src/pages/planning-mobile.tsx +++ b/client/src/pages/planning-mobile.tsx @@ -108,6 +108,9 @@ export default function PlanningMobile() { selectedDuplicateGuardId: "", }); + // Ref per scroll alla sezione sequenze pattuglia + const patrolSequencesRef = useRef(null); + // Query siti mobile per location const { data: mobileSites, isLoading: sitesLoading } = useQuery({ queryKey: ["/api/planning-mobile/sites", selectedLocation], @@ -254,6 +257,34 @@ export default function PlanningMobile() { } }; + // Funzione per trovare la guardia assegnata a un sito + const findAssignedGuard = (siteId: string) => { + if (!existingPatrolRoutes) return null; + + for (const route of existingPatrolRoutes) { + const hasStop = route.stops?.some((stop: any) => stop.siteId === siteId); + if (hasStop) { + const guard = availableGuards?.find(g => g.id === route.guardId); + return guard || null; + } + } + return null; + }; + + // Funzione per fare scroll alla sezione sequenze pattuglia + const handleScrollToPatrolSequences = () => { + if (patrolSequencesRef.current) { + patrolSequencesRef.current.scrollIntoView({ + behavior: 'smooth', + block: 'start', + }); + toast({ + title: "Sequenza visualizzata", + description: "Scorri la lista delle sequenze pattuglia", + }); + } + }; + // Funzione per assegnare guardia a un sito const handleAssignGuard = (site: MobileSite) => { if (!selectedGuard) { @@ -669,6 +700,7 @@ export default function PlanningMobile() { mobileSites.map((site) => { const isInRoute = patrolRoute.some(s => s.id === site.id); const routeIndex = patrolRoute.findIndex(s => s.id === site.id); + const assignedGuard = findAssignedGuard(site.id); return (
)} -
- +
+ {assignedGuard ? ( + + ) : ( + + Non assegnato + + )}