79137893

Date: 2024-10-29 15:31:34
Score: 1
Natty:
Report link

Adding on @Ilya Pasternak answer, for the react hook form users I've created a fully typed hook that will simplify and encapsulate the logic:

export const useReactiveTranslatedForm = <T extends AnyObject>(
  getSchemaFunction: () => ObjectSchema<T>,
  defaultValues: DefaultValues<T>
) => {
  const { i18n } = useTranslation()
  const memoizedSchema = useMemo(() => getSchemaFunction(), [i18n.language])
  const form = useForm<T>({
    resolver: yupResolver(memoizedSchema),
    defaultValues
  })
  useEffect(() => {
    if (form.formState.isSubmitted) {
      form.trigger()
    }
  }, [i18n.language])
  return form
}

Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • User mentioned (1): @Ilya
  • Low reputation (1):
Posted by: Ricardo Weiss