import { Context, useContext, useEffect } from "react"; import { FieldErrors, FieldValues, Path, UseFormReturn, UseFormTrigger, } from "react-hook-form"; import { useTranslation } from "react-i18next"; export const useFixMessageWhenChangeLanguage = ( context: Context>, ) => { const { i18n } = useTranslation(); const { trigger, formState: { errors }, } = useContext(context); useEffect(() => { if (Object.keys(errors || {}).length !== 0) { trigger(Object.keys(errors || {}) as Path[]); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [errors, i18n.language]); }; export const useDirtyFields = ( trigger: UseFormTrigger, errors: FieldErrors, ) => { const { i18n } = useTranslation(); useEffect(() => { if (Object.keys(errors || {}).length !== 0) { trigger(Object.keys(errors || {}) as Path[]); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [errors, i18n.language]); };