diff --git a/src/components/QuestionnaireResponseForm/index.tsx b/src/components/QuestionnaireResponseForm/index.tsx index 98901581..3b13664b 100644 --- a/src/components/QuestionnaireResponseForm/index.tsx +++ b/src/components/QuestionnaireResponseForm/index.tsx @@ -25,7 +25,7 @@ import { saveFHIRResource, updateFHIRResource } from 'src/services/fhir'; import { FormFooterComponentProps } from '../BaseQuestionnaireResponseForm/FormFooter'; import { Spinner } from '../Spinner'; -interface Props extends QuestionnaireResponseFormProps { +export interface QRFProps extends QuestionnaireResponseFormProps { onSuccess?: (response: QuestionnaireResponseFormSaveResponse) => void; onFailure?: (error: any) => void; readOnly?: boolean; @@ -126,7 +126,7 @@ export function onFormResponse(props: { } } -export function useQuestionnaireResponseForm(props: Props) { +export function useQuestionnaireResponseForm(props: QRFProps) { // TODO find what cause rerender and fix it // remove this temporary hack const memoizedProps = useMemo(() => props, [JSON.stringify(props)]); @@ -152,7 +152,7 @@ export function useQuestionnaireResponseForm(props: Props) { return { response, onSubmit, readOnly, onCancel }; } -export function QuestionnaireResponseForm(props: Props) { +export function QuestionnaireResponseForm(props: QRFProps) { const { response, onSubmit, readOnly, onCancel } = useQuestionnaireResponseForm(props); return ( diff --git a/src/uberComponents/ResourceListPage/actions.tsx b/src/uberComponents/ResourceListPage/actions.tsx index 68b8c01e..6e8693b7 100644 --- a/src/uberComponents/ResourceListPage/actions.tsx +++ b/src/uberComponents/ResourceListPage/actions.tsx @@ -4,7 +4,7 @@ import { Bundle, ParametersParameter, Resource } from 'fhir/r4b'; import { useNavigate } from 'react-router-dom'; import { ModalTrigger } from 'src/components/ModalTrigger'; -import { QuestionnaireResponseForm } from 'src/components/QuestionnaireResponseForm'; +import { QuestionnaireResponseForm, QRFProps } from 'src/components/QuestionnaireResponseForm'; import { questionnaireIdLoader } from 'src/hooks/questionnaire-response-form-data'; export interface NavigationActionType { @@ -24,6 +24,7 @@ export interface QuestionnaireActionType { title: React.ReactNode; questionnaireId: string; icon?: React.ReactNode; + qrfProps?: Partial; } export function navigationAction( @@ -42,12 +43,13 @@ export function customAction(control: React.ReactNode): CustomActionType { export function questionnaireAction( title: React.ReactNode, questionnaireId: string, - options?: { icon?: React.ReactNode }, + options?: { icon?: React.ReactNode; qrfProps?: Partial }, ): QuestionnaireActionType { return { type: 'questionnaire', title, icon: options?.icon, + qrfProps: options?.qrfProps, questionnaireId, }; } @@ -92,6 +94,7 @@ export function RecordQuestionnaireAction({ }} onCancel={closeModal} saveButtonTitle={t`Submit`} + {...(action.qrfProps ?? {})} /> )} @@ -125,6 +128,7 @@ export function HeaderQuestionnaireAction({ action, reload, defaultLaunchContext launchContextParameters={defaultLaunchContext} onCancel={closeModal} saveButtonTitle={t`Submit`} + {...(action.qrfProps ?? {})} /> )} @@ -170,6 +174,7 @@ export function BatchQuestionnaireAction({ }} onCancel={closeModal} saveButtonTitle={t`Submit`} + {...(action.qrfProps ?? {})} /> )}