- added add and remove regions on paint selector

This commit is contained in:
2025-11-25 20:49:11 +00:00
parent 2aa0b4377f
commit 225a2a6168
3 changed files with 33 additions and 0 deletions

View File

@@ -39,6 +39,13 @@ const CameraGrid = () => {
tabIndex={tabIndex} tabIndex={tabIndex}
setTabIndex={setTabIndex} setTabIndex={setTabIndex}
paintedCells={paintedCellsRef} 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));
}}
/> />
<PlatePatch /> <PlatePatch />
</div> </div>

View File

@@ -15,6 +15,8 @@ type CameraSettingsProps = {
setTabIndex: (tabIndex: number) => void; setTabIndex: (tabIndex: number) => void;
tabIndex: number; tabIndex: number;
paintedCells: RefObject<Map<string, PaintedCell>>; paintedCells: RefObject<Map<string, PaintedCell>>;
onAddRegion: () => void;
OnRemoveRegion: () => void;
}; };
const CameraSettings = ({ const CameraSettings = ({
@@ -27,6 +29,8 @@ const CameraSettings = ({
tabIndex, tabIndex,
setTabIndex, setTabIndex,
paintedCells, paintedCells,
onAddRegion,
OnRemoveRegion,
}: CameraSettingsProps) => { }: CameraSettingsProps) => {
return ( return (
<Card className="p-4 col-span-3 row-span-5 col-start-3 md:col-span-3 md:row-span-5 max-h-screen overflow-auto"> <Card className="p-4 col-span-3 row-span-5 col-start-3 md:col-span-3 md:row-span-5 max-h-screen overflow-auto">
@@ -50,6 +54,8 @@ const CameraSettings = ({
mode={mode} mode={mode}
onSelectMode={onSelectMode} onSelectMode={onSelectMode}
paintedCells={paintedCells} paintedCells={paintedCells}
onAddRegion={onAddRegion}
OnRemoveRegion={OnRemoveRegion}
/> />
</TabPanel> </TabPanel>
<TabPanel> <TabPanel>

View File

@@ -10,6 +10,8 @@ type RegionSelectorProps = {
mode: string; mode: string;
onSelectMode: (mode: string) => void; onSelectMode: (mode: string) => void;
paintedCells: RefObject<Map<string, PaintedCell>>; paintedCells: RefObject<Map<string, PaintedCell>>;
onAddRegion: () => void;
OnRemoveRegion: () => void;
}; };
const RegionSelector = ({ const RegionSelector = ({
@@ -20,16 +22,26 @@ const RegionSelector = ({
mode, mode,
onSelectMode, onSelectMode,
paintedCells, paintedCells,
onAddRegion,
OnRemoveRegion,
}: RegionSelectorProps) => { }: RegionSelectorProps) => {
const handleChange = (e: { target: { value: string } }) => { const handleChange = (e: { target: { value: string } }) => {
onSelectMode(e.target.value); onSelectMode(e.target.value);
}; };
const handleAddClick = () => {
onAddRegion();
};
const handleResetClick = () => { const handleResetClick = () => {
const map = paintedCells.current; const map = paintedCells.current;
map.clear(); map.clear();
}; };
const handleRemoveClick = () => {
OnRemoveRegion();
};
return ( return (
<div className="grid grid-cols-1 md:grid-cols-2 md:grid-rows-2 gap-4"> <div className="grid grid-cols-1 md:grid-cols-2 md:grid-rows-2 gap-4">
<div className="p-2 border border-gray-600 rounded-lg flex flex-col"> <div className="p-2 border border-gray-600 rounded-lg flex flex-col">
@@ -102,6 +114,14 @@ const RegionSelector = ({
); );
})} })}
</> </>
<div className=" mx-auto flex flex-row gap-4 mt-4">
<button className="border border-blue-900 bg-blue-700 px-4 rounded-md" onClick={handleAddClick}>
Add Region
</button>
<button className="border border-red-900 px-4 rounded-md" onClick={handleRemoveClick}>
Remove Region
</button>
</div>
</div> </div>
<div className="p-2 border border-gray-600 rounded-lg flex flex-col md:col-span-2 h-50"> <div className="p-2 border border-gray-600 rounded-lg flex flex-col md:col-span-2 h-50">