import { useForm } from 'react-hook-form'; import { FormControl, Input, Switch } from '@chakra-ui/react'; import useOscSettings, { useOscSettingsMutation } from '../../../common/hooks-query/useOscSettings'; import { PlaceholderSettings } from '../../../common/models/OscSettings'; import { useEmitLog } from '../../../common/stores/logger'; import { isIPAddress, isOnlyNumbers } from '../../../common/utils/regex'; import OntimeModalFooter from '../OntimeModalFooter'; import styles from '../Modal.module.scss'; export default function OscSettings() { const { data } = useOscSettings(); const { mutateAsync } = useOscSettingsMutation(); const { emitError } = useEmitLog(); const { handleSubmit, register, reset, setError, formState: { errors, isSubmitting, isDirty, isValid }, } = useForm({ defaultValues: data, values: data, }); const onSubmit = async (values: PlaceholderSettings) => { const numericPortIn = Number(values.portIn); const numericPortOut = Number(values.portOut); if (numericPortIn === numericPortOut) { setError('portIn', { message: 'OSC IN and OUT Ports cant be the same' }); return; } const parsedValues = { ...values, portIn: numericPortIn, portOut: numericPortOut, }; try { await mutateAsync(parsedValues); } catch (error) { emitError(`Error setting OSC: ${error}`); } }; const resetForm = () => { // @ts-expect-error -- we know the types dont match reset(data); }; return (
OSC Input Control Ontime with OSC
OSC Output Ontime data feedback
); }