import * as React from 'react'; import { FormTypes, SubmissionTypes } from '@oneblink/types'; import { ExecutedLookups, SectionState } from '../types/form'; /** * This function is a simple wrapper around the react hook `useState()`. The * results can be passed to the [``](https://oneblink.github.io/apps-react/functions/OneBlinkForm.html) * component. * * ## Example * * ```js * import { * useFormSubmissionState, * OneBlinkFormControlled, * } from '@oneblink/apps-react' * * function Uncontrolled({ form, initialSubmission, ...props }) { * const [{ definition, submission }, setFormSubmission] = * useFormSubmissionState(form, initialSubmission) * * return ( * * ) * } * ``` * * @param form The OneBlink Form to render * @param initialSubmission The initial submission data to populate the form * with * @param lastElementUpdated * @returns * @group Hooks */ export default function useFormSubmissionState(form: FormTypes.Form, initialSubmission?: SubmissionTypes.S3SubmissionData['submission'], lastElementUpdated?: FormTypes.FormElement, sectionState?: SectionState): [{ definition: FormTypes.Form; submission: SubmissionTypes.S3SubmissionData["submission"]; lastElementUpdated: FormTypes.FormElement | undefined; executedLookups: ExecutedLookups; sectionState: SectionState | undefined; }, React.Dispatch>];