@sinchsmb/ui-kit
Version:
UI kit for SinchSMB frontend
26 lines (20 loc) • 620 B
text/typescript
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;
}