56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
import { toast } from "sonner";
|
|
import { useCameraFeedContext } from "../../../../../app/context/CameraFeedContext";
|
|
import { useBlackBoard } from "../../../../../hooks/useBlackBoard";
|
|
import ModalComponent from "../../../../../ui/ModalComponent";
|
|
|
|
type ResetAllModalProps = {
|
|
isResetAllModalOpen: boolean;
|
|
handleClose: () => void;
|
|
};
|
|
|
|
const ResetAllModal = ({ isResetAllModalOpen, handleClose }: ResetAllModalProps) => {
|
|
const { state, dispatch } = useCameraFeedContext();
|
|
const { blackboardMutation } = useBlackBoard();
|
|
|
|
const handleResetAll = async () => {
|
|
dispatch({ type: "RESET_CAMERA_FEED" });
|
|
|
|
handleClose();
|
|
const result = await blackboardMutation.mutateAsync({
|
|
operation: "INSERT",
|
|
path: `cameraFeed`,
|
|
value: state,
|
|
});
|
|
// Need endpoint to reset all target detection painted cells
|
|
if (result?.reason === "OK") {
|
|
toast.success("All camera settings have been reset to default values.");
|
|
}
|
|
};
|
|
return (
|
|
<ModalComponent isModalOpen={isResetAllModalOpen} close={handleClose}>
|
|
<div>
|
|
<h2 className="text-xl font-bold mb-4">Reset All Camera Settings</h2>
|
|
<p className="mb-4">
|
|
Are you sure you want to reset all camera settings to their default values? This action cannot be undone.
|
|
</p>
|
|
<div className="flex justify-end gap-4">
|
|
<button
|
|
onClick={handleResetAll}
|
|
className="bg-red-600 text-white px-4 py-2 rounded hover:bg-red-700 hover:cursor-pointer"
|
|
>
|
|
Reset
|
|
</button>
|
|
<button
|
|
onClick={handleClose}
|
|
className="bg-gray-600 text-white px-4 py-2 rounded hover:bg-gray-700 hover:cursor-pointer "
|
|
>
|
|
Cancel
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</ModalComponent>
|
|
);
|
|
};
|
|
|
|
export default ResetAllModal;
|