import { useMemo } from 'react';

import { useTranslationContext } from '../contexts/TranslationContext/TranslationContext';
import { I18n } from '../contexts/TranslationContext/types';

/** Result of {@link useTranslation} */
export interface UseTranslationResult {
  /** i18n translation engine */
  i18n: I18n;
  /** Function that used for text translating */
  t: I18n['t'];
}

export function useTranslation(): UseTranslationResult {
  const { i18n } = useTranslationContext();

  const value = useMemo<UseTranslationResult>(() => {
    return {
      i18n,
      t: i18n.t,
    };
  }, [i18n]);

  return value;
}
