import React, {useState, useEffect} from "react"; import { useSelector } from "react-redux"; import { useParams, useNavigate } from "react-router-dom"; import { selectAllRoutes, selectTomorrowAllRoutes, selectAllActiveDrivers, selectAllActiveVehicles, selectHistoryRoutes } from "./../../store"; import PersonnelSection from "./PersonnelSection"; import { AuthService, CustomerService, SignatureRequestService } from "../../services"; import moment from 'moment'; import { Breadcrumb, Tabs, Tab, Dropdown, Spinner, Modal, Button } from "react-bootstrap"; import { Download, Pencil } from "react-bootstrap-icons"; import RouteCustomerEditor from "./RouteCustomerEditor"; const RouteView = () => { const params = useParams(); const allRoutes = useSelector(selectAllRoutes); const tomorrowRoutes = useSelector(selectTomorrowAllRoutes); const historyRoutes = useSelector(selectHistoryRoutes); const drivers = useSelector(selectAllActiveDrivers); const vehicles = useSelector(selectAllActiveVehicles); const currentRoute = (allRoutes.find(item => item.id === params.id)) || (tomorrowRoutes.find(item => item.id === params.id)) || (historyRoutes.find(item => item.id === params.id)); const currentVehicle = vehicles.find(item => item.id === currentRoute?.vehicle ); const currentDriver = drivers.find(item => item.id === currentRoute?.driver); const [showVehicleDetails, setShowVehicleDetails] = useState(false); const [signature, setSignature] = useState(undefined); const [signatureRequest, setSignatureRequest] = useState(undefined); const paramsQuery = new URLSearchParams(window.location.search); const scheduleDate = paramsQuery.get('dateSchedule'); const navigate = useNavigate(); const closeModal = () => { setShowVehicleDetails(false); } const openModal = () => { setShowVehicleDetails(true); } const getRelatedOutboundRoutesForThisView = () => { if (allRoutes.find(item => item.id === params.id)) { return allRoutes.filter(item => item.type==='outbound'); } if (tomorrowRoutes.find(item => item.id === params.id)) { return tomorrowRoutes.filter(item => item.type==='outbound'); } if (historyRoutes.find(item => item.id === params.id)) { return historyRoutes.filter(item => item.type==='outbound'); } } const directToDashboad = () => { navigate(`/trans-routes/dashboard?dateSchedule=${moment(currentRoute?.schedule_date).format('YYYY-MM-DD')}`); } const edit = (editSection) => { if (scheduleDate) { navigate(`/trans-routes/edit/${currentRoute?.id}?dateSchedule=${scheduleDate}&editSection=${editSection}`) } else { navigate(`/trans-routes/edit/${currentRoute?.id}?editSection=${editSection}`) } } const deleteFile = () => { if (signature) { const dateArr = moment(currentRoute?.schedule_date)?.format('MM/DD/YYYY')?.split('/') || []; CustomerService.deleteFile({name: `${currentRoute?.id}_${currentRoute?.driver}_${dateArr[0]}_${dateArr[1]}`}).then(data => { setSignature(undefined); }) } } const generateSignatureRequest = () => { SignatureRequestService.createNewSignatureRequest({ driver_id: currentDriver?.id, driver_name: currentDriver?.name, route_id: currentRoute?.id, route_date: currentRoute?.schedule_date, route_name: currentRoute?.name, status: 'active', }).then((data) => { setSignatureRequest(data.data); }) } useEffect(() => { const dateArr = moment(currentRoute?.schedule_date)?.format('MM/DD/YYYY')?.split('/') || []; CustomerService.getAvatar(`${currentRoute?.id}_${currentRoute?.driver}_${dateArr[0]}_${dateArr[1]}`).then(data => { setSignature(data.data); }); SignatureRequestService.getAllSignatureRequests({driver_id: currentDriver?.id, route_id: currentRoute?.id, route_date: currentRoute?.scheduleDate}).then((data) => { if (data?.data?.length > 0) { setSignatureRequest(data?.data[0]); } }) }, [currentRoute]); return ( <>