Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 1x 1x 1x 1x | import * as React from 'react'; import * as yup from 'yup'; const noError: string[] = []; const unknownError = ['Unknown error']; export function useValidateSchema<T>( schema?: yup.Schema<T>, value?: T, { abortEarly, recursive }: yup.ValidateOptions = {}, ): string[] { const [errors, setErrors] = React.useState<string[]>(noError); React.useEffect(() => { if (!schema) { setErrors(noError); return; } schema .validate(value, { strict: true, abortEarly, recursive }) // to avoid taking a useEffect dependency on validateOpts that is an object .then(() => { setErrors(noError); }) .catch(e => { setErrors(e.errors || unknownError); }); }, [schema, value, abortEarly, recursive]); return errors; } |