@edx/unit-title-plugin 1.0.0 → 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/feedback-widget/FeedbackDetailsModal.js +2 -1
- package/dist/translation-button/feedback-widget/FeedbackDetailsModal.js.map +1 -1
- package/dist/translation-button/feedback-widget/index.js +1 -1
- package/dist/translation-button/feedback-widget/index.js.map +1 -1
- package/dist/translation-button/translation-selection/translation-modal/LanguageSelector.js +1 -1
- package/dist/translation-button/translation-selection/translation-modal/LanguageSelector.js.map +1 -1
- package/dist/translation-button/translation-selection/translation-modal/TranslationModal.js +1 -0
- package/dist/translation-button/translation-selection/translation-modal/TranslationModal.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":[]}
|
|
@@ -85,6 +85,7 @@ var FeedbackDetailsModal = function FeedbackDetailsModal(_ref) {
|
|
|
85
85
|
title: formatMessage(_messages["default"].feedbackDetailsModalTitle),
|
|
86
86
|
isOpen: isOpen,
|
|
87
87
|
onClose: close,
|
|
88
|
+
isOverflowVisible: false,
|
|
88
89
|
footerNode: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow, {
|
|
89
90
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
|
|
90
91
|
onClick: onSubmit,
|
|
@@ -112,7 +113,7 @@ var FeedbackDetailsModal = function FeedbackDetailsModal(_ref) {
|
|
|
112
113
|
onChange: handleDetailsChange,
|
|
113
114
|
placeholder: formatMessage(_messages["default"].feedbackDetailsModalPlaceholder),
|
|
114
115
|
rows: "5",
|
|
115
|
-
|
|
116
|
+
maxLength: "1000",
|
|
116
117
|
"data-testid": "feedback-details-modal-details"
|
|
117
118
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
118
119
|
className: "text-right small mr-2",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackDetailsModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_i18n","_paragon","_messages","_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","FEEDBACK_REASON_BROKEN","exports","FEEDBACK_REASON_HARMFUL","FEEDBACK_REASON_NOT_ACCURATE","FEEDBACK_REASON_OTHER","FeedbackDetailsModal","_ref","isOpen","close","currentFeedbackValue","onSendPositiveFeedback","onSendNegativeFeedback","_useIntl","useIntl","formatMessage","siteLanguage","getLocale","dir","isRtl","_useState","useState","_useState2","feedbackDetails","setFeedbackDetails","_useState3","_useState4","emailMeCheckboxValue","setEmailMeCheckboxValue","_useCheckboxSetValues","useCheckboxSetValues","_useCheckboxSetValues2","reasonValues","_useCheckboxSetValues3","add","remove","onSubmit","reasonList","code","messages","feedbackDetailsModalCheckboxBroken","feedbackDetailsModalCheckboxHarmful","feedbackDetailsModalCheckboxNotAccurate","feedbackDetailsModalCheckboxElse","handleReasonChange","target","checked","handleDetailsChange","event","handleEmailMeChange","jsxs","StandardModal","title","feedbackDetailsModalTitle","onClose","footerNode","jsx","ActionRow","children","Button","onClick","feedbackDetailsModalSubmitText","Form","CheckboxSet","className","onChange","map","reason","Checkbox","concat","Control","as","placeholder","feedbackDetailsModalPlaceholder","rows","maxlength","feedbackDetailsModalEmailMeText","propTypes","PropTypes","bool","isRequired","func","_default"],"sources":["../../../src/translation-button/feedback-widget/FeedbackDetailsModal.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl, isRtl, getLocale } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n Form,\n StandardModal,\n useCheckboxSetValues,\n} from '@openedx/paragon';\n\nimport messages from './messages';\n\nexport const FEEDBACK_REASON_BROKEN = 'broken';\nexport const FEEDBACK_REASON_HARMFUL = 'harmful';\nexport const FEEDBACK_REASON_NOT_ACCURATE = 'not_accurate';\nexport const FEEDBACK_REASON_OTHER = 'other';\n\nconst FeedbackDetailsModal = ({\n isOpen,\n close,\n currentFeedbackValue,\n onSendPositiveFeedback,\n onSendNegativeFeedback,\n}) => {\n const { formatMessage } = useIntl();\n const siteLanguage = getLocale();\n const dir = isRtl(siteLanguage) ? 'rtl' : 'ltr';\n const [feedbackDetails, setFeedbackDetails] = useState('');\n const [emailMeCheckboxValue, setEmailMeCheckboxValue] = useState(true);\n\n const [reasonValues, { add, remove }] = useCheckboxSetValues([]);\n\n const onSubmit = () => {\n if (currentFeedbackValue) {\n onSendPositiveFeedback(feedbackDetails, emailMeCheckboxValue);\n } else {\n onSendNegativeFeedback(reasonValues, feedbackDetails, emailMeCheckboxValue);\n }\n close();\n };\n\n const reasonList = [\n { code: FEEDBACK_REASON_BROKEN, name: formatMessage(messages.feedbackDetailsModalCheckboxBroken) },\n { code: FEEDBACK_REASON_HARMFUL, name: formatMessage(messages.feedbackDetailsModalCheckboxHarmful) },\n { code: FEEDBACK_REASON_NOT_ACCURATE, name: formatMessage(messages.feedbackDetailsModalCheckboxNotAccurate) },\n { code: FEEDBACK_REASON_OTHER, name: formatMessage(messages.feedbackDetailsModalCheckboxElse) },\n ];\n\n const handleReasonChange = e => {\n if (e.target.checked) {\n add(e.target.value);\n } else {\n remove(e.target.value);\n }\n };\n\n const handleDetailsChange = (event) => {\n setFeedbackDetails(event.target.value);\n };\n\n const handleEmailMeChange = (e) => {\n setEmailMeCheckboxValue(e.target.checked);\n };\n\n return (\n <StandardModal\n title={formatMessage(messages.feedbackDetailsModalTitle)}\n isOpen={isOpen}\n onClose={close}\n footerNode={(\n <ActionRow>\n <Button onClick={onSubmit} data-testid=\"feedback-details-modal-submit-button\">\n {formatMessage(messages.feedbackDetailsModalSubmitText)}\n </Button>\n </ActionRow>\n )}\n >\n <div dir={dir}>\n {\n !currentFeedbackValue && (\n <Form.CheckboxSet\n className=\"mb-3\"\n name=\"reasons\"\n onChange={handleReasonChange}\n value={reasonValues}\n data-testid=\"feedback-details-modal-reasons-checkboxes\"\n >\n {reasonList.map((reason) => (\n <Form.Checkbox\n key={reason.code}\n value={reason.code}\n data-testid={`feedback-details-modal-reason-checkbox-${reason.code}`}\n >\n {reason.name}\n </Form.Checkbox>\n ))}\n </Form.CheckboxSet>\n )\n }\n <Form.Control\n as=\"textarea\"\n onChange={handleDetailsChange}\n placeholder={formatMessage(messages.feedbackDetailsModalPlaceholder)}\n rows=\"5\"\n maxlength=\"1000\"\n data-testid=\"feedback-details-modal-details\"\n />\n <p className=\"text-right small mr-2\">\n {feedbackDetails.length} / 1000\n </p>\n </div>\n <Form.Checkbox\n data-testid=\"feedback-details-modal-email-me-checkbox\"\n checked={emailMeCheckboxValue}\n onChange={handleEmailMeChange}\n >\n {formatMessage(messages.feedbackDetailsModalEmailMeText)}\n </Form.Checkbox>\n </StandardModal>\n );\n};\n\nFeedbackDetailsModal.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n close: PropTypes.func.isRequired,\n currentFeedbackValue: PropTypes.bool.isRequired,\n onSendPositiveFeedback: PropTypes.func.isRequired,\n onSendNegativeFeedback: PropTypes.func.isRequired,\n};\n\nexport default FeedbackDetailsModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FeedbackDetailsModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_i18n","_paragon","_messages","_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","FEEDBACK_REASON_BROKEN","exports","FEEDBACK_REASON_HARMFUL","FEEDBACK_REASON_NOT_ACCURATE","FEEDBACK_REASON_OTHER","FeedbackDetailsModal","_ref","isOpen","close","currentFeedbackValue","onSendPositiveFeedback","onSendNegativeFeedback","_useIntl","useIntl","formatMessage","siteLanguage","getLocale","dir","isRtl","_useState","useState","_useState2","feedbackDetails","setFeedbackDetails","_useState3","_useState4","emailMeCheckboxValue","setEmailMeCheckboxValue","_useCheckboxSetValues","useCheckboxSetValues","_useCheckboxSetValues2","reasonValues","_useCheckboxSetValues3","add","remove","onSubmit","reasonList","code","messages","feedbackDetailsModalCheckboxBroken","feedbackDetailsModalCheckboxHarmful","feedbackDetailsModalCheckboxNotAccurate","feedbackDetailsModalCheckboxElse","handleReasonChange","target","checked","handleDetailsChange","event","handleEmailMeChange","jsxs","StandardModal","title","feedbackDetailsModalTitle","onClose","isOverflowVisible","footerNode","jsx","ActionRow","children","Button","onClick","feedbackDetailsModalSubmitText","Form","CheckboxSet","className","onChange","map","reason","Checkbox","concat","Control","as","placeholder","feedbackDetailsModalPlaceholder","rows","maxLength","feedbackDetailsModalEmailMeText","propTypes","PropTypes","bool","isRequired","func","_default"],"sources":["../../../src/translation-button/feedback-widget/FeedbackDetailsModal.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl, isRtl, getLocale } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n Form,\n StandardModal,\n useCheckboxSetValues,\n} from '@openedx/paragon';\n\nimport messages from './messages';\n\nexport const FEEDBACK_REASON_BROKEN = 'broken';\nexport const FEEDBACK_REASON_HARMFUL = 'harmful';\nexport const FEEDBACK_REASON_NOT_ACCURATE = 'not_accurate';\nexport const FEEDBACK_REASON_OTHER = 'other';\n\nconst FeedbackDetailsModal = ({\n isOpen,\n close,\n currentFeedbackValue,\n onSendPositiveFeedback,\n onSendNegativeFeedback,\n}) => {\n const { formatMessage } = useIntl();\n const siteLanguage = getLocale();\n const dir = isRtl(siteLanguage) ? 'rtl' : 'ltr';\n const [feedbackDetails, setFeedbackDetails] = useState('');\n const [emailMeCheckboxValue, setEmailMeCheckboxValue] = useState(true);\n\n const [reasonValues, { add, remove }] = useCheckboxSetValues([]);\n\n const onSubmit = () => {\n if (currentFeedbackValue) {\n onSendPositiveFeedback(feedbackDetails, emailMeCheckboxValue);\n } else {\n onSendNegativeFeedback(reasonValues, feedbackDetails, emailMeCheckboxValue);\n }\n close();\n };\n\n const reasonList = [\n { code: FEEDBACK_REASON_BROKEN, name: formatMessage(messages.feedbackDetailsModalCheckboxBroken) },\n { code: FEEDBACK_REASON_HARMFUL, name: formatMessage(messages.feedbackDetailsModalCheckboxHarmful) },\n { code: FEEDBACK_REASON_NOT_ACCURATE, name: formatMessage(messages.feedbackDetailsModalCheckboxNotAccurate) },\n { code: FEEDBACK_REASON_OTHER, name: formatMessage(messages.feedbackDetailsModalCheckboxElse) },\n ];\n\n const handleReasonChange = e => {\n if (e.target.checked) {\n add(e.target.value);\n } else {\n remove(e.target.value);\n }\n };\n\n const handleDetailsChange = (event) => {\n setFeedbackDetails(event.target.value);\n };\n\n const handleEmailMeChange = (e) => {\n setEmailMeCheckboxValue(e.target.checked);\n };\n\n return (\n <StandardModal\n title={formatMessage(messages.feedbackDetailsModalTitle)}\n isOpen={isOpen}\n onClose={close}\n isOverflowVisible={false}\n footerNode={(\n <ActionRow>\n <Button onClick={onSubmit} data-testid=\"feedback-details-modal-submit-button\">\n {formatMessage(messages.feedbackDetailsModalSubmitText)}\n </Button>\n </ActionRow>\n )}\n >\n <div dir={dir}>\n {\n !currentFeedbackValue && (\n <Form.CheckboxSet\n className=\"mb-3\"\n name=\"reasons\"\n onChange={handleReasonChange}\n value={reasonValues}\n data-testid=\"feedback-details-modal-reasons-checkboxes\"\n >\n {reasonList.map((reason) => (\n <Form.Checkbox\n key={reason.code}\n value={reason.code}\n data-testid={`feedback-details-modal-reason-checkbox-${reason.code}`}\n >\n {reason.name}\n </Form.Checkbox>\n ))}\n </Form.CheckboxSet>\n )\n }\n <Form.Control\n as=\"textarea\"\n onChange={handleDetailsChange}\n placeholder={formatMessage(messages.feedbackDetailsModalPlaceholder)}\n rows=\"5\"\n maxLength=\"1000\"\n data-testid=\"feedback-details-modal-details\"\n />\n <p className=\"text-right small mr-2\">\n {feedbackDetails.length} / 1000\n </p>\n </div>\n <Form.Checkbox\n data-testid=\"feedback-details-modal-email-me-checkbox\"\n checked={emailMeCheckboxValue}\n onChange={handleEmailMeChange}\n >\n {formatMessage(messages.feedbackDetailsModalEmailMeText)}\n </Form.Checkbox>\n </StandardModal>\n );\n};\n\nFeedbackDetailsModal.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n close: PropTypes.func.isRequired,\n currentFeedbackValue: PropTypes.bool.isRequired,\n onSendPositiveFeedback: PropTypes.func.isRequired,\n onSendNegativeFeedback: PropTypes.func.isRequired,\n};\n\nexport default FeedbackDetailsModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -41,7 +41,7 @@ var FeedbackWidget = function FeedbackWidget(_ref) {
|
|
|
41
41
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
42
42
|
isFeedbackDetailsModalOpen = _useState4[0],
|
|
43
43
|
setIsFeedbackDetailsModalOpen = _useState4[1];
|
|
44
|
-
var _useState5 = (0, _react.useState)(
|
|
44
|
+
var _useState5 = (0, _react.useState)(false),
|
|
45
45
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
46
46
|
currentFeedbackValue = _useState6[0],
|
|
47
47
|
setCurrentFeedbackValue = _useState6[1];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_i18n","_frontendPlatform","_paragon","_icons","_messages","_FeedbackDetailsModal","_useFeedbackWidget2","_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","FeedbackWidget","_ref","courseId","courseLanguage","translationLanguage","unitId","userId","_useIntl","useIntl","formatMessage","ref","useRef","_useState","useState","_useState2","elemReady","setElemReady","_useState3","_useState4","isFeedbackDetailsModalOpen","setIsFeedbackDetailsModalOpen","_useState5","_useState6","currentFeedbackValue","setCurrentFeedbackValue","_useFeedbackWidget","useFeedbackWidget","closeFeedbackWidget","isLoading","showFeedbackWidget","showGratitudeText","onSendPositiveFeedback","onSendNegativeFeedback","useEffect","domNode","document","getElementById","current","firstChild","removeChild","lastChild","appendChild","getConfig","AI_TRANSLATIONS_URL","onThumbsUpClick","onThumbsDownClick","onCloseFeedbackDetailsModal","jsx","className","children","jsxs","ActionRow","Spinner","animation","variant","screenReaderText","messages","rateTranslationText","Spacer","IconButton","src","ThumbUpOutline","iconAs","Icon","alt","onClick","id","ThumbDownOffAlt","Close","gratitudeText","isOpen","close","propTypes","PropTypes","string","isRequired","defaultProps","_default","exports"],"sources":["../../../src/translation-button/feedback-widget/index.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { getConfig } from '@edx/frontend-platform';\n\nimport {\n ActionRow,\n IconButton,\n Icon,\n Spinner,\n} from '@openedx/paragon';\nimport { Close, ThumbUpOutline, ThumbDownOffAlt } from '@openedx/paragon/icons';\n\nimport './index.scss';\nimport messages from './messages';\nimport FeedbackDetailsModal from './FeedbackDetailsModal';\nimport useFeedbackWidget from './useFeedbackWidget';\n\nconst FeedbackWidget = ({\n courseId, courseLanguage, translationLanguage, unitId, userId,\n}) => {\n const { formatMessage } = useIntl();\n const ref = useRef(null);\n const [elemReady, setElemReady] = useState(false);\n const [isFeedbackDetailsModalOpen, setIsFeedbackDetailsModalOpen] = useState(false);\n const [currentFeedbackValue, setCurrentFeedbackValue] = useState(null);\n const {\n closeFeedbackWidget,\n isLoading,\n showFeedbackWidget,\n showGratitudeText,\n onSendPositiveFeedback,\n onSendNegativeFeedback,\n } = useFeedbackWidget({\n courseId,\n courseLanguage,\n translationLanguage,\n unitId,\n userId,\n });\n\n useEffect(() => {\n const domNode = document.getElementById(\n 'whole-course-translation-feedback-widget',\n );\n if (ref.current && domNode) {\n while (domNode.firstChild) {\n domNode.removeChild(domNode.lastChild);\n }\n domNode.appendChild(ref.current);\n setElemReady(true);\n }\n }, [ref.current]);\n\n if (!getConfig().AI_TRANSLATIONS_URL) {\n return null;\n }\n\n const onThumbsUpClick = () => {\n setCurrentFeedbackValue(true);\n setIsFeedbackDetailsModalOpen(true);\n };\n\n const onThumbsDownClick = () => {\n setCurrentFeedbackValue(false);\n setIsFeedbackDetailsModalOpen(true);\n };\n\n const onCloseFeedbackDetailsModal = () => {\n setIsFeedbackDetailsModalOpen(false);\n };\n\n return (\n <div\n ref={ref}\n className={\n elemReady ? 'sequence-container d-inline-flex flex-row w-100' : 'd-none'\n }\n >\n {showFeedbackWidget || showGratitudeText || isLoading ? (\n <div className=\"sequence w-100\">\n {showFeedbackWidget && (\n isLoading ? (\n <div className=\"mt-1 mb-1\">\n <ActionRow className=\"m-2 justify-content-center\">\n <Spinner animation=\"border\" variant=\"primary\" className=\"mr-3\" screenReaderText=\"loading\" />\n </ActionRow>\n </div>\n ) : (\n <div className=\"ml-4 mr-2\">\n <ActionRow>\n {formatMessage(messages.rateTranslationText)}\n <ActionRow.Spacer />\n <div>\n <IconButton\n src={ThumbUpOutline}\n iconAs={Icon}\n alt=\"positive-feedback\"\n onClick={onThumbsUpClick}\n variant=\"secondary\"\n className=\"m-1\"\n id=\"positive-feedback-button\"\n />\n <IconButton\n src={ThumbDownOffAlt}\n iconAs={Icon}\n alt=\"negative-feedback\"\n onClick={onThumbsDownClick}\n variant=\"secondary\"\n className=\"mr-2\"\n id=\"negative-feedback-button\"\n />\n </div>\n <div className=\"mb-1 text-light action-row-divider\">|</div>\n <div>\n <IconButton\n src={Close}\n iconAs={Icon}\n alt=\"close-feedback\"\n onClick={closeFeedbackWidget}\n variant=\"secondary\"\n className=\"ml-1 mr-2 float-right\"\n id=\"close-feedback-button\"\n />\n </div>\n </ActionRow>\n </div>\n )\n )}\n {showGratitudeText && (\n <div className=\"ml-4 mr-4\">\n <ActionRow className=\"m-2 justify-content-center\">\n {formatMessage(messages.gratitudeText)}\n </ActionRow>\n </div>\n )}\n <FeedbackDetailsModal\n isOpen={isFeedbackDetailsModalOpen}\n close={onCloseFeedbackDetailsModal}\n currentFeedbackValue={currentFeedbackValue}\n onSendPositiveFeedback={onSendPositiveFeedback}\n onSendNegativeFeedback={onSendNegativeFeedback}\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nFeedbackWidget.propTypes = {\n courseId: PropTypes.string.isRequired,\n courseLanguage: PropTypes.string.isRequired,\n translationLanguage: PropTypes.string.isRequired,\n userId: PropTypes.string.isRequired,\n unitId: PropTypes.string.isRequired,\n};\n\nFeedbackWidget.defaultProps = {};\n\nexport default FeedbackWidget;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_i18n","_frontendPlatform","_paragon","_icons","_messages","_FeedbackDetailsModal","_useFeedbackWidget2","_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","FeedbackWidget","_ref","courseId","courseLanguage","translationLanguage","unitId","userId","_useIntl","useIntl","formatMessage","ref","useRef","_useState","useState","_useState2","elemReady","setElemReady","_useState3","_useState4","isFeedbackDetailsModalOpen","setIsFeedbackDetailsModalOpen","_useState5","_useState6","currentFeedbackValue","setCurrentFeedbackValue","_useFeedbackWidget","useFeedbackWidget","closeFeedbackWidget","isLoading","showFeedbackWidget","showGratitudeText","onSendPositiveFeedback","onSendNegativeFeedback","useEffect","domNode","document","getElementById","current","firstChild","removeChild","lastChild","appendChild","getConfig","AI_TRANSLATIONS_URL","onThumbsUpClick","onThumbsDownClick","onCloseFeedbackDetailsModal","jsx","className","children","jsxs","ActionRow","Spinner","animation","variant","screenReaderText","messages","rateTranslationText","Spacer","IconButton","src","ThumbUpOutline","iconAs","Icon","alt","onClick","id","ThumbDownOffAlt","Close","gratitudeText","isOpen","close","propTypes","PropTypes","string","isRequired","defaultProps","_default","exports"],"sources":["../../../src/translation-button/feedback-widget/index.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { getConfig } from '@edx/frontend-platform';\n\nimport {\n ActionRow,\n IconButton,\n Icon,\n Spinner,\n} from '@openedx/paragon';\nimport { Close, ThumbUpOutline, ThumbDownOffAlt } from '@openedx/paragon/icons';\n\nimport './index.scss';\nimport messages from './messages';\nimport FeedbackDetailsModal from './FeedbackDetailsModal';\nimport useFeedbackWidget from './useFeedbackWidget';\n\nconst FeedbackWidget = ({\n courseId, courseLanguage, translationLanguage, unitId, userId,\n}) => {\n const { formatMessage } = useIntl();\n const ref = useRef(null);\n const [elemReady, setElemReady] = useState(false);\n const [isFeedbackDetailsModalOpen, setIsFeedbackDetailsModalOpen] = useState(false);\n const [currentFeedbackValue, setCurrentFeedbackValue] = useState(false);\n const {\n closeFeedbackWidget,\n isLoading,\n showFeedbackWidget,\n showGratitudeText,\n onSendPositiveFeedback,\n onSendNegativeFeedback,\n } = useFeedbackWidget({\n courseId,\n courseLanguage,\n translationLanguage,\n unitId,\n userId,\n });\n\n useEffect(() => {\n const domNode = document.getElementById(\n 'whole-course-translation-feedback-widget',\n );\n if (ref.current && domNode) {\n while (domNode.firstChild) {\n domNode.removeChild(domNode.lastChild);\n }\n domNode.appendChild(ref.current);\n setElemReady(true);\n }\n }, [ref.current]);\n\n if (!getConfig().AI_TRANSLATIONS_URL) {\n return null;\n }\n\n const onThumbsUpClick = () => {\n setCurrentFeedbackValue(true);\n setIsFeedbackDetailsModalOpen(true);\n };\n\n const onThumbsDownClick = () => {\n setCurrentFeedbackValue(false);\n setIsFeedbackDetailsModalOpen(true);\n };\n\n const onCloseFeedbackDetailsModal = () => {\n setIsFeedbackDetailsModalOpen(false);\n };\n\n return (\n <div\n ref={ref}\n className={\n elemReady ? 'sequence-container d-inline-flex flex-row w-100' : 'd-none'\n }\n >\n {showFeedbackWidget || showGratitudeText || isLoading ? (\n <div className=\"sequence w-100\">\n {showFeedbackWidget && (\n isLoading ? (\n <div className=\"mt-1 mb-1\">\n <ActionRow className=\"m-2 justify-content-center\">\n <Spinner animation=\"border\" variant=\"primary\" className=\"mr-3\" screenReaderText=\"loading\" />\n </ActionRow>\n </div>\n ) : (\n <div className=\"ml-4 mr-2\">\n <ActionRow>\n {formatMessage(messages.rateTranslationText)}\n <ActionRow.Spacer />\n <div>\n <IconButton\n src={ThumbUpOutline}\n iconAs={Icon}\n alt=\"positive-feedback\"\n onClick={onThumbsUpClick}\n variant=\"secondary\"\n className=\"m-1\"\n id=\"positive-feedback-button\"\n />\n <IconButton\n src={ThumbDownOffAlt}\n iconAs={Icon}\n alt=\"negative-feedback\"\n onClick={onThumbsDownClick}\n variant=\"secondary\"\n className=\"mr-2\"\n id=\"negative-feedback-button\"\n />\n </div>\n <div className=\"mb-1 text-light action-row-divider\">|</div>\n <div>\n <IconButton\n src={Close}\n iconAs={Icon}\n alt=\"close-feedback\"\n onClick={closeFeedbackWidget}\n variant=\"secondary\"\n className=\"ml-1 mr-2 float-right\"\n id=\"close-feedback-button\"\n />\n </div>\n </ActionRow>\n </div>\n )\n )}\n {showGratitudeText && (\n <div className=\"ml-4 mr-4\">\n <ActionRow className=\"m-2 justify-content-center\">\n {formatMessage(messages.gratitudeText)}\n </ActionRow>\n </div>\n )}\n <FeedbackDetailsModal\n isOpen={isFeedbackDetailsModalOpen}\n close={onCloseFeedbackDetailsModal}\n currentFeedbackValue={currentFeedbackValue}\n onSendPositiveFeedback={onSendPositiveFeedback}\n onSendNegativeFeedback={onSendNegativeFeedback}\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nFeedbackWidget.propTypes = {\n courseId: PropTypes.string.isRequired,\n courseLanguage: PropTypes.string.isRequired,\n translationLanguage: PropTypes.string.isRequired,\n userId: PropTypes.string.isRequired,\n unitId: PropTypes.string.isRequired,\n};\n\nFeedbackWidget.defaultProps = {};\n\nexport default FeedbackWidget;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,7 +26,7 @@ var LanguageSelector = function LanguageSelector(_ref) {
|
|
|
26
26
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
27
27
|
className: "pgn__card small",
|
|
28
28
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.SelectableBox.Set, {
|
|
29
|
-
value: selectedIndex,
|
|
29
|
+
value: String(selectedIndex),
|
|
30
30
|
onChange: handleChange,
|
|
31
31
|
name: "languages",
|
|
32
32
|
columns: 1,
|
package/dist/translation-button/translation-selection/translation-modal/LanguageSelector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LanguageSelector.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_TranslationDisclaimer","_messages","_jsxRuntime","e","__esModule","LanguageSelector","_ref","selectedIndex","setSelectedIndex","courseEnabledLanguages","originalCourseLanguage","_useIntl","useIntl","formatMessage","handleChange","Number","target","value","jsxs","className","children","jsx","SelectableBox","Set","onChange","name","columns","ariaLabel","map","_ref2","index","code","label","localeName","concat","Stack","gap","direction","messages","originalLanguageLabel","Icon","src","Check","propTypes","PropTypes","arrayOf","shape","string","isRequired","number","func","_default","exports"],"sources":["../../../../src/translation-button/translation-selection/translation-modal/LanguageSelector.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n Icon,\n SelectableBox,\n Stack,\n} from '@openedx/paragon';\nimport { Check } from '@openedx/paragon/icons';\n\nimport TranslationDisclaimer from './TranslationDisclaimer';\nimport messages from './messages';\nimport './LanguageSelector.scss';\n\nconst LanguageSelector = ({\n selectedIndex,\n setSelectedIndex,\n courseEnabledLanguages,\n originalCourseLanguage,\n}) => {\n const { formatMessage } = useIntl();\n const handleChange = (e) => setSelectedIndex(Number(e.target.value));\n\n return (\n <div className=\"pgn__card small\">\n <SelectableBox.Set\n value={selectedIndex}\n onChange={handleChange}\n name=\"languages\"\n columns={1}\n ariaLabel=\"language selection\"\n className=\"language-set\"\n >\n {courseEnabledLanguages.map(({ code, label, localeName }, index) => (\n <SelectableBox\n key={code}\n value={index}\n aria-label={`${label} radio`}\n className=\"option shadow-none\"\n >\n <Stack gap={3} direction=\"horizontal\">\n {code === originalCourseLanguage ? formatMessage(messages.originalLanguageLabel) : localeName}\n {selectedIndex === index && <Icon src={Check} className=\"text-success\" />}\n </Stack>\n </SelectableBox>\n ))}\n </SelectableBox.Set>\n <div className=\"p-3\">\n <TranslationDisclaimer />\n </div>\n </div>\n );\n};\n\nLanguageSelector.propTypes = {\n courseEnabledLanguages: PropTypes.arrayOf(\n PropTypes.shape({\n code: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n }),\n ).isRequired,\n selectedIndex: PropTypes.number.isRequired,\n setSelectedIndex: PropTypes.func.isRequired,\n originalCourseLanguage: PropTypes.string.isRequired,\n};\n\nexport default LanguageSelector;\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,sBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AACAA,OAAA;AAAiC,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAEjC,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAKhB;EAAA,IAJJC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,gBAAgB,GAAAF,IAAA,CAAhBE,gBAAgB;IAChBC,sBAAsB,GAAAH,IAAA,CAAtBG,sBAAsB;IACtBC,sBAAsB,GAAAJ,IAAA,CAAtBI,sBAAsB;EAEtB,IAAAC,QAAA,GAA0B,IAAAC,aAAO,EAAC,CAAC;IAA3BC,aAAa,GAAAF,QAAA,CAAbE,aAAa;EACrB,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIX,CAAC;IAAA,OAAKK,gBAAgB,CAACO,MAAM,CAACZ,CAAC,CAACa,MAAM,CAACC,KAAK,CAAC,CAAC;EAAA;EAEpE,oBACE,IAAAf,WAAA,CAAAgB,IAAA;IAAKC,SAAS,EAAC,iBAAiB;IAAAC,QAAA,gBAC9B,IAAAlB,WAAA,CAAAmB,GAAA,EAACvB,QAAA,CAAAwB,aAAa,CAACC,GAAG;MAChBN,KAAK,
|
|
1
|
+
{"version":3,"file":"LanguageSelector.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_TranslationDisclaimer","_messages","_jsxRuntime","e","__esModule","LanguageSelector","_ref","selectedIndex","setSelectedIndex","courseEnabledLanguages","originalCourseLanguage","_useIntl","useIntl","formatMessage","handleChange","Number","target","value","jsxs","className","children","jsx","SelectableBox","Set","String","onChange","name","columns","ariaLabel","map","_ref2","index","code","label","localeName","concat","Stack","gap","direction","messages","originalLanguageLabel","Icon","src","Check","propTypes","PropTypes","arrayOf","shape","string","isRequired","number","func","_default","exports"],"sources":["../../../../src/translation-button/translation-selection/translation-modal/LanguageSelector.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n Icon,\n SelectableBox,\n Stack,\n} from '@openedx/paragon';\nimport { Check } from '@openedx/paragon/icons';\n\nimport TranslationDisclaimer from './TranslationDisclaimer';\nimport messages from './messages';\nimport './LanguageSelector.scss';\n\nconst LanguageSelector = ({\n selectedIndex,\n setSelectedIndex,\n courseEnabledLanguages,\n originalCourseLanguage,\n}) => {\n const { formatMessage } = useIntl();\n const handleChange = (e) => setSelectedIndex(Number(e.target.value));\n\n return (\n <div className=\"pgn__card small\">\n <SelectableBox.Set\n value={String(selectedIndex)}\n onChange={handleChange}\n name=\"languages\"\n columns={1}\n ariaLabel=\"language selection\"\n className=\"language-set\"\n >\n {courseEnabledLanguages.map(({ code, label, localeName }, index) => (\n <SelectableBox\n key={code}\n value={index}\n aria-label={`${label} radio`}\n className=\"option shadow-none\"\n >\n <Stack gap={3} direction=\"horizontal\">\n {code === originalCourseLanguage ? formatMessage(messages.originalLanguageLabel) : localeName}\n {selectedIndex === index && <Icon src={Check} className=\"text-success\" />}\n </Stack>\n </SelectableBox>\n ))}\n </SelectableBox.Set>\n <div className=\"p-3\">\n <TranslationDisclaimer />\n </div>\n </div>\n );\n};\n\nLanguageSelector.propTypes = {\n courseEnabledLanguages: PropTypes.arrayOf(\n PropTypes.shape({\n code: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n }),\n ).isRequired,\n selectedIndex: PropTypes.number.isRequired,\n setSelectedIndex: PropTypes.func.isRequired,\n originalCourseLanguage: PropTypes.string.isRequired,\n};\n\nexport default LanguageSelector;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -55,6 +55,7 @@ var TranslationModal = function TranslationModal(_ref) {
|
|
|
55
55
|
})
|
|
56
56
|
}) : formatMessage(_messages["default"].languageSelectionModalTitle);
|
|
57
57
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.StandardModal, {
|
|
58
|
+
isOverflowVisible: false,
|
|
58
59
|
title: title,
|
|
59
60
|
isOpen: isOpen,
|
|
60
61
|
onClose: close,
|
package/dist/translation-button/translation-selection/translation-modal/TranslationModal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranslationModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_i18n","_paragon","_useTranslationModal2","_messages","_ModalFooter","_UpgradeModalBody","_PaidModalBody","_jsxRuntime","e","__esModule","TranslationModal","_ref","availableLanguages","isAuditMode","isFBE","isOpen","close","logEventProperties","selectedLanguage","setSelectedLanguage","verifiedMode","originalCourseLanguage","_useIntl","useIntl","formatMessage","currencySymbol","price","upgradeUrl","_useTranslationModal","useTranslationModal","courseEnabledLanguages","selectedIndex","setSelectedIndex","onSubmit","buttonText","messages","upgradeButtonText","upgradePrice","concat","submitButtonText","title","upgradeLanguageSelectionModalTitle","asterisk","jsx","children","languageSelectionModalTitle","StandardModal","onClose","isFullscreenScroll","footerNode","propTypes","PropTypes","bool","isRequired","func","string","arrayOf","shape","code","label","number","org_key","courserun_key","course_name","_default","exports"],"sources":["../../../../src/translation-button/translation-selection/translation-modal/TranslationModal.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { StandardModal } from '@openedx/paragon';\n\nimport useTranslationModal from './useTranslationModal';\nimport messages from './messages';\nimport './TranslationModal.scss';\nimport ModalFooter from './ModalFooter';\nimport UpgradeModalBody from './UpgradeModalBody';\nimport PaidModalBody from './PaidModalBody';\n\nconst TranslationModal = ({\n availableLanguages,\n isAuditMode,\n isFBE,\n isOpen,\n close,\n logEventProperties,\n selectedLanguage,\n setSelectedLanguage,\n verifiedMode,\n originalCourseLanguage,\n}) => {\n const { formatMessage } = useIntl();\n const { currencySymbol, price, upgradeUrl } = verifiedMode;\n const {\n courseEnabledLanguages,\n selectedIndex,\n setSelectedIndex,\n onSubmit,\n } = useTranslationModal({\n selectedLanguage,\n setSelectedLanguage,\n close,\n isAuditMode,\n upgradeUrl,\n logEventProperties,\n availableLanguages,\n originalCourseLanguage,\n });\n\n const buttonText = isAuditMode ? (\n formatMessage(messages.upgradeButtonText, { upgradePrice: `${currencySymbol}${price}` })\n ) : (\n formatMessage(messages.submitButtonText)\n );\n\n const title = isAuditMode ? (\n formatMessage(messages.upgradeLanguageSelectionModalTitle, { asterisk: <sup>*</sup> })\n ) : (\n formatMessage(messages.languageSelectionModalTitle)\n );\n\n return (\n <StandardModal\n title={title}\n isOpen={isOpen}\n onClose={close}\n isFullscreenScroll\n footerNode={(\n <ModalFooter\n {...{\n buttonText,\n onSubmit,\n close,\n }}\n />\n )}\n >\n {isAuditMode ? (\n <UpgradeModalBody {...{ courseEnabledLanguages, isFBE, originalCourseLanguage }} />\n ) : (\n <PaidModalBody\n {...{\n selectedIndex,\n setSelectedIndex,\n courseEnabledLanguages,\n originalCourseLanguage,\n }}\n />\n )}\n </StandardModal>\n );\n};\n\nTranslationModal.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n close: PropTypes.func.isRequired,\n selectedLanguage: PropTypes.string.isRequired,\n setSelectedLanguage: PropTypes.func.isRequired,\n availableLanguages: PropTypes.arrayOf(\n PropTypes.shape({\n code: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n }),\n ).isRequired,\n isFBE: PropTypes.bool.isRequired,\n verifiedMode: PropTypes.shape({\n currencySymbol: PropTypes.string,\n price: PropTypes.number,\n upgradeUrl: PropTypes.string,\n }).isRequired,\n isAuditMode: PropTypes.bool.isRequired,\n logEventProperties: PropTypes.shape({\n org_key: PropTypes.string.isRequired,\n courserun_key: PropTypes.string.isRequired,\n course_name: PropTypes.string.isRequired,\n }).isRequired,\n originalCourseLanguage: PropTypes.string.isRequired,\n};\n\nexport default TranslationModal;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAEA,IAAAI,qBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AACAA,OAAA;AACA,IAAAM,YAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,iBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,cAAA,GAAAT,sBAAA,CAAAC,OAAA;AAA4C,IAAAS,WAAA,GAAAT,OAAA;AAAA,SAAAD,uBAAAW,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAE5C,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAWhB;EAAA,IAVJC,kBAAkB,GAAAD,IAAA,CAAlBC,kBAAkB;IAClBC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IACXC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,KAAK,GAAAL,IAAA,CAALK,KAAK;IACLC,kBAAkB,GAAAN,IAAA,CAAlBM,kBAAkB;IAClBC,gBAAgB,GAAAP,IAAA,CAAhBO,gBAAgB;IAChBC,mBAAmB,GAAAR,IAAA,CAAnBQ,mBAAmB;IACnBC,YAAY,GAAAT,IAAA,CAAZS,YAAY;IACZC,sBAAsB,GAAAV,IAAA,CAAtBU,sBAAsB;EAEtB,IAAAC,QAAA,GAA0B,IAAAC,aAAO,EAAC,CAAC;IAA3BC,aAAa,GAAAF,QAAA,CAAbE,aAAa;EACrB,IAAQC,cAAc,GAAwBL,YAAY,CAAlDK,cAAc;IAAEC,KAAK,GAAiBN,YAAY,CAAlCM,KAAK;IAAEC,UAAU,GAAKP,YAAY,CAA3BO,UAAU;EACzC,IAAAC,oBAAA,GAKI,IAAAC,gCAAmB,EAAC;MACtBX,gBAAgB,EAAhBA,gBAAgB;MAChBC,mBAAmB,EAAnBA,mBAAmB;MACnBH,KAAK,EAALA,KAAK;MACLH,WAAW,EAAXA,WAAW;MACXc,UAAU,EAAVA,UAAU;MACVV,kBAAkB,EAAlBA,kBAAkB;MAClBL,kBAAkB,EAAlBA,kBAAkB;MAClBS,sBAAsB,EAAtBA;IACF,CAAC,CAAC;IAbAS,sBAAsB,GAAAF,oBAAA,CAAtBE,sBAAsB;IACtBC,aAAa,GAAAH,oBAAA,CAAbG,aAAa;IACbC,gBAAgB,GAAAJ,oBAAA,CAAhBI,gBAAgB;IAChBC,QAAQ,GAAAL,oBAAA,CAARK,QAAQ;EAYV,IAAMC,UAAU,GAAGrB,WAAW,GAC5BW,aAAa,CAACW,oBAAQ,CAACC,iBAAiB,EAAE;IAAEC,YAAY,KAAAC,MAAA,CAAKb,cAAc,EAAAa,MAAA,CAAGZ,KAAK;EAAG,CAAC,CAAC,GAExFF,aAAa,CAACW,oBAAQ,CAACI,gBAAgB,CACxC;EAED,IAAMC,KAAK,GAAG3B,WAAW,GACvBW,aAAa,CAACW,oBAAQ,CAACM,kCAAkC,EAAE;IAAEC,QAAQ,eAAE,IAAAnC,WAAA,CAAAoC,GAAA;MAAAC,QAAA,EAAK;IAAC,CAAK;EAAE,CAAC,CAAC,GAEtFpB,aAAa,CAACW,oBAAQ,CAACU,2BAA2B,CACnD;EAED,oBACE,IAAAtC,WAAA,CAAAoC,GAAA,EAAC1C,QAAA,CAAA6C,aAAa;
|
|
1
|
+
{"version":3,"file":"TranslationModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_i18n","_paragon","_useTranslationModal2","_messages","_ModalFooter","_UpgradeModalBody","_PaidModalBody","_jsxRuntime","e","__esModule","TranslationModal","_ref","availableLanguages","isAuditMode","isFBE","isOpen","close","logEventProperties","selectedLanguage","setSelectedLanguage","verifiedMode","originalCourseLanguage","_useIntl","useIntl","formatMessage","currencySymbol","price","upgradeUrl","_useTranslationModal","useTranslationModal","courseEnabledLanguages","selectedIndex","setSelectedIndex","onSubmit","buttonText","messages","upgradeButtonText","upgradePrice","concat","submitButtonText","title","upgradeLanguageSelectionModalTitle","asterisk","jsx","children","languageSelectionModalTitle","StandardModal","isOverflowVisible","onClose","isFullscreenScroll","footerNode","propTypes","PropTypes","bool","isRequired","func","string","arrayOf","shape","code","label","number","org_key","courserun_key","course_name","_default","exports"],"sources":["../../../../src/translation-button/translation-selection/translation-modal/TranslationModal.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { StandardModal } from '@openedx/paragon';\n\nimport useTranslationModal from './useTranslationModal';\nimport messages from './messages';\nimport './TranslationModal.scss';\nimport ModalFooter from './ModalFooter';\nimport UpgradeModalBody from './UpgradeModalBody';\nimport PaidModalBody from './PaidModalBody';\n\nconst TranslationModal = ({\n availableLanguages,\n isAuditMode,\n isFBE,\n isOpen,\n close,\n logEventProperties,\n selectedLanguage,\n setSelectedLanguage,\n verifiedMode,\n originalCourseLanguage,\n}) => {\n const { formatMessage } = useIntl();\n const { currencySymbol, price, upgradeUrl } = verifiedMode;\n const {\n courseEnabledLanguages,\n selectedIndex,\n setSelectedIndex,\n onSubmit,\n } = useTranslationModal({\n selectedLanguage,\n setSelectedLanguage,\n close,\n isAuditMode,\n upgradeUrl,\n logEventProperties,\n availableLanguages,\n originalCourseLanguage,\n });\n\n const buttonText = isAuditMode ? (\n formatMessage(messages.upgradeButtonText, { upgradePrice: `${currencySymbol}${price}` })\n ) : (\n formatMessage(messages.submitButtonText)\n );\n\n const title = isAuditMode ? (\n formatMessage(messages.upgradeLanguageSelectionModalTitle, { asterisk: <sup>*</sup> })\n ) : (\n formatMessage(messages.languageSelectionModalTitle)\n );\n\n return (\n <StandardModal\n isOverflowVisible={false}\n title={title}\n isOpen={isOpen}\n onClose={close}\n isFullscreenScroll\n footerNode={(\n <ModalFooter\n {...{\n buttonText,\n onSubmit,\n close,\n }}\n />\n )}\n >\n {isAuditMode ? (\n <UpgradeModalBody {...{ courseEnabledLanguages, isFBE, originalCourseLanguage }} />\n ) : (\n <PaidModalBody\n {...{\n selectedIndex,\n setSelectedIndex,\n courseEnabledLanguages,\n originalCourseLanguage,\n }}\n />\n )}\n </StandardModal>\n );\n};\n\nTranslationModal.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n close: PropTypes.func.isRequired,\n selectedLanguage: PropTypes.string.isRequired,\n setSelectedLanguage: PropTypes.func.isRequired,\n availableLanguages: PropTypes.arrayOf(\n PropTypes.shape({\n code: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n }),\n ).isRequired,\n isFBE: PropTypes.bool.isRequired,\n verifiedMode: PropTypes.shape({\n currencySymbol: PropTypes.string,\n price: PropTypes.number,\n upgradeUrl: PropTypes.string,\n }).isRequired,\n isAuditMode: PropTypes.bool.isRequired,\n logEventProperties: PropTypes.shape({\n org_key: PropTypes.string.isRequired,\n courserun_key: PropTypes.string.isRequired,\n course_name: PropTypes.string.isRequired,\n }).isRequired,\n originalCourseLanguage: PropTypes.string.isRequired,\n};\n\nexport default TranslationModal;\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.
|
|
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
|
}
|