UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

121 lines (120 loc) 10.5 kB
"use strict"; 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=