import { useCallback, useRef, useState } from "react"; import { BLANK_IMG } from "../../utils/utils"; import SightingWidgetDetails from "../SightingsWidget/SightingWidgetDetails"; import { useOverviewOverlay } from "../../hooks/useOverviewOverlay"; import { useSightingFeedContext } from "../../context/SightingFeedContext"; import { useHiDPICanvas } from "../../hooks/useHiDPICanvas"; import NavigationArrow from "../UI/NavigationArrow"; const SightingOverview = () => { const [overlayMode, setOverlayMode] = useState<0 | 1 | 2>(0); const imgRef = useRef(null); const canvasRef = useRef(null); const onOverviewClick = useCallback(() => { setOverlayMode((m) => ((m + 1) % 3) as 0 | 1 | 2); }, []); const { side, mostRecent } = useSightingFeedContext(); useOverviewOverlay(mostRecent, overlayMode, imgRef, canvasRef); const { sync } = useHiDPICanvas(imgRef, canvasRef); // if (noSighting || isPending) return

loading

; return (
{ sync(); setOverlayMode((m) => m); }} src={mostRecent?.overviewUrl || BLANK_IMG} alt="overview" className="absolute inset-0 w-full h-full object-contain cursor-pointer z-10 " onClick={onOverviewClick} style={{ display: mostRecent?.overviewUrl ? "block" : "none", }} />
Overlay:{" "} {overlayMode === 0 ? "Off" : overlayMode === 1 ? "Plate box" : "Track + box"}{" "} (click image to toggle)
); }; export default SightingOverview;