diff --git a/src/features/cameras/components/CameraGrid.tsx b/src/features/cameras/components/CameraGrid.tsx index c661c6d..649f8a3 100644 --- a/src/features/cameras/components/CameraGrid.tsx +++ b/src/features/cameras/components/CameraGrid.tsx @@ -39,6 +39,13 @@ const CameraGrid = () => { tabIndex={tabIndex} setTabIndex={setTabIndex} paintedCells={paintedCellsRef} + onAddRegion={() => { + setRegions((prev) => [...prev, { name: `Region ${prev.length + 1}`, brushColour: "#ffffff" }]); + }} + OnRemoveRegion={() => { + setRegions((prev) => prev.filter((_, i) => i !== selectedRegionIndex)); + setSelectedRegionIndex((prev) => (prev > 0 ? prev - 1 : 0)); + }} /> diff --git a/src/features/cameras/components/CameraSettings/CameraSettings.tsx b/src/features/cameras/components/CameraSettings/CameraSettings.tsx index 5daf525..d7f1593 100644 --- a/src/features/cameras/components/CameraSettings/CameraSettings.tsx +++ b/src/features/cameras/components/CameraSettings/CameraSettings.tsx @@ -15,6 +15,8 @@ type CameraSettingsProps = { setTabIndex: (tabIndex: number) => void; tabIndex: number; paintedCells: RefObject>; + onAddRegion: () => void; + OnRemoveRegion: () => void; }; const CameraSettings = ({ @@ -27,6 +29,8 @@ const CameraSettings = ({ tabIndex, setTabIndex, paintedCells, + onAddRegion, + OnRemoveRegion, }: CameraSettingsProps) => { return ( @@ -50,6 +54,8 @@ const CameraSettings = ({ mode={mode} onSelectMode={onSelectMode} paintedCells={paintedCells} + onAddRegion={onAddRegion} + OnRemoveRegion={OnRemoveRegion} /> diff --git a/src/features/cameras/components/CameraSettings/RegionSelector.tsx b/src/features/cameras/components/CameraSettings/RegionSelector.tsx index 78474a9..bddbf2e 100644 --- a/src/features/cameras/components/CameraSettings/RegionSelector.tsx +++ b/src/features/cameras/components/CameraSettings/RegionSelector.tsx @@ -10,6 +10,8 @@ type RegionSelectorProps = { mode: string; onSelectMode: (mode: string) => void; paintedCells: RefObject>; + onAddRegion: () => void; + OnRemoveRegion: () => void; }; const RegionSelector = ({ @@ -20,16 +22,26 @@ const RegionSelector = ({ mode, onSelectMode, paintedCells, + onAddRegion, + OnRemoveRegion, }: RegionSelectorProps) => { const handleChange = (e: { target: { value: string } }) => { onSelectMode(e.target.value); }; + const handleAddClick = () => { + onAddRegion(); + }; + const handleResetClick = () => { const map = paintedCells.current; map.clear(); }; + const handleRemoveClick = () => { + OnRemoveRegion(); + }; + return (
@@ -102,6 +114,14 @@ const RegionSelector = ({ ); })} +
+ + +