1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-25 12:56:41 +07:00

#58 using formik at node submit form

This commit is contained in:
Fedor Katurov 2021-03-26 17:52:24 +07:00
parent 4b542e0291
commit b871cc2042
17 changed files with 230 additions and 423 deletions

View file

@ -0,0 +1,39 @@
import { INode } from '~/redux/types';
import { FileUploader } from '~/utils/hooks/fileUploader';
import { useCallback, useEffect, useRef } from 'react';
import { useFormik, useFormikContext } from 'formik';
import { object } from 'yup';
const validationSchema = object().shape({});
export const useNodeFormFormik = (
values: INode,
uploader: FileUploader,
stopEditing: () => void
) => {
const onSubmit = useCallback(console.log, []);
const { current: initialValues } = useRef(values);
const onReset = useCallback(() => {
uploader.setFiles([]);
if (stopEditing) stopEditing();
}, [uploader, stopEditing]);
const formik = useFormik<INode>({
initialValues,
validationSchema,
onSubmit,
onReset,
initialStatus: '',
validateOnChange: true,
});
useEffect(() => {
formik.setFieldValue('files', uploader.files);
}, [formik.setFieldValue, uploader.files]);
return formik;
};
export const useNodeFormContext = () => useFormikContext<INode>();