import { useEffect } from 'react'; import { useForm } from 'react-hook-form'; import { Alert, AlertDescription, AlertIcon, AlertTitle, Input } from '@chakra-ui/react'; import { UserFields } from 'ontime-types'; import { logAxiosError } from '../../../common/api/apiUtils'; import { postUserFields } from '../../../common/api/ontimeApi'; import useUserFields from '../../../common/hooks-query/useUserFields'; import ModalLoader from '../modal-loader/ModalLoader'; import { inputProps } from '../modalHelper'; import ModalLink from '../ModalLink'; import ModalSplitInput from '../ModalSplitInput'; import OntimeModalFooter from '../OntimeModalFooter'; import style from './SettingsModal.module.scss'; const userFieldsDocsUrl = 'https://ontime.gitbook.io/v2/features/user-fields'; export default function CuesheetSettingsForm() { const { data, status, isFetching, refetch } = useUserFields(); 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: UserFields) => { try { await postUserFields(formData); } catch (error) { logAxiosError('Error saving cuesheet settings', error); } finally { await refetch(); } }; const onReset = () => { reset(data); }; const disableInputs = status === 'pending'; if (isFetching) { return ; } return (
User Fields Allow for custom naming of additional data fields on each event (eg. light, sound, camera).
See the docs
); }