@hhgtech/hhg-components
Version:
Hello Health Group common components
56 lines (53 loc) • 2.37 kB
JavaScript
import React__default, { useState, useEffect, useMemo } from 'react';
import { T as TranslationsContext } from './translationsContext-3a9e3453.js';
import defaultTranslations from './i18n-values/en-PH.js';
import hiTranslations from './i18n-values/hi-IN.js';
import idTranslations from './i18n-values/id-ID.js';
import kmTranslations from './i18n-values/km-KH.js';
import msTranslations from './i18n-values/ms-MY.js';
import myTranslations from './i18n-values/my-MM.js';
import thTranslations from './i18n-values/th-TH.js';
import tlTranslations from './i18n-values/tl-PH.js';
import viTranslations from './i18n-values/vi-VN.js';
import mbTranslations from './i18n-values/vi-VN_MB.js';
import zhTranslations from './i18n-values/zh-TW.js';
const translationsMap = {
'en-PH': defaultTranslations,
'vi-VN': viTranslations,
'hi-IN': hiTranslations,
'id-ID': idTranslations,
'ms-MY': msTranslations,
'my-MM': myTranslations,
'km-KH': kmTranslations,
'zh-TW': zhTranslations,
'zh-CN': zhTranslations,
'th-TH': thTranslations,
'tl-PH': tlTranslations,
'vi-VN_MB': mbTranslations,
};
/**
* @deprecated Consider to use TranslationsProviderV2
*/
const TranslationsProvider = ({ locale = 'en-PH', overrides, overrideCurrentLocale, children, shouldLoadTranslation = true, loader = null, onTranslationsLoaded, }) => {
const overridedValues = (overrides && overrides[locale]) || overrideCurrentLocale;
const [values, setValues] = useState(() => (Object.assign(Object.assign({}, overridedValues), (shouldLoadTranslation ? translationsMap[locale] : {}))));
useEffect(() => {
setValues(Object.assign(Object.assign({}, overridedValues), (shouldLoadTranslation ? translationsMap[locale] : {})));
}, [shouldLoadTranslation, locale]);
const contextValue = useMemo(() => {
if (!values) {
return null;
}
return {
locale,
values,
};
}, [locale, values]);
useEffect(() => {
if (onTranslationsLoaded && Object.keys(values).length) {
onTranslationsLoaded(values);
}
}, [values]);
return (React__default.createElement(TranslationsContext.Provider, { value: contextValue }, contextValue ? children : loader));
};
export { TranslationsProvider as T, translationsMap as t };