diff --git a/app/javascript/pages/question/Form/Form.tsx b/app/javascript/pages/question/Form/Form.tsx index 304815a..2f046fa 100644 --- a/app/javascript/pages/question/Form/Form.tsx +++ b/app/javascript/pages/question/Form/Form.tsx @@ -1,5 +1,5 @@ import React, {FC, useState} from 'react' -import {useForm} from 'react-hook-form'; +import {FieldValue, FieldValues, useForm} from 'react-hook-form'; import {ExclamationCircleIcon} from '@heroicons/react/outline'; import {useHistory} from "react-router-dom"; import {useDispatch, useSelector} from "react-redux"; @@ -57,7 +57,14 @@ export const Form: FC = ({question, onSubmit, onDraftSubmit, alert}) => { const [validationErrors, setValidationErrors] = useState([]) const [confirmSaveDialogIsOpen, setConfirmFinishDialogIsOpen] = useState(false) const [leaveDialogIsOpen, setLeaveDialogIsOpen] = useState(false) - const {register, control, setValue, getValues, reset, formState} = useForm() + const formHooks = useForm({ + defaultValues: { + authorship: 'UNIFESO', + authorshipYear: new Date().getFullYear().toString(), + } + }) + const {register, control, setValue, getValues, reset, formState, resetField} = formHooks + const [currentStep, setCurrentStep] = useState(0) const unsavedChanges = useSelector((state: RootState) => state.unsavedChanges) const history = useHistory() @@ -119,7 +126,7 @@ export const Form: FC = ({question, onSubmit, onDraftSubmit, alert}) => { } return ( - + {alert && ( )} diff --git a/app/javascript/pages/question/Form/FormContext.tsx b/app/javascript/pages/question/Form/FormContext.tsx index 9c611ce..645e113 100644 --- a/app/javascript/pages/question/Form/FormContext.tsx +++ b/app/javascript/pages/question/Form/FormContext.tsx @@ -1,15 +1,9 @@ -import React, { FC, useContext } from 'react' -import { Control, FieldValues } from 'react-hook-form'; +import React, { FC, useContext } from 'react'; +import { FieldValues, UseFormReturn } from 'react-hook-form'; import { Question } from '../../../__generated__/graphql-schema'; -type FormContextHooks = { - register: any - setValue: Function - control: Control -} - type FormContextProps = { - hooks: FormContextHooks + hooks: UseFormReturn question?: Question } diff --git a/app/javascript/pages/question/Form/steps/FeaturesFromStep/FeaturesFormStep.tsx b/app/javascript/pages/question/Form/steps/FeaturesFromStep/FeaturesFormStep.tsx index b9c6c8c..3469346 100644 --- a/app/javascript/pages/question/Form/steps/FeaturesFromStep/FeaturesFormStep.tsx +++ b/app/javascript/pages/question/Form/steps/FeaturesFromStep/FeaturesFormStep.tsx @@ -25,19 +25,20 @@ export const FeaturesFragment = gql` ` export const FeaturesFormStep: FC = () => { - const { question, hooks: { setValue, register } } = useFormProvider(); + const { question, hooks: { setValue, register, formState, getValues } } = useFormProvider(); const currentYear = new Date().getFullYear(); + if (!question) return null + const { - authorship, - authorshipYear, difficulty, bloomTaxonomy, checkType, - } = question || {} as Question + } = question - const [ownQuestion, setOwnQuestion] = useState(authorship === "UNIFESO" || authorship === undefined || authorship === null); + const authorship = getValues('authorship') + const [ownQuestion, setOwnQuestion] = useState(authorship === "UNIFESO") const handleOwnCheck = (value: string) => { if (value === 'UNIFESO') { @@ -61,7 +62,6 @@ export const FeaturesFormStep: FC = () => {
{
{
@@ -106,7 +104,6 @@ export const FeaturesFormStep: FC = () => { min="1999" max={currentYear} step="1" - defaultValue={authorshipYear ?? new Date().getFullYear().toString()} readOnly={!!ownQuestion} />