diff --git a/client/src/pages/operational-planning.tsx b/client/src/pages/operational-planning.tsx index 5b2670c..6591452 100644 --- a/client/src/pages/operational-planning.tsx +++ b/client/src/pages/operational-planning.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { useState, useEffect } from "react"; import { useQuery, useMutation } from "@tanstack/react-query"; import { queryClient, apiRequest } from "@/lib/queryClient"; import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"; @@ -14,6 +14,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@ import { format } from "date-fns"; import { it } from "date-fns/locale"; import { useToast } from "@/hooks/use-toast"; +import { useLocation } from "wouter"; interface Shift { id: string; @@ -93,14 +94,33 @@ const locationLabels: Record = { export default function OperationalPlanning() { const { toast } = useToast(); - const [selectedLocation, setSelectedLocation] = useState("roccapiemonte"); // Sede selezionata (primo step) + const [location] = useLocation(); + + // Leggi parametri dalla URL + const searchParams = new URLSearchParams(location.split('?')[1] || ''); + const urlDate = searchParams.get('date'); + const urlLocation = searchParams.get('location'); + + const [selectedLocation, setSelectedLocation] = useState( + urlLocation && ['roccapiemonte', 'milano', 'roma'].includes(urlLocation) + ? urlLocation + : "roccapiemonte" + ); const [selectedDate, setSelectedDate] = useState( - format(new Date(), "yyyy-MM-dd") + urlDate || format(new Date(), "yyyy-MM-dd") ); const [selectedSite, setSelectedSite] = useState(null); const [selectedGuards, setSelectedGuards] = useState([]); const [selectedVehicle, setSelectedVehicle] = useState(null); const [createShiftDialogOpen, setCreateShiftDialogOpen] = useState(false); + + // Aggiorna stato quando cambiano i parametri URL + useEffect(() => { + if (urlDate) setSelectedDate(urlDate); + if (urlLocation && ['roccapiemonte', 'milano', 'roma'].includes(urlLocation)) { + setSelectedLocation(urlLocation); + } + }, [urlDate, urlLocation]); // Query per siti non coperti (filtrati per sede e data) const { data: uncoveredData, isLoading } = useQuery({