import type { PaintedCell, Region } from "../../../../types/types"; import ColourPicker from "./ColourPicker"; import { useCameraFeedContext } from "../../../../app/context/CameraFeedContext"; type RegionSelectorProps = { regions: Region[]; selectedRegionIndex: number; mode: string; cameraFeedID: "A" | "B" | "C"; }; const RegionSelector = ({ regions, selectedRegionIndex, mode, cameraFeedID }: RegionSelectorProps) => { const { dispatch } = useCameraFeedContext(); const handleChange = (e: { target: { value: string } }) => { dispatch({ type: "CHANGE_MODE", payload: { cameraFeedID: cameraFeedID, mode: e.target.value } }); }; const handleAddRegionClick = () => { const regionName = `Region ${regions.length + 1}`; dispatch({ type: "ADD_NEW_REGION", payload: { cameraFeedID: cameraFeedID, regionName: regionName, brushColour: "#ffffff" }, }); }; const handleResetRegion = () => { dispatch({ type: "RESET_PAINTED_CELLS", payload: { cameraFeedID: cameraFeedID, paintedCells: new Map() }, }); }; const handleRemoveClick = () => { dispatch({ type: "REMOVE_REGION", payload: { cameraFeedID: cameraFeedID, regionName: regions[selectedRegionIndex].name }, }); }; const handleModeChange = (newMode: string) => { dispatch({ type: "CHANGE_MODE", payload: { cameraFeedID: cameraFeedID, mode: newMode } }); }; const handleRegionSelect = (index: number) => { dispatch({ type: "SET_SELECTED_REGION_INDEX", payload: index }); }; const handleRegionColourChange = (index: number, newColour: string) => { const regionName = regions[index].name; dispatch({ type: "SET_SELECTED_REGION_COLOUR", payload: { cameraFeedID: cameraFeedID, regionName: regionName, newColour: newColour }, }); }; return (

Tools

Region Select

<> {regions?.map((region, idx) => { const isSelected = selectedRegionIndex === idx; const inputId = `region-${idx}`; return ( ); })}

Actions

); }; export default RegionSelector;