import { Formik, Form, Field } from "formik"; import type { CameraSettings, CameraSettingsAction } from "../../../../utils/types"; import { useCameraController } from "../../hooks/useCameraControlConfig"; type CameraControlProps = { state: CameraSettings["cameraControls"]; dispatch: React.Dispatch; }; const CameraControls = ({ state, dispatch }: CameraControlProps) => { const { cameraControllerMutation } = useCameraController(); console.log(state); const initialValues = { cameraMode: state.cameraControlMode === "auto" ? "auto" : "manual", auto: { minShutter: state.auto.minShutter, maxShutter: state.auto.maxShutter, maxGain: state.auto.maxGain, exposureCompensation: state.auto.exposureCompensation, }, manual: { fixShutter: state.manual.fixShutter, fixGain: state.manual.fixGain, fixIris: state.manual.fixIris, }, }; const handleSumbit = (values: { cameraMode: string; auto: typeof initialValues.auto; manual: typeof initialValues.manual; }) => { cameraControllerMutation.mutate({ cameraControlMode: values.cameraMode as "auto" | "manual", auto: values.auto, manual: values.manual, }); dispatch({ type: "SET_CAMERA_CONTROLS", payload: { cameraControlMode: values.cameraMode as "auto" | "manual", auto: values.auto, manual: values.manual, }, }); }; return ( {({ values }) => (

Controls

{values.cameraMode === "auto" && (

Shutter Speed

Gain

Exposure

)} {values.cameraMode === "manual" && (

Shutter Speed

Gain

Iris

)}
)}
); }; export default CameraControls;