import { Languages } from '@/components/cross-language-form-field';
import { isEmpty } from 'lodash';
import { useEffect } from 'react';
import { useFormContext } from 'react-hook-form';
import { buildFieldNameWithPrefix } from './utils';

export function useSetInitialLanguage({
  prefix,
  languageShown,
}: {
  prefix: string;
  languageShown: boolean;
}) {
  const form = useFormContext();
  const lang = form.getValues(buildFieldNameWithPrefix('lang', prefix));

  useEffect(() => {
    if (languageShown && isEmpty(lang)) {
      form.setValue(buildFieldNameWithPrefix('lang', prefix), Languages[0], {
        shouldValidate: true,
        shouldDirty: true,
      });
    }
  }, [form, lang, languageShown, prefix]);
}
