- added add and remove regions on paint selector
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
Reference in New Issue
Block a user