import React, {useState} from "react"; import {Form, Button, Container, Row, Col} from "react-bootstrap"; import {GiConfirmed} from "react-icons/gi"; import useFormData from "../Hooks/useFormData"; import useCreateTrip from "../Hooks/Transport/useCreateTrip"; import {AiOutlinePlusCircle} from "react-icons/ai"; import useFormNested from "../useFormNested"; const AddTripForm = (props) => { const {createTrip} = useCreateTrip(props.transportId); console.log(props.transportId) const [wayPoints, setWayPoints] = useState([]); const [dependencies, setDependencies] = useState([]); const [routeCount, setRouteCount] = useState(0); const [showRouteCol, setRouteCol] = useState(false); let wayPointNames const findDependantRoutes = (routes, waypoints, i) => { const dependency = [] console.log('OD fja') console.log(Object.values(waypoints)) const objVal = Object.values(waypoints) const searchingRoute = Object.values(waypoints)[i] const fromIndex = routes.findIndex(x => searchingRoute.from === x) const toIndex = routes.findIndex(x => searchingRoute.to === x) for(let j = 0; j < objVal.length; j++) { const start = routes.findIndex(x => objVal[j].from === x) const end = routes.findIndex(x => objVal[j].to === x) if(start >= fromIndex && start < toIndex) { dependency.push(j) } else if(end >= toIndex && end < toIndex) { dependency.push(j) } else if(fromIndex >= start && fromIndex < end) { dependency.push(j) } } return dependency; } const {formData, onFormChange, onCheckBoxChange, setFormData} = useFormData( { transport: "", from: "", to: "", freeSpace: "", date: new Date().getDate(), time: new Date().getDate(), routeWaypointLocation: [], } ); const { formData: routesFormData, onFormChange: routesFormChange, setFormData: routesSetFormData } = useFormNested({}); const [routes, setRoutes] = useState([]); const newWaypoint = ( <> Попатна дестинација ); return ( <>
Дестинација на поаѓање Дестинација на пристигање Датум и време на поаѓање Попатни дестинации { const wayPoints = document.getElementsByName( "routeWaypointLocation" ); if (wayPoints.length == 0) { setFormData({ ...formData, routeWaypointLocation: [formData.from], }); setRouteCount((prev) => { return prev + 1; }); console.log(formData); } if ( wayPoints.length == 0 || wayPoints[wayPoints.length - 1].value.length > 0 ) { setRouteCount((prevState) => { return prevState + 1; }); console.log(routeCount); setWayPoints((prevState) => { return [...prevState, newWaypoint]; }); } }} id="add-route" size={30} color="#159895" > {!showRouteCol && wayPoints} {showRouteCol && console.log(routes)} {showRouteCol && console.log(routesFormData)} {dependencies !== [] && console.log(dependencies)} {(showRouteCol && dependencies !== []) && ( routes.map((route, i) => { return ( {/*{console.log(findDependantRoutes(routesFormData, wayPointNames, i))}*/} Рута Слободни места Време на пристигнување Цена ) }) )}
); }; export default AddTripForm;