import React, {useState, useEffect} from "react"; import { useSelector } from "react-redux"; import { useParams, useNavigate } from "react-router-dom"; import { DailyRoutesTemplateService } from "../../services"; import { selectAllActiveDrivers, selectAllActiveVehicles } from "./../../store"; import { Breadcrumb, Spinner, Modal, Button } from "react-bootstrap"; import { Pencil, Trash } from "react-bootstrap-icons"; import RouteCustomerTable from "./RouteCustomerTable"; const ViewDailyTemplateRoute = () => { const params = useParams(); const navigate = useNavigate(); const drivers = useSelector(selectAllActiveDrivers); const vehicles = useSelector(selectAllActiveVehicles); const [template, setTemplate] = useState(null); const [currentRoute, setCurrentRoute] = useState(null); const [showDeleteModal, setShowDeleteModal] = useState(false); const [deleting, setDeleting] = useState(false); const currentVehicle = vehicles.find(item => item.id === currentRoute?.vehicle); const currentDriver = drivers.find(item => item.id === currentRoute?.driver); useEffect(() => { fetchTemplateAndRoute(); }, [params.id, params.routeId]); const fetchTemplateAndRoute = () => { DailyRoutesTemplateService.getDailyRoutesTemplate(params.id).then(data => { setTemplate(data.data); const route = data.data.routes?.find(r => r._id === params.routeId); setCurrentRoute(route); }); }; const goBack = () => { navigate(`/trans-routes/daily-templates/view/${params.id}`); }; const goToEdit = () => { navigate(`/trans-routes/daily-templates/${params.id}/update-route/${params.routeId}`); }; const confirmDelete = () => { setShowDeleteModal(true); }; const deleteRoute = () => { setDeleting(true); const updatedRoutes = template.routes.filter(r => r._id !== params.routeId); DailyRoutesTemplateService.updateDailyRoutesTemplate(params.id, { ...template, routes: updatedRoutes }).then(() => { setDeleting(false); setShowDeleteModal(false); navigate(`/trans-routes/daily-templates/view/${params.id}`); }).catch(err => { setDeleting(false); alert('Failed to delete route'); }); }; if (!template || !currentRoute) { return (