payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
121 lines (120 loc) • 10.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
LocaleProvider: function() {
return LocaleProvider;
},
default: function() {
return _default;
},
useLocale: function() {
return useLocale;
}
});
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
const _findLocaleFromCode = require("../../../../utilities/findLocaleFromCode");
const _Auth = require("../Auth");
const _Config = require("../Config");
const _Preferences = require("../Preferences");
const _SearchParams = require("../SearchParams");
function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = new WeakMap();
var cacheNodeInterop = new WeakMap();
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}
function _interop_require_wildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj;
}
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
return {
default: obj
};
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {
__proto__: null
};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for(var key in obj){
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
const LocaleContext = /*#__PURE__*/ (0, _react.createContext)({});
const LocaleProvider = ({ children })=>{
const { localization } = (0, _Config.useConfig)();
const { user } = (0, _Auth.useAuth)();
const defaultLocale = localization && localization.defaultLocale ? localization.defaultLocale : 'en';
const searchParams = (0, _SearchParams.useSearchParams)();
const [localeCode, setLocaleCode] = (0, _react.useState)(searchParams?.locale || defaultLocale);
const [locale, setLocale] = (0, _react.useState)(localization && (0, _findLocaleFromCode.findLocaleFromCode)(localization, localeCode));
const { getPreference, setPreference } = (0, _Preferences.usePreferences)();
const localeFromParams = searchParams.locale;
(0, _react.useEffect)(()=>{
if (!localization) {
return;
}
// set locale from search param
if (localeFromParams && localization.localeCodes.indexOf(localeFromParams) > -1) {
setLocaleCode(localeFromParams);
setLocale((0, _findLocaleFromCode.findLocaleFromCode)(localization, localeFromParams));
if (user) setPreference('locale', localeFromParams);
return;
}
(async ()=>{
let preferenceLocale;
let isPreferenceInConfig;
if (user) {
preferenceLocale = await getPreference('locale');
isPreferenceInConfig = preferenceLocale && localization.localeCodes.indexOf(preferenceLocale) > -1;
if (isPreferenceInConfig) {
setLocaleCode(preferenceLocale);
setLocale((0, _findLocaleFromCode.findLocaleFromCode)(localization, preferenceLocale));
return;
}
setPreference('locale', defaultLocale);
}
setLocaleCode(defaultLocale);
setLocale((0, _findLocaleFromCode.findLocaleFromCode)(localization, defaultLocale));
})();
}, [
defaultLocale,
getPreference,
localeFromParams,
setPreference,
user,
localization
]);
return /*#__PURE__*/ _react.default.createElement(LocaleContext.Provider, {
value: locale
}, children);
};
const useLocale = ()=>(0, _react.useContext)(LocaleContext);
const _default = LocaleContext;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9Mb2NhbGUvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgTG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaW5kTG9jYWxlRnJvbUNvZGUgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXRpZXMvZmluZExvY2FsZUZyb21Db2RlJ1xuaW1wb3J0IHsgdXNlQXV0aCB9IGZyb20gJy4uL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi9Db25maWcnXG5pbXBvcnQgeyB1c2VQcmVmZXJlbmNlcyB9IGZyb20gJy4uL1ByZWZlcmVuY2VzJ1xuaW1wb3J0IHsgdXNlU2VhcmNoUGFyYW1zIH0gZnJvbSAnLi4vU2VhcmNoUGFyYW1zJ1xuXG5jb25zdCBMb2NhbGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7fSBhcyBMb2NhbGUpXG5cbmV4cG9ydCBjb25zdCBMb2NhbGVQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZSB9PiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgeyBsb2NhbGl6YXRpb24gfSA9IHVzZUNvbmZpZygpXG5cbiAgY29uc3QgeyB1c2VyIH0gPSB1c2VBdXRoKClcbiAgY29uc3QgZGVmYXVsdExvY2FsZSA9XG4gICAgbG9jYWxpemF0aW9uICYmIGxvY2FsaXphdGlvbi5kZWZhdWx0TG9jYWxlID8gbG9jYWxpemF0aW9uLmRlZmF1bHRMb2NhbGUgOiAnZW4nXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHVzZVNlYXJjaFBhcmFtcygpXG4gIGNvbnN0IFtsb2NhbGVDb2RlLCBzZXRMb2NhbGVDb2RlXSA9IHVzZVN0YXRlPHN0cmluZz4oXG4gICAgKHNlYXJjaFBhcmFtcz8ubG9jYWxlIGFzIHN0cmluZykgfHwgZGVmYXVsdExvY2FsZSxcbiAgKVxuICBjb25zdCBbbG9jYWxlLCBzZXRMb2NhbGVdID0gdXNlU3RhdGU8TG9jYWxlIHwgbnVsbD4oXG4gICAgbG9jYWxpemF0aW9uICYmIGZpbmRMb2NhbGVGcm9tQ29kZShsb2NhbGl6YXRpb24sIGxvY2FsZUNvZGUpLFxuICApXG4gIGNvbnN0IHsgZ2V0UHJlZmVyZW5jZSwgc2V0UHJlZmVyZW5jZSB9ID0gdXNlUHJlZmVyZW5jZXMoKVxuICBjb25zdCBsb2NhbGVGcm9tUGFyYW1zID0gc2VhcmNoUGFyYW1zLmxvY2FsZVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFsb2NhbGl6YXRpb24pIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIHNldCBsb2NhbGUgZnJvbSBzZWFyY2ggcGFyYW1cbiAgICBpZiAobG9jYWxlRnJvbVBhcmFtcyAmJiBsb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMuaW5kZXhPZihsb2NhbGVGcm9tUGFyYW1zIGFzIHN0cmluZykgPiAtMSkge1xuICAgICAgc2V0TG9jYWxlQ29kZShsb2NhbGVGcm9tUGFyYW1zIGFzIHN0cmluZylcbiAgICAgIHNldExvY2FsZShmaW5kTG9jYWxlRnJvbUNvZGUobG9jYWxpemF0aW9uLCBsb2NhbGVGcm9tUGFyYW1zIGFzIHN0cmluZykpXG4gICAgICBpZiAodXNlcikgc2V0UHJlZmVyZW5jZSgnbG9jYWxlJywgbG9jYWxlRnJvbVBhcmFtcylcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIHNldCBsb2NhbGUgZnJvbSBwcmVmZXJlbmNlcyBvciBkZWZhdWx0XG4gICAgOyhhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgcHJlZmVyZW5jZUxvY2FsZTogc3RyaW5nXG4gICAgICBsZXQgaXNQcmVmZXJlbmNlSW5Db25maWc6IGJvb2xlYW5cbiAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgIHByZWZlcmVuY2VMb2NhbGUgPSBhd2FpdCBnZXRQcmVmZXJlbmNlPHN0cmluZz4oJ2xvY2FsZScpXG4gICAgICAgIGlzUHJlZmVyZW5jZUluQ29uZmlnID1cbiAgICAgICAgICBwcmVmZXJlbmNlTG9jYWxlICYmIGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5pbmRleE9mKHByZWZlcmVuY2VMb2NhbGUpID4gLTFcbiAgICAgICAgaWYgKGlzUHJlZmVyZW5jZUluQ29uZmlnKSB7XG4gICAgICAgICAgc2V0TG9jYWxlQ29kZShwcmVmZXJlbmNlTG9jYWxlKVxuICAgICAgICAgIHNldExvY2FsZShmaW5kTG9jYWxlRnJvbUNvZGUobG9jYWxpemF0aW9uLCBwcmVmZXJlbmNlTG9jYWxlKSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBzZXRQcmVmZXJlbmNlKCdsb2NhbGUnLCBkZWZhdWx0TG9jYWxlKVxuICAgICAgfVxuICAgICAgc2V0TG9jYWxlQ29kZShkZWZhdWx0TG9jYWxlKVxuICAgICAgc2V0TG9jYWxlKGZpbmRMb2NhbGVGcm9tQ29kZShsb2NhbGl6YXRpb24sIGRlZmF1bHRMb2NhbGUpKVxuICAgIH0pKClcbiAgfSwgW2RlZmF1bHRMb2NhbGUsIGdldFByZWZlcmVuY2UsIGxvY2FsZUZyb21QYXJhbXMsIHNldFByZWZlcmVuY2UsIHVzZXIsIGxvY2FsaXphdGlvbl0pXG5cbiAgcmV0dXJuIDxMb2NhbGVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtsb2NhbGV9PntjaGlsZHJlbn08L0xvY2FsZUNvbnRleHQuUHJvdmlkZXI+XG59XG5cbi8qKlxuICogQSBob29rIHRoYXQgcmV0dXJucyB0aGUgY3VycmVudCBsb2NhbGUgb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3QgdXNlTG9jYWxlID0gKCk6IExvY2FsZSA9PiB1c2VDb250ZXh0KExvY2FsZUNvbnRleHQpXG5cbmV4cG9ydCBkZWZhdWx0IExvY2FsZUNvbnRleHRcbiJdLCJuYW1lcyI6WyJMb2NhbGVQcm92aWRlciIsInVzZUxvY2FsZSIsIkxvY2FsZUNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiY2hpbGRyZW4iLCJsb2NhbGl6YXRpb24iLCJ1c2VDb25maWciLCJ1c2VyIiwidXNlQXV0aCIsImRlZmF1bHRMb2NhbGUiLCJzZWFyY2hQYXJhbXMiLCJ1c2VTZWFyY2hQYXJhbXMiLCJsb2NhbGVDb2RlIiwic2V0TG9jYWxlQ29kZSIsInVzZVN0YXRlIiwibG9jYWxlIiwic2V0TG9jYWxlIiwiZmluZExvY2FsZUZyb21Db2RlIiwiZ2V0UHJlZmVyZW5jZSIsInNldFByZWZlcmVuY2UiLCJ1c2VQcmVmZXJlbmNlcyIsImxvY2FsZUZyb21QYXJhbXMiLCJ1c2VFZmZlY3QiLCJsb2NhbGVDb2RlcyIsImluZGV4T2YiLCJwcmVmZXJlbmNlTG9jYWxlIiwiaXNQcmVmZXJlbmNlSW5Db25maWciLCJQcm92aWRlciIsInZhbHVlIiwidXNlQ29udGV4dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFZYUEsY0FBYztlQUFkQTs7SUF5RGIsT0FBNEI7ZUFBNUI7O0lBRmFDLFNBQVM7ZUFBVEE7OzsrREFuRXlEO29DQUluQztzQkFDWDt3QkFDRTs2QkFDSzs4QkFDQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWhDLE1BQU1DLDhCQUFnQkMsSUFBQUEsb0JBQWEsRUFBQyxDQUFDO0FBRTlCLE1BQU1ILGlCQUEyRCxDQUFDLEVBQUVJLFFBQVEsRUFBRTtJQUNuRixNQUFNLEVBQUVDLFlBQVksRUFBRSxHQUFHQyxJQUFBQSxpQkFBUztJQUVsQyxNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyxJQUFBQSxhQUFPO0lBQ3hCLE1BQU1DLGdCQUNKSixnQkFBZ0JBLGFBQWFJLGFBQWEsR0FBR0osYUFBYUksYUFBYSxHQUFHO0lBQzVFLE1BQU1DLGVBQWVDLElBQUFBLDZCQUFlO0lBQ3BDLE1BQU0sQ0FBQ0MsWUFBWUMsY0FBYyxHQUFHQyxJQUFBQSxlQUFRLEVBQzFDLEFBQUNKLGNBQWNLLFVBQXFCTjtJQUV0QyxNQUFNLENBQUNNLFFBQVFDLFVBQVUsR0FBR0YsSUFBQUEsZUFBUSxFQUNsQ1QsZ0JBQWdCWSxJQUFBQSxzQ0FBa0IsRUFBQ1osY0FBY087SUFFbkQsTUFBTSxFQUFFTSxhQUFhLEVBQUVDLGFBQWEsRUFBRSxHQUFHQyxJQUFBQSwyQkFBYztJQUN2RCxNQUFNQyxtQkFBbUJYLGFBQWFLLE1BQU07SUFFNUNPLElBQUFBLGdCQUFTLEVBQUM7UUFDUixJQUFJLENBQUNqQixjQUFjO1lBQ2pCO1FBQ0Y7UUFFQSwrQkFBK0I7UUFDL0IsSUFBSWdCLG9CQUFvQmhCLGFBQWFrQixXQUFXLENBQUNDLE9BQU8sQ0FBQ0gsb0JBQThCLENBQUMsR0FBRztZQUN6RlIsY0FBY1E7WUFDZEwsVUFBVUMsSUFBQUEsc0NBQWtCLEVBQUNaLGNBQWNnQjtZQUMzQyxJQUFJZCxNQUFNWSxjQUFjLFVBQVVFO1lBQ2xDO1FBQ0Y7UUFHRSxDQUFBO1lBQ0EsSUFBSUk7WUFDSixJQUFJQztZQUNKLElBQUluQixNQUFNO2dCQUNSa0IsbUJBQW1CLE1BQU1QLGNBQXNCO2dCQUMvQ1EsdUJBQ0VELG9CQUFvQnBCLGFBQWFrQixXQUFXLENBQUNDLE9BQU8sQ0FBQ0Msb0JBQW9CLENBQUM7Z0JBQzVFLElBQUlDLHNCQUFzQjtvQkFDeEJiLGNBQWNZO29CQUNkVCxVQUFVQyxJQUFBQSxzQ0FBa0IsRUFBQ1osY0FBY29CO29CQUMzQztnQkFDRjtnQkFDQU4sY0FBYyxVQUFVVjtZQUMxQjtZQUNBSSxjQUFjSjtZQUNkTyxVQUFVQyxJQUFBQSxzQ0FBa0IsRUFBQ1osY0FBY0k7UUFDN0MsQ0FBQTtJQUNGLEdBQUc7UUFBQ0E7UUFBZVM7UUFBZUc7UUFBa0JGO1FBQWVaO1FBQU1GO0tBQWE7SUFFdEYscUJBQU8sNkJBQUNILGNBQWN5QixRQUFRO1FBQUNDLE9BQU9iO09BQVNYO0FBQ2pEO0FBS08sTUFBTUgsWUFBWSxJQUFjNEIsSUFBQUEsaUJBQVUsRUFBQzNCO01BRWxELFdBQWVBIn0=