Files
BayIQ-UI/src/features/cameras/components/CameraGrid.tsx

37 lines
1.3 KiB
TypeScript
Raw Normal View History

import { useState } from "react";
import VideoFeedGridPainter from "./Video/VideoFeedGridPainter";
import CameraSettings from "./CameraSettings/CameraSettings";
import type { Region } from "../../../types/types";
import PlatePatch from "./PlatePatch/PlatePatch";
const CameraGrid = () => {
const [regions, setRegions] = useState<Region[]>([
{ name: "Region 1", brushColour: "#ff0000" },
{ name: "Region 2", brushColour: "#00ff00" },
2025-11-23 22:36:08 +00:00
{ name: "Region 3", brushColour: "#0400ff" },
]);
const [selectedRegionIndex, setSelectedRegionIndex] = useState(0);
2025-11-23 22:36:08 +00:00
const [isErasing, setErasing] = useState(false);
const updateRegionColour = (index: number, newColour: string) => {
setRegions((prev) => prev.map((r, i) => (i === index ? { ...r, brushColour: newColour } : r)));
};
return (
<div className="grid grid-cols-1 md:grid-cols-5 grid-rows-2">
2025-11-23 22:36:08 +00:00
<VideoFeedGridPainter regions={regions} selectedRegionIndex={selectedRegionIndex} isErasing={isErasing} />
<CameraSettings
regions={regions}
selectedRegionIndex={selectedRegionIndex}
onSelectRegion={setSelectedRegionIndex}
onChangeRegionColour={updateRegionColour}
2025-11-23 22:36:08 +00:00
isErasing={isErasing}
onSelectErasing={setErasing}
/>
<PlatePatch />
</div>
);
};
export default CameraGrid;