@novin-dev/formalite
Version:
Generate MUI form with few line of code
31 lines (28 loc) • 1.37 kB
JavaScript
import React, { createContext, useContext, useState, useEffect, useCallback, useMemo } from 'react';
var DefaultLanguage = "en";
var i18nContext = createContext({});
var useI18nContext = function () {
return useContext(i18nContext);
};
var I18nProvider = function (_a) {
var children = _a.children, _b = _a.targetLang, targetLang = _b === void 0 ? DefaultLanguage : _b, resources = _a.resources;
var _c = useState(targetLang), lang = _c[0], setLang = _c[1];
var changeLanguage = function (selectedLanguage) {
setLang(selectedLanguage);
};
useEffect(function () {
changeLanguage(targetLang);
}, [targetLang]);
var t = useCallback(function (key) {
var _a, _b;
return (((_a = resources === null || resources === void 0 ? void 0 : resources[lang]) === null || _a === void 0 ? void 0 : _a[key]) || ((_b = resources === null || resources === void 0 ? void 0 : resources[DefaultLanguage]) === null || _b === void 0 ? void 0 : _b[key]) || key);
}, [lang, resources]);
var values = useMemo(function () { return ({
lang: lang,
changeLanguage: changeLanguage,
t: t,
}); }, [lang, t]);
return React.createElement(i18nContext.Provider, { value: values }, children);
};
export { I18nProvider, useI18nContext };
//# sourceMappingURL=I18nProvider.js.map