import { Button } from '@blueprintjs/core'; import { yupResolver } from '@hookform/resolvers/yup'; import { useForm } from 'react-hook-form'; import * as Yup from 'yup'; import { useDispatch } from '../context/DispatchContext.js'; import Label from '../elements/Label.js'; import { NumberInput2Controller } from '../elements/NumberInput2Controller.js'; import { headerLabelStyle } from './Header.js'; import { HeaderWrapper } from './HeaderWrapper.js'; const validationSchema = Yup.object().shape({ zonesNoiseFactor: Yup.number().integer().min(0).required(), zonesMinMaxRatio: Yup.number().min(0).required(), }); interface ZoneDetectionOptions { zonesNoiseFactor: number; zonesMinMaxRatio: number; } const initialValues: ZoneDetectionOptions = { zonesNoiseFactor: 1, zonesMinMaxRatio: 0.03, }; function Zones2DOptionPanel() { const dispatch = useDispatch(); function handleZonesPicking(values: any) { dispatch({ type: 'AUTO_ZONES_DETECTION', payload: values, }); } function handleChangeNoiseFactory(values: any) { dispatch({ type: 'CHANGE_ZONES_NOISE_FACTOR', payload: values }); } const { handleSubmit, formState: { isValid }, control, } = useForm({ defaultValues: initialValues, resolver: yupResolver(validationSchema), mode: 'onChange', }); return ( ); } export default Zones2DOptionPanel;