@novin-dev/formalite
Version:
Generate MUI form with few line of code
40 lines (33 loc) • 1.65 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var DefaultLanguage = "en";
var i18nContext = React.createContext({});
var useI18nContext = function () {
return React.useContext(i18nContext);
};
var I18nProvider = function (_a) {
var children = _a.children, _b = _a.targetLang, targetLang = _b === void 0 ? DefaultLanguage : _b, resources = _a.resources;
var _c = React.useState(targetLang), lang = _c[0], setLang = _c[1];
var changeLanguage = function (selectedLanguage) {
setLang(selectedLanguage);
};
React.useEffect(function () {
changeLanguage(targetLang);
}, [targetLang]);
var t = React.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 = React.useMemo(function () { return ({
lang: lang,
changeLanguage: changeLanguage,
t: t,
}); }, [lang, t]);
return React__default["default"].createElement(i18nContext.Provider, { value: values }, children);
};
exports.I18nProvider = I18nProvider;
exports.useI18nContext = useI18nContext;
//# sourceMappingURL=I18nProvider.js.map