envoc-form
Version:
Envoc form components
17 lines (14 loc) • 555 B
text/typescript
import { useCallback } from 'react';
import { FormBuilderProp } from 'Form/Form';
import { useFormikContext } from 'formik';
export default function useFormValue<
TForm extends object,
TPropKey extends keyof TForm
>(formBuilder: FormBuilderProp<TForm>, fieldName: TPropKey) {
const { values, setFieldValue } = useFormikContext<TForm>();
const setValue = useCallback(
(value: TForm[TPropKey]) => setFieldValue(fieldName as string, value),
[fieldName, setFieldValue]
);
return [values[fieldName], setValue] as const;
}