@edx/unit-title-plugin 1.0.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/translation-button/translation-selection/useSelectLanguage.js +9 -26
- package/dist/translation-button/translation-selection/useSelectLanguage.js.map +1 -1
- package/dist/translations-error/index.js +93 -0
- package/dist/translations-error/index.js.map +1 -0
- package/dist/translations-error/messages.js +36 -0
- package/dist/translations-error/messages.js.map +1 -0
- package/dist/translations-loader/index.js +12 -18
- package/dist/translations-loader/index.js.map +1 -1
- package/dist/utils/localStorage.js +40 -0
- package/dist/utils/localStorage.js.map +1 -0
- package/dist/utils/performance.js +16 -0
- package/dist/utils/performance.js.map +1 -0
- package/dist/utils/useTranslationInfo.js +33 -0
- package/dist/utils/useTranslationInfo.js.map +1 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -4,6 +4,12 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
+
Object.defineProperty(exports, "TranslationsError", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _translationsError["default"];
|
|
11
|
+
}
|
|
12
|
+
});
|
|
7
13
|
Object.defineProperty(exports, "TranslationsLoader", {
|
|
8
14
|
enumerable: true,
|
|
9
15
|
get: function get() {
|
|
@@ -18,6 +24,7 @@ var _i18n2 = _interopRequireDefault(require("./i18n"));
|
|
|
18
24
|
var _LegacyUnitTitle = _interopRequireDefault(require("./LegacyUnitTitle"));
|
|
19
25
|
var _UnitTitle = _interopRequireDefault(require("./UnitTitle"));
|
|
20
26
|
var _translationsLoader = _interopRequireDefault(require("./translations-loader"));
|
|
27
|
+
var _translationsError = _interopRequireDefault(require("./translations-error"));
|
|
21
28
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
29
|
var _excluded = ["isEnabledOutlineSidebar", "renderUnitNavigation"];
|
|
23
30
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_frontendPlatform","_i18n2","_LegacyUnitTitle","_UnitTitle","_translationsLoader","_jsxRuntime","_excluded","e","__esModule","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","indexOf","propertyIsEnumerable","hasOwnProperty","subscribe","APP_I18N_INITIALIZED","mergeMessages","messages","UnitTitlePlugin","_ref","isEnabledOutlineSidebar","renderUnitNavigation","props","jsx","navigation","propTypes","dispatch","PropTypes","func","isRequired","id","string","bool","unitId","unit","shape","title","bookmarked","bookmarkedUpdateState","_default","exports"],"sources":["../src/index.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { mergeMessages } from '@edx/frontend-platform/i18n';\nimport { APP_I18N_INITIALIZED, subscribe } from '@edx/frontend-platform';\n\nimport messages from './i18n';\nimport LegacyUnitTitle from './LegacyUnitTitle';\nimport UnitTitle from './UnitTitle';\nimport TranslationsLoader from './translations-loader';\n\nsubscribe(APP_I18N_INITIALIZED, () => {\n mergeMessages(messages);\n});\n\nconst UnitTitlePlugin = ({\n isEnabledOutlineSidebar,\n renderUnitNavigation,\n ...props\n}) => {\n if (isEnabledOutlineSidebar) {\n return <UnitTitle {...props} navigation={renderUnitNavigation(true)} />;\n }\n\n return <LegacyUnitTitle {...props} />;\n};\n\nUnitTitlePlugin.propTypes = {\n dispatch: PropTypes.func.isRequired,\n id: PropTypes.string.isRequired,\n isEnabledOutlineSidebar: PropTypes.bool.isRequired,\n renderUnitNavigation: PropTypes.func.isRequired,\n unitId: PropTypes.string.isRequired,\n unit: PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n bookmarked: PropTypes.bool.isRequired,\n bookmarkedUpdateState: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default UnitTitlePlugin;\nexport { TranslationsLoader };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_frontendPlatform","_i18n2","_LegacyUnitTitle","_UnitTitle","_translationsLoader","_translationsError","_jsxRuntime","_excluded","e","__esModule","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","indexOf","propertyIsEnumerable","hasOwnProperty","subscribe","APP_I18N_INITIALIZED","mergeMessages","messages","UnitTitlePlugin","_ref","isEnabledOutlineSidebar","renderUnitNavigation","props","jsx","navigation","propTypes","dispatch","PropTypes","func","isRequired","id","string","bool","unitId","unit","shape","title","bookmarked","bookmarkedUpdateState","_default","exports"],"sources":["../src/index.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { mergeMessages } from '@edx/frontend-platform/i18n';\nimport { APP_I18N_INITIALIZED, subscribe } from '@edx/frontend-platform';\n\nimport messages from './i18n';\nimport LegacyUnitTitle from './LegacyUnitTitle';\nimport UnitTitle from './UnitTitle';\nimport TranslationsLoader from './translations-loader';\nimport TranslationsError from './translations-error';\n\nsubscribe(APP_I18N_INITIALIZED, () => {\n mergeMessages(messages);\n});\n\nconst UnitTitlePlugin = ({\n isEnabledOutlineSidebar,\n renderUnitNavigation,\n ...props\n}) => {\n if (isEnabledOutlineSidebar) {\n return <UnitTitle {...props} navigation={renderUnitNavigation(true)} />;\n }\n\n return <LegacyUnitTitle {...props} />;\n};\n\nUnitTitlePlugin.propTypes = {\n dispatch: PropTypes.func.isRequired,\n id: PropTypes.string.isRequired,\n isEnabledOutlineSidebar: PropTypes.bool.isRequired,\n renderUnitNavigation: PropTypes.func.isRequired,\n unitId: PropTypes.string.isRequired,\n unit: PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n bookmarked: PropTypes.bool.isRequired,\n bookmarkedUpdateState: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default UnitTitlePlugin;\nexport { TranslationsLoader, TranslationsError };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,40 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports
|
|
6
|
+
exports["default"] = void 0;
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
var
|
|
10
|
-
var _localStorage = require("
|
|
11
|
-
function
|
|
12
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
14
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
15
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
|
-
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
17
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
18
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
19
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
20
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
21
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
22
|
-
var selectedLanguageKey = exports.selectedLanguageKey = 'selectedLanguages';
|
|
23
|
-
var stateKeys = exports.stateKeys = (0, _reactUnitTestUtils.StrictDict)({
|
|
24
|
-
selectedLanguage: 'selectedLanguage'
|
|
25
|
-
});
|
|
8
|
+
var _useTranslationInfo2 = _interopRequireDefault(require("../../utils/useTranslationInfo"));
|
|
9
|
+
var _localStorage = require("../../utils/localStorage");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
26
11
|
var useSelectLanguage = function useSelectLanguage(_ref) {
|
|
27
12
|
var courseId = _ref.courseId,
|
|
28
13
|
courseLanguage = _ref.courseLanguage,
|
|
29
14
|
_ref$availableLanguag = _ref.availableLanguages,
|
|
30
15
|
availableLanguages = _ref$availableLanguag === void 0 ? [] : _ref$availableLanguag;
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
selectedLanguage = _useKeyedState2[0],
|
|
35
|
-
updateSelectedLanguage = _useKeyedState2[1];
|
|
16
|
+
var _useTranslationInfo = (0, _useTranslationInfo2["default"])(courseId),
|
|
17
|
+
selectedLanguage = _useTranslationInfo.selectedLanguage,
|
|
18
|
+
updateSelectedLanguage = _useTranslationInfo.updateSelectedLanguage;
|
|
36
19
|
var setSelectedLanguage = (0, _react.useCallback)(function (newSelectedLanguage) {
|
|
37
|
-
(0, _localStorage.
|
|
20
|
+
(0, _localStorage.setLocalStorageLanguage)(courseId, newSelectedLanguage);
|
|
38
21
|
updateSelectedLanguage(newSelectedLanguage);
|
|
39
22
|
});
|
|
40
23
|
var isValidSelectedLanguage = availableLanguages.some(function (lang) {
|
|
@@ -42,7 +25,7 @@ var useSelectLanguage = function useSelectLanguage(_ref) {
|
|
|
42
25
|
});
|
|
43
26
|
var validLanguage = isValidSelectedLanguage ? selectedLanguage : courseLanguage;
|
|
44
27
|
if (!isValidSelectedLanguage) {
|
|
45
|
-
(0, _localStorage.
|
|
28
|
+
(0, _localStorage.setLocalStorageLanguage)(courseId, validLanguage);
|
|
46
29
|
}
|
|
47
30
|
return {
|
|
48
31
|
selectedLanguage: validLanguage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectLanguage.js","names":["_react","require","
|
|
1
|
+
{"version":3,"file":"useSelectLanguage.js","names":["_react","require","_useTranslationInfo2","_interopRequireDefault","_localStorage","e","__esModule","useSelectLanguage","_ref","courseId","courseLanguage","_ref$availableLanguag","availableLanguages","_useTranslationInfo","useTranslationInfo","selectedLanguage","updateSelectedLanguage","setSelectedLanguage","useCallback","newSelectedLanguage","setLocalStorageLanguage","isValidSelectedLanguage","some","lang","code","validLanguage","_default","exports"],"sources":["../../../src/translation-button/translation-selection/useSelectLanguage.js"],"sourcesContent":["import { useCallback } from 'react';\nimport useTranslationInfo from '../../utils/useTranslationInfo';\nimport { setLocalStorageLanguage } from '../../utils/localStorage';\n\nconst useSelectLanguage = ({ courseId, courseLanguage, availableLanguages = [] }) => {\n const {\n selectedLanguage,\n updateSelectedLanguage,\n } = useTranslationInfo(courseId);\n\n const setSelectedLanguage = useCallback((newSelectedLanguage) => {\n setLocalStorageLanguage(courseId, newSelectedLanguage);\n updateSelectedLanguage(newSelectedLanguage);\n });\n\n const isValidSelectedLanguage = availableLanguages.some(lang => lang.code === selectedLanguage);\n const validLanguage = isValidSelectedLanguage ? selectedLanguage : courseLanguage;\n\n if (!isValidSelectedLanguage) {\n setLocalStorageLanguage(courseId, validLanguage);\n }\n\n return {\n selectedLanguage: validLanguage,\n setSelectedLanguage,\n };\n};\n\nexport default useSelectLanguage;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAAmE,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAEnE,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAA8D;EAAA,IAAxDC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,cAAc,GAAAF,IAAA,CAAdE,cAAc;IAAAC,qBAAA,GAAAH,IAAA,CAAEI,kBAAkB;IAAlBA,kBAAkB,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;EAC5E,IAAAE,mBAAA,GAGI,IAAAC,+BAAkB,EAACL,QAAQ,CAAC;IAF9BM,gBAAgB,GAAAF,mBAAA,CAAhBE,gBAAgB;IAChBC,sBAAsB,GAAAH,mBAAA,CAAtBG,sBAAsB;EAGxB,IAAMC,mBAAmB,GAAG,IAAAC,kBAAW,EAAC,UAACC,mBAAmB,EAAK;IAC/D,IAAAC,qCAAuB,EAACX,QAAQ,EAAEU,mBAAmB,CAAC;IACtDH,sBAAsB,CAACG,mBAAmB,CAAC;EAC7C,CAAC,CAAC;EAEF,IAAME,uBAAuB,GAAGT,kBAAkB,CAACU,IAAI,CAAC,UAAAC,IAAI;IAAA,OAAIA,IAAI,CAACC,IAAI,KAAKT,gBAAgB;EAAA,EAAC;EAC/F,IAAMU,aAAa,GAAGJ,uBAAuB,GAAGN,gBAAgB,GAAGL,cAAc;EAEjF,IAAI,CAACW,uBAAuB,EAAE;IAC5B,IAAAD,qCAAuB,EAACX,QAAQ,EAAEgB,aAAa,CAAC;EAClD;EAEA,OAAO;IACLV,gBAAgB,EAAEU,aAAa;IAC/BR,mBAAmB,EAAnBA;EACF,CAAC;AACH,CAAC;AAAC,IAAAS,QAAA,GAAAC,OAAA,cAEapB,iBAAiB","ignoreList":[]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
11
|
+
var _react2 = require("@edx/frontend-platform/react");
|
|
12
|
+
var _paragon = require("@openedx/paragon");
|
|
13
|
+
var _messages = _interopRequireDefault(require("./messages"));
|
|
14
|
+
var _useTranslationInfo2 = _interopRequireDefault(require("../utils/useTranslationInfo"));
|
|
15
|
+
var _localStorage = require("../utils/localStorage");
|
|
16
|
+
var _performance = require("../utils/performance");
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
19
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
20
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
21
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
22
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
23
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
24
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
25
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
26
|
+
var TranslationsError = function TranslationsError(_ref) {
|
|
27
|
+
var courseId = _ref.courseId;
|
|
28
|
+
var _useIntl = (0, _i18n.useIntl)(),
|
|
29
|
+
formatMessage = _useIntl.formatMessage;
|
|
30
|
+
var _useTranslationInfo = (0, _useTranslationInfo2["default"])(courseId),
|
|
31
|
+
isTranslating = _useTranslationInfo.isTranslating;
|
|
32
|
+
var _useState = (0, _react.useState)(null),
|
|
33
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
34
|
+
isTimeoutError = _useState2[0],
|
|
35
|
+
setIsTimeoutError = _useState2[1];
|
|
36
|
+
(0, _react.useEffect)(function () {
|
|
37
|
+
var _window$performance, _window$performance$m, _window$performance2, _window$performance2$;
|
|
38
|
+
(_window$performance = window.performance) === null || _window$performance === void 0 || (_window$performance$m = _window$performance.mark) === null || _window$performance$m === void 0 || _window$performance$m.call(_window$performance, _performance.translationPerformanceKeys.errorKey);
|
|
39
|
+
var loadingMeasure = (_window$performance2 = window.performance) === null || _window$performance2 === void 0 || (_window$performance2$ = _window$performance2.measure) === null || _window$performance2$ === void 0 ? void 0 : _window$performance2$.call(_window$performance2, _performance.translationPerformanceKeys.measureName, _performance.translationPerformanceKeys.loadKey, _performance.translationPerformanceKeys.errorKey);
|
|
40
|
+
setIsTimeoutError(loadingMeasure && loadingMeasure.duration > _performance.LONG_LOAD_NOTIFICATION_TIMEOUT);
|
|
41
|
+
}, []);
|
|
42
|
+
var reload = function reload() {
|
|
43
|
+
window.location.reload();
|
|
44
|
+
};
|
|
45
|
+
var revertToOriginalLanguage = function revertToOriginalLanguage() {
|
|
46
|
+
(0, _localStorage.clearLocalStorageLanguage)(courseId);
|
|
47
|
+
reload();
|
|
48
|
+
};
|
|
49
|
+
var errorMessage;
|
|
50
|
+
if (isTimeoutError === null) {
|
|
51
|
+
errorMessage = '';
|
|
52
|
+
} else {
|
|
53
|
+
var specificMessage;
|
|
54
|
+
if (isTimeoutError) {
|
|
55
|
+
specificMessage = formatMessage(_messages["default"].timeoutErrorMessage);
|
|
56
|
+
} else {
|
|
57
|
+
specificMessage = formatMessage(_messages["default"].errorMessage);
|
|
58
|
+
}
|
|
59
|
+
errorMessage = "".concat(specificMessage, " ").concat(formatMessage(_messages["default"].commonErrorMessage));
|
|
60
|
+
}
|
|
61
|
+
return isTranslating ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Container, {
|
|
62
|
+
fluid: true,
|
|
63
|
+
className: "py-5 justify-content-center align-items-start text-center",
|
|
64
|
+
"data-testid": "error-page",
|
|
65
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Row, {
|
|
66
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Col, {
|
|
67
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
68
|
+
className: "text-muted",
|
|
69
|
+
children: errorMessage
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Row, {
|
|
73
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Col, {
|
|
74
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
|
|
75
|
+
className: "mx-5 my-1",
|
|
76
|
+
as: "a",
|
|
77
|
+
target: "_blank",
|
|
78
|
+
href: "https://help.edx.org/edxlearner/s/contactsupport",
|
|
79
|
+
children: formatMessage(_messages["default"].contactSupportButtonLabel)
|
|
80
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
|
|
81
|
+
className: "mx-5 my-1",
|
|
82
|
+
onClick: revertToOriginalLanguage,
|
|
83
|
+
children: formatMessage(_messages["default"].revertLanguageButtonLabel)
|
|
84
|
+
})]
|
|
85
|
+
})
|
|
86
|
+
})]
|
|
87
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.ErrorPage, {});
|
|
88
|
+
};
|
|
89
|
+
TranslationsError.propTypes = {
|
|
90
|
+
courseId: _propTypes["default"].string.isRequired
|
|
91
|
+
};
|
|
92
|
+
var _default = exports["default"] = TranslationsError;
|
|
93
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_i18n","_react2","_paragon","_messages","_useTranslationInfo2","_localStorage","_performance","_jsxRuntime","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","isArray","TranslationsError","_ref","courseId","_useIntl","useIntl","formatMessage","_useTranslationInfo","useTranslationInfo","isTranslating","_useState","useState","_useState2","isTimeoutError","setIsTimeoutError","useEffect","_window$performance","_window$performance$m","_window$performance2","_window$performance2$","window","performance","mark","translationPerformanceKeys","errorKey","loadingMeasure","measure","measureName","loadKey","duration","LONG_LOAD_NOTIFICATION_TIMEOUT","reload","location","revertToOriginalLanguage","clearLocalStorageLanguage","errorMessage","specificMessage","messages","timeoutErrorMessage","concat","commonErrorMessage","jsxs","Container","fluid","className","children","jsx","Row","Col","Button","as","target","href","contactSupportButtonLabel","onClick","revertLanguageButtonLabel","ErrorPage","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../src/translations-error/index.jsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { ErrorPage } from '@edx/frontend-platform/react';\nimport {\n Button, Container, Row, Col,\n} from '@openedx/paragon';\nimport messages from './messages';\n\nimport useTranslationInfo from '../utils/useTranslationInfo';\nimport { clearLocalStorageLanguage } from '../utils/localStorage';\nimport { translationPerformanceKeys, LONG_LOAD_NOTIFICATION_TIMEOUT } from '../utils/performance';\n\nconst TranslationsError = ({ courseId }) => {\n const { formatMessage } = useIntl();\n const { isTranslating } = useTranslationInfo(courseId);\n const [isTimeoutError, setIsTimeoutError] = useState(null);\n\n useEffect(() => {\n window.performance?.mark?.(translationPerformanceKeys.errorKey);\n const loadingMeasure = window.performance?.measure?.(\n translationPerformanceKeys.measureName,\n translationPerformanceKeys.loadKey,\n translationPerformanceKeys.errorKey,\n );\n setIsTimeoutError(loadingMeasure && loadingMeasure.duration > LONG_LOAD_NOTIFICATION_TIMEOUT);\n }, []);\n\n const reload = () => {\n window.location.reload();\n };\n\n const revertToOriginalLanguage = () => {\n clearLocalStorageLanguage(courseId);\n reload();\n };\n\n let errorMessage;\n if (isTimeoutError === null) {\n errorMessage = '';\n } else {\n let specificMessage;\n if (isTimeoutError) {\n specificMessage = formatMessage(messages.timeoutErrorMessage);\n } else {\n specificMessage = formatMessage(messages.errorMessage);\n }\n errorMessage = `${specificMessage} ${formatMessage(messages.commonErrorMessage)}`;\n }\n\n return isTranslating ? (\n <Container fluid className=\"py-5 justify-content-center align-items-start text-center\" data-testid=\"error-page\">\n <Row>\n <Col>\n <p className=\"text-muted\">{ errorMessage }</p>\n </Col>\n </Row>\n <Row>\n <Col>\n <Button\n className=\"mx-5 my-1\"\n as=\"a\"\n target=\"_blank\"\n href=\"https://help.edx.org/edxlearner/s/contactsupport\"\n >\n {formatMessage(messages.contactSupportButtonLabel)}\n </Button>\n <Button\n className=\"mx-5 my-1\"\n onClick={revertToOriginalLanguage}\n >\n {formatMessage(messages.revertLanguageButtonLabel)}\n </Button>\n </Col>\n </Row>\n </Container>\n ) : (\n <ErrorPage />\n );\n};\n\nTranslationsError.propTypes = {\n courseId: PropTypes.string.isRequired,\n};\n\nexport default TranslationsError;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
8
|
+
var messages = (0, _i18n.defineMessages)({
|
|
9
|
+
errorMessage: {
|
|
10
|
+
id: 'translations.error.unexpected.message.text',
|
|
11
|
+
defaultMessage: 'Some content failed to translate. Please try again in a few minutes, contact support, or continue with non-translated content.',
|
|
12
|
+
description: 'error message when an unexpected error occurs'
|
|
13
|
+
},
|
|
14
|
+
timeoutErrorMessage: {
|
|
15
|
+
id: 'translations.error.timeout.message.text',
|
|
16
|
+
defaultMessage: 'Translating this content is taking longer than expected.',
|
|
17
|
+
description: 'error message when a timeout error occurs'
|
|
18
|
+
},
|
|
19
|
+
commonErrorMessage: {
|
|
20
|
+
id: 'translations.error.common.message.text',
|
|
21
|
+
defaultMessage: 'Please try again in a few minutes, contact support, or continue with non-translated content.',
|
|
22
|
+
description: 'error messaging common to both loading error messages'
|
|
23
|
+
},
|
|
24
|
+
revertLanguageButtonLabel: {
|
|
25
|
+
id: 'translations.error.revert.button.label',
|
|
26
|
+
defaultMessage: 'Show Non-Translated Content',
|
|
27
|
+
description: 'label for button that tries to reload by reverting language selection'
|
|
28
|
+
},
|
|
29
|
+
contactSupportButtonLabel: {
|
|
30
|
+
id: 'translations.error.support.button.label',
|
|
31
|
+
defaultMessage: 'Contact Support',
|
|
32
|
+
description: 'label for button that opens contact support page'
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
var _default = exports["default"] = messages;
|
|
36
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","errorMessage","id","defaultMessage","description","timeoutErrorMessage","commonErrorMessage","revertLanguageButtonLabel","contactSupportButtonLabel","_default","exports"],"sources":["../../src/translations-error/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n errorMessage: {\n id: 'translations.error.unexpected.message.text',\n defaultMessage: 'Some content failed to translate. Please try again in a few minutes, contact support, or continue with non-translated content.',\n description: 'error message when an unexpected error occurs',\n },\n timeoutErrorMessage: {\n id: 'translations.error.timeout.message.text',\n defaultMessage: 'Translating this content is taking longer than expected.',\n description: 'error message when a timeout error occurs',\n },\n commonErrorMessage: {\n id: 'translations.error.common.message.text',\n defaultMessage: 'Please try again in a few minutes, contact support, or continue with non-translated content.',\n description: 'error messaging common to both loading error messages',\n },\n revertLanguageButtonLabel: {\n id: 'translations.error.revert.button.label',\n defaultMessage: 'Show Non-Translated Content',\n description: 'label for button that tries to reload by reverting language selection',\n },\n contactSupportButtonLabel: {\n id: 'translations.error.support.button.label',\n defaultMessage: 'Contact Support',\n description: 'label for button that opens contact support page',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9BC,YAAY,EAAE;IACZC,EAAE,EAAE,4CAA4C;IAChDC,cAAc,EAAE,gIAAgI;IAChJC,WAAW,EAAE;EACf,CAAC;EACDC,mBAAmB,EAAE;IACnBH,EAAE,EAAE,yCAAyC;IAC7CC,cAAc,EAAE,0DAA0D;IAC1EC,WAAW,EAAE;EACf,CAAC;EACDE,kBAAkB,EAAE;IAClBJ,EAAE,EAAE,wCAAwC;IAC5CC,cAAc,EAAE,8FAA8F;IAC9GC,WAAW,EAAE;EACf,CAAC;EACDG,yBAAyB,EAAE;IACzBL,EAAE,EAAE,wCAAwC;IAC5CC,cAAc,EAAE,6BAA6B;IAC7CC,WAAW,EAAE;EACf,CAAC;EACDI,yBAAyB,EAAE;IACzBN,EAAE,EAAE,yCAAyC;IAC7CC,cAAc,EAAE,iBAAiB;IACjCC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,cAEYX,QAAQ","ignoreList":[]}
|
|
@@ -4,16 +4,15 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports
|
|
7
|
+
exports["default"] = exports.LONG_LOADING_DELAY_MS = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
-
var _reactUnitTestUtils = require("@edx/react-unit-test-utils");
|
|
11
|
-
var _modelStore = require("@src/generic/model-store");
|
|
12
10
|
var _i18n = require("@edx/frontend-platform/i18n");
|
|
13
|
-
var _localStorage = require("@src/data/localStorage");
|
|
14
11
|
var _messages = _interopRequireDefault(require("./messages"));
|
|
15
12
|
var _SVGLoader = _interopRequireDefault(require("./SVGLoader"));
|
|
16
13
|
require("./index.scss");
|
|
14
|
+
var _useTranslationInfo2 = _interopRequireDefault(require("../utils/useTranslationInfo"));
|
|
15
|
+
var _performance = require("../utils/performance");
|
|
17
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
19
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
@@ -23,29 +22,24 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
23
22
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
24
23
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
25
24
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
26
|
-
var selectedLanguageKey = exports.selectedLanguageKey = 'selectedLanguages';
|
|
27
|
-
var stateKeys = exports.stateKeys = (0, _reactUnitTestUtils.StrictDict)({
|
|
28
|
-
selectedLanguage: 'selectedLanguage'
|
|
29
|
-
});
|
|
30
25
|
var LONG_LOADING_DELAY_MS = exports.LONG_LOADING_DELAY_MS = 2000;
|
|
31
26
|
var TranslationsLoader = function TranslationsLoader(_ref) {
|
|
32
27
|
var courseId = _ref.courseId,
|
|
33
28
|
defaultLoaderComponent = _ref.defaultLoaderComponent;
|
|
34
29
|
var _useIntl = (0, _i18n.useIntl)(),
|
|
35
30
|
formatMessage = _useIntl.formatMessage;
|
|
36
|
-
var
|
|
37
|
-
|
|
38
|
-
var courseLanguage = language || 'en';
|
|
39
|
-
var selectedLanguageItem = (0, _localStorage.getLocalStorage)(selectedLanguageKey) || {};
|
|
40
|
-
var _useKeyedState = (0, _reactUnitTestUtils.useKeyedState)(stateKeys.selectedLanguage, selectedLanguageItem[courseId] || courseLanguage),
|
|
41
|
-
_useKeyedState2 = _slicedToArray(_useKeyedState, 1),
|
|
42
|
-
selectedLanguage = _useKeyedState2[0];
|
|
31
|
+
var _useTranslationInfo = (0, _useTranslationInfo2["default"])(courseId),
|
|
32
|
+
isTranslating = _useTranslationInfo.isTranslating;
|
|
43
33
|
var _useState = (0, _react.useState)(false),
|
|
44
34
|
_useState2 = _slicedToArray(_useState, 2),
|
|
45
35
|
showAdditionalMessage = _useState2[0],
|
|
46
36
|
setShowAdditionalMessage = _useState2[1];
|
|
47
37
|
(0, _react.useEffect)(function () {
|
|
48
|
-
|
|
38
|
+
var _window$performance, _window$performance$m;
|
|
39
|
+
(_window$performance = window.performance) === null || _window$performance === void 0 || (_window$performance$m = _window$performance.mark) === null || _window$performance$m === void 0 || _window$performance$m.call(_window$performance, _performance.translationPerformanceKeys.loadKey);
|
|
40
|
+
}, []);
|
|
41
|
+
(0, _react.useEffect)(function () {
|
|
42
|
+
if (isTranslating) {
|
|
49
43
|
var timer = setTimeout(function () {
|
|
50
44
|
setShowAdditionalMessage(true);
|
|
51
45
|
}, LONG_LOADING_DELAY_MS);
|
|
@@ -54,8 +48,8 @@ var TranslationsLoader = function TranslationsLoader(_ref) {
|
|
|
54
48
|
};
|
|
55
49
|
}
|
|
56
50
|
return undefined; // to remove linting error
|
|
57
|
-
}, [
|
|
58
|
-
return
|
|
51
|
+
}, [isTranslating]);
|
|
52
|
+
return isTranslating ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
59
53
|
className: "d-flex justify-content-center align-items-center flex-column",
|
|
60
54
|
id: "translating-loader-container",
|
|
61
55
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SVGLoader["default"], {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_i18n","_messages","_SVGLoader","_useTranslationInfo2","_performance","_jsxRuntime","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","isArray","LONG_LOADING_DELAY_MS","exports","TranslationsLoader","_ref","courseId","defaultLoaderComponent","_useIntl","useIntl","formatMessage","_useTranslationInfo","useTranslationInfo","isTranslating","_useState","useState","_useState2","showAdditionalMessage","setShowAdditionalMessage","useEffect","_window$performance","_window$performance$m","window","performance","mark","translationPerformanceKeys","loadKey","timer","setTimeout","clearTimeout","undefined","jsxs","className","id","children","jsx","messages","translatingLoaderText","translatingLoaderAdditionalTextFirstLine","translatingLoaderAdditionalTextWaitNote","propTypes","PropTypes","string","isRequired","node","_default"],"sources":["../../src/translations-loader/index.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport messages from './messages';\nimport SVGLoader from './SVGLoader';\nimport './index.scss';\nimport useTranslationInfo from '../utils/useTranslationInfo';\nimport { translationPerformanceKeys } from '../utils/performance';\n\nexport const LONG_LOADING_DELAY_MS = 2000;\n\nconst TranslationsLoader = ({ courseId, defaultLoaderComponent }) => {\n const { formatMessage } = useIntl();\n const { isTranslating } = useTranslationInfo(courseId);\n const [showAdditionalMessage, setShowAdditionalMessage] = useState(false);\n\n useEffect(() => {\n window.performance?.mark?.(translationPerformanceKeys.loadKey);\n }, []);\n\n useEffect(() => {\n if (isTranslating) {\n const timer = setTimeout(() => {\n setShowAdditionalMessage(true);\n }, LONG_LOADING_DELAY_MS);\n\n return () => clearTimeout(timer);\n }\n return undefined; // to remove linting error\n }, [isTranslating]);\n\n return isTranslating ? (\n <div\n className=\"d-flex justify-content-center align-items-center flex-column\"\n id=\"translating-loader-container\"\n >\n <SVGLoader />\n <p className=\"mt-2\" id=\"loader-text\">\n {formatMessage(messages.translatingLoaderText)}\n <span className=\"ellipsis-container\">\n <span>.</span>\n <span>.</span>\n <span>.</span>\n </span>\n </p>\n {showAdditionalMessage && (\n <p className=\"mt-2\" id=\"additional-message\">\n {formatMessage(messages.translatingLoaderAdditionalTextFirstLine)} <br />\n {formatMessage(messages.translatingLoaderAdditionalTextWaitNote)}\n </p>\n )}\n </div>\n ) : (\n defaultLoaderComponent\n );\n};\n\nTranslationsLoader.propTypes = {\n courseId: PropTypes.string.isRequired,\n defaultLoaderComponent: PropTypes.node.isRequired,\n};\n\nexport default TranslationsLoader;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setLocalStorageLanguage = exports.getLocalStorageLanguage = exports.clearLocalStorageLanguage = void 0;
|
|
7
|
+
var _localStorage = require("@src/data/localStorage");
|
|
8
|
+
var selectedLanguageKey = 'selectedLanguages';
|
|
9
|
+
var getLocalStorageKey = function getLocalStorageKey(courseId) {
|
|
10
|
+
return "".concat(selectedLanguageKey, ".").concat(courseId);
|
|
11
|
+
};
|
|
12
|
+
var setLocalStorageLanguage = exports.setLocalStorageLanguage = function setLocalStorageLanguage(courseId, languageCode) {
|
|
13
|
+
var localStorageKey = getLocalStorageKey(courseId);
|
|
14
|
+
(0, _localStorage.setLocalStorage)(localStorageKey, languageCode);
|
|
15
|
+
};
|
|
16
|
+
var clearLocalStorageLanguage = exports.clearLocalStorageLanguage = function clearLocalStorageLanguage(courseId) {
|
|
17
|
+
var localStorageKey = getLocalStorageKey(courseId);
|
|
18
|
+
(0, _localStorage.clearLocalStorage)(localStorageKey);
|
|
19
|
+
};
|
|
20
|
+
var convertObjectToIndividualEntries = function convertObjectToIndividualEntries() {
|
|
21
|
+
// Convert the old style of storing all settings in one big dict
|
|
22
|
+
// to storing an individual namespaced field for each course language setting
|
|
23
|
+
var selectedLanguageSettings = (0, _localStorage.getLocalStorage)(selectedLanguageKey);
|
|
24
|
+
if (selectedLanguageSettings === null) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
Object.keys(selectedLanguageSettings).forEach(function (courseId) {
|
|
28
|
+
setLocalStorageLanguage(courseId, selectedLanguageSettings[courseId]);
|
|
29
|
+
});
|
|
30
|
+
// Then erase the object
|
|
31
|
+
(0, _localStorage.clearLocalStorage)(selectedLanguageKey);
|
|
32
|
+
};
|
|
33
|
+
var getLocalStorageLanguage = exports.getLocalStorageLanguage = function getLocalStorageLanguage(courseId) {
|
|
34
|
+
if ((0, _localStorage.getLocalStorage)(selectedLanguageKey)) {
|
|
35
|
+
convertObjectToIndividualEntries();
|
|
36
|
+
}
|
|
37
|
+
var localStorageKey = getLocalStorageKey(courseId);
|
|
38
|
+
return (0, _localStorage.getLocalStorage)(localStorageKey);
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=localStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localStorage.js","names":["_localStorage","require","selectedLanguageKey","getLocalStorageKey","courseId","concat","setLocalStorageLanguage","exports","languageCode","localStorageKey","setLocalStorage","clearLocalStorageLanguage","clearLocalStorage","convertObjectToIndividualEntries","selectedLanguageSettings","getLocalStorage","Object","keys","forEach","getLocalStorageLanguage"],"sources":["../../src/utils/localStorage.js"],"sourcesContent":["import {\n getLocalStorage,\n setLocalStorage,\n clearLocalStorage,\n} from '@src/data/localStorage';\n\nconst selectedLanguageKey = 'selectedLanguages';\nconst getLocalStorageKey = (courseId) => `${selectedLanguageKey}.${courseId}`;\n\nconst setLocalStorageLanguage = (courseId, languageCode) => {\n const localStorageKey = getLocalStorageKey(courseId);\n setLocalStorage(localStorageKey, languageCode);\n};\n\nconst clearLocalStorageLanguage = (courseId) => {\n const localStorageKey = getLocalStorageKey(courseId);\n clearLocalStorage(localStorageKey);\n};\n\nconst convertObjectToIndividualEntries = () => {\n // Convert the old style of storing all settings in one big dict\n // to storing an individual namespaced field for each course language setting\n const selectedLanguageSettings = getLocalStorage(selectedLanguageKey);\n if (selectedLanguageSettings === null) {\n return;\n }\n Object.keys(selectedLanguageSettings).forEach((courseId) => {\n setLocalStorageLanguage(courseId, selectedLanguageSettings[courseId]);\n });\n // Then erase the object\n clearLocalStorage(selectedLanguageKey);\n};\n\nconst getLocalStorageLanguage = (courseId) => {\n if (getLocalStorage(selectedLanguageKey)) {\n convertObjectToIndividualEntries();\n }\n const localStorageKey = getLocalStorageKey(courseId);\n return getLocalStorage(localStorageKey);\n};\n\nexport {\n getLocalStorageLanguage,\n setLocalStorageLanguage,\n clearLocalStorageLanguage,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAMA,IAAMC,mBAAmB,GAAG,mBAAmB;AAC/C,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,QAAQ;EAAA,UAAAC,MAAA,CAAQH,mBAAmB,OAAAG,MAAA,CAAID,QAAQ;AAAA,CAAE;AAE7E,IAAME,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,SAA1BA,uBAAuBA,CAAIF,QAAQ,EAAEI,YAAY,EAAK;EAC1D,IAAMC,eAAe,GAAGN,kBAAkB,CAACC,QAAQ,CAAC;EACpD,IAAAM,6BAAe,EAACD,eAAe,EAAED,YAAY,CAAC;AAChD,CAAC;AAED,IAAMG,yBAAyB,GAAAJ,OAAA,CAAAI,yBAAA,GAAG,SAA5BA,yBAAyBA,CAAIP,QAAQ,EAAK;EAC9C,IAAMK,eAAe,GAAGN,kBAAkB,CAACC,QAAQ,CAAC;EACpD,IAAAQ,+BAAiB,EAACH,eAAe,CAAC;AACpC,CAAC;AAED,IAAMI,gCAAgC,GAAG,SAAnCA,gCAAgCA,CAAA,EAAS;EAC7C;EACA;EACA,IAAMC,wBAAwB,GAAG,IAAAC,6BAAe,EAACb,mBAAmB,CAAC;EACrE,IAAIY,wBAAwB,KAAK,IAAI,EAAE;IACrC;EACF;EACAE,MAAM,CAACC,IAAI,CAACH,wBAAwB,CAAC,CAACI,OAAO,CAAC,UAACd,QAAQ,EAAK;IAC1DE,uBAAuB,CAACF,QAAQ,EAAEU,wBAAwB,CAACV,QAAQ,CAAC,CAAC;EACvE,CAAC,CAAC;EACF;EACA,IAAAQ,+BAAiB,EAACV,mBAAmB,CAAC;AACxC,CAAC;AAED,IAAMiB,uBAAuB,GAAAZ,OAAA,CAAAY,uBAAA,GAAG,SAA1BA,uBAAuBA,CAAIf,QAAQ,EAAK;EAC5C,IAAI,IAAAW,6BAAe,EAACb,mBAAmB,CAAC,EAAE;IACxCW,gCAAgC,CAAC,CAAC;EACpC;EACA,IAAMJ,eAAe,GAAGN,kBAAkB,CAACC,QAAQ,CAAC;EACpD,OAAO,IAAAW,6BAAe,EAACN,eAAe,CAAC;AACzC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.translationPerformanceKeys = exports.LONG_LOAD_NOTIFICATION_TIMEOUT = void 0;
|
|
7
|
+
var translationPerformanceKeys = exports.translationPerformanceKeys = {
|
|
8
|
+
loadKey: 'translationLoadingRendered',
|
|
9
|
+
errorKey: 'translationErrorRendered',
|
|
10
|
+
measureName: 'translationLoadToErrorTime'
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// Timeout (in milliseconds) to show feedback to the user that a translation is taking a long time to load.
|
|
14
|
+
// Usually due to this being the first time we're translating a unit.
|
|
15
|
+
var LONG_LOAD_NOTIFICATION_TIMEOUT = exports.LONG_LOAD_NOTIFICATION_TIMEOUT = 40000;
|
|
16
|
+
//# sourceMappingURL=performance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.js","names":["translationPerformanceKeys","exports","loadKey","errorKey","measureName","LONG_LOAD_NOTIFICATION_TIMEOUT"],"sources":["../../src/utils/performance.js"],"sourcesContent":["const translationPerformanceKeys = {\n loadKey: 'translationLoadingRendered',\n errorKey: 'translationErrorRendered',\n measureName: 'translationLoadToErrorTime',\n};\n\n// Timeout (in milliseconds) to show feedback to the user that a translation is taking a long time to load.\n// Usually due to this being the first time we're translating a unit.\nconst LONG_LOAD_NOTIFICATION_TIMEOUT = 40_000;\n\nexport { translationPerformanceKeys, LONG_LOAD_NOTIFICATION_TIMEOUT };\n"],"mappings":";;;;;;AAAA,IAAMA,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG;EACjCE,OAAO,EAAE,4BAA4B;EACrCC,QAAQ,EAAE,0BAA0B;EACpCC,WAAW,EAAE;AACf,CAAC;;AAED;AACA;AACA,IAAMC,8BAA8B,GAAAJ,OAAA,CAAAI,8BAAA,GAAG,KAAM","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _modelStore = require("@src/generic/model-store");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _localStorage = require("./localStorage");
|
|
10
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
11
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
12
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
13
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
14
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
15
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
16
|
+
var useTranslationInfo = function useTranslationInfo(courseId) {
|
|
17
|
+
var _useModel = (0, _modelStore.useModel)('coursewareMeta', courseId),
|
|
18
|
+
language = _useModel.language;
|
|
19
|
+
var courseLanguage = language || 'en';
|
|
20
|
+
var courseTranslationLanguage = (0, _localStorage.getLocalStorageLanguage)(courseId);
|
|
21
|
+
var _useState = (0, _react.useState)(courseTranslationLanguage || courseLanguage),
|
|
22
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
23
|
+
selectedLanguage = _useState2[0],
|
|
24
|
+
updateSelectedLanguage = _useState2[1];
|
|
25
|
+
return {
|
|
26
|
+
courseLanguage: courseLanguage,
|
|
27
|
+
selectedLanguage: selectedLanguage,
|
|
28
|
+
updateSelectedLanguage: updateSelectedLanguage,
|
|
29
|
+
isTranslating: selectedLanguage !== courseLanguage
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
var _default = exports["default"] = useTranslationInfo;
|
|
33
|
+
//# sourceMappingURL=useTranslationInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTranslationInfo.js","names":["_modelStore","require","_react","_localStorage","_slicedToArray","r","e","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","length","n","l","Symbol","iterator","i","u","f","o","next","Object","done","push","value","isArray","useTranslationInfo","courseId","_useModel","useModel","language","courseLanguage","courseTranslationLanguage","getLocalStorageLanguage","_useState","useState","_useState2","selectedLanguage","updateSelectedLanguage","isTranslating","_default","exports"],"sources":["../../src/utils/useTranslationInfo.js"],"sourcesContent":["import { useModel } from '@src/generic/model-store';\nimport { useState } from 'react';\nimport { getLocalStorageLanguage } from './localStorage';\n\nconst useTranslationInfo = (courseId) => {\n const { language } = useModel('coursewareMeta', courseId);\n const courseLanguage = language || 'en';\n const courseTranslationLanguage = getLocalStorageLanguage(courseId);\n const [selectedLanguage, updateSelectedLanguage] = useState(courseTranslationLanguage || courseLanguage);\n\n return {\n courseLanguage,\n selectedLanguage,\n updateSelectedLanguage,\n isTranslating: selectedLanguage !== courseLanguage,\n };\n};\n\nexport default useTranslationInfo;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edx/unit-title-plugin",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Unit title plugin in frontend-app-learning",
|
|
5
5
|
"main": "dist",
|
|
6
6
|
"author": "edX",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"jest-transform-stub": "^2.0.0",
|
|
50
50
|
"rosie": "^2.1.1"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "d467a733d4702492747e36fba10cbef0e8bece32"
|
|
53
53
|
}
|