import { useRef, useState, useEffect } from "react"; import { Link } from "react-router-dom"; import Chip from '@mui/material/Chip'; import Stack from '@mui/material/Stack'; import ConnectedIcon from "../Controls/ConnectedIcon"; import { useVehicleContext } from "../Contexts/VehicleContext"; import useStyles from "../useStyles"; import { useIntersectObserver } from "../../hooks"; // Prevent fetching missing data by not including `token` prop export function VehicleTeaserController(props) { const el = useRef(null); const isVisible = useIntersectObserver(el, "0px", true); const [isMissingData, setIsMissingData] = useState(false); const { getVehicle, vehicle } = useVehicleContext(); const classes = useStyles(); useEffect(() => { if (props.trim === undefined) { setIsMissingData(true); } }, [isVisible, props.trim]); useEffect(() => { if (isVisible && props.token) { getVehicle(props.vin, props.token) } // eslint-disable-next-line react-hooks/exhaustive-deps }, [isMissingData, isVisible, props.vin, props.token]); if (!props.vin) { return (