import { useEffect } from 'react'; import { useForm } from 'react-hook-form'; import { Input, Select } from '@chakra-ui/react'; import type { Settings } from 'ontime-types'; import { logAxiosError } from '../../../common/api/apiUtils'; import { postSettings } from '../../../common/api/ontimeApi'; import useSettings from '../../../common/hooks-query/useSettings'; import { isOnlyNumbers } from '../../../common/utils/regex'; import ModalLoader from '../modal-loader/ModalLoader'; import ModalSplitInput from '../ModalSplitInput'; import OntimeModalFooter from '../OntimeModalFooter'; import ModalPinInput from './ModalPinInput'; import style from './SettingsModal.module.scss'; export default function AppSettingsModal() { const { data, status, isFetching, refetch } = useSettings(); const { handleSubmit, register, reset, formState: { errors, isSubmitting, isDirty, isValid }, } = useForm({ defaultValues: data, values: data, resetOptions: { keepDirtyValues: true, }, }); useEffect(() => { if (data) { reset(data); } }, [data, reset]); const onSubmit = async (formData: Settings) => { try { await postSettings(formData); } catch (error) { logAxiosError('Error saving settings', error); } finally { await refetch(); } }; const onReset = () => { reset(data); }; const disableInputs = status === 'pending'; if (isFetching) { return ; } return (
); }