@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.
Files changed (25) hide show
  1. package/dist/index.js +7 -0
  2. package/dist/index.js.map +1 -1
  3. package/dist/translation-button/feedback-widget/FeedbackDetailsModal.js +2 -1
  4. package/dist/translation-button/feedback-widget/FeedbackDetailsModal.js.map +1 -1
  5. package/dist/translation-button/feedback-widget/index.js +1 -1
  6. package/dist/translation-button/feedback-widget/index.js.map +1 -1
  7. package/dist/translation-button/translation-selection/translation-modal/LanguageSelector.js +1 -1
  8. package/dist/translation-button/translation-selection/translation-modal/LanguageSelector.js.map +1 -1
  9. package/dist/translation-button/translation-selection/translation-modal/TranslationModal.js +1 -0
  10. package/dist/translation-button/translation-selection/translation-modal/TranslationModal.js.map +1 -1
  11. package/dist/translation-button/translation-selection/useSelectLanguage.js +9 -26
  12. package/dist/translation-button/translation-selection/useSelectLanguage.js.map +1 -1
  13. package/dist/translations-error/index.js +93 -0
  14. package/dist/translations-error/index.js.map +1 -0
  15. package/dist/translations-error/messages.js +36 -0
  16. package/dist/translations-error/messages.js.map +1 -0
  17. package/dist/translations-loader/index.js +12 -18
  18. package/dist/translations-loader/index.js.map +1 -1
  19. package/dist/utils/localStorage.js +40 -0
  20. package/dist/utils/localStorage.js.map +1 -0
  21. package/dist/utils/performance.js +16 -0
  22. package/dist/utils/performance.js.map +1 -0
  23. package/dist/utils/useTranslationInfo.js +33 -0
  24. package/dist/utils/useTranslationInfo.js.map +1 -0
  25. 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":"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","ignoreList":[]}
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
- maxlength: "1000",
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":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAQA,IAAAK,SAAA,GAAAH,sBAAA,CAAAF,OAAA;AAAkC,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAE,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAE,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,wBAAAQ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAE,CAAA;AAAA,SAAAkB,eAAAhB,CAAA,EAAAJ,CAAA,WAAAqB,eAAA,CAAAjB,CAAA,KAAAkB,qBAAA,CAAAlB,CAAA,EAAAJ,CAAA,KAAAuB,2BAAA,CAAAnB,CAAA,EAAAJ,CAAA,KAAAwB,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAnB,CAAA,EAAAsB,CAAA,QAAAtB,CAAA,2BAAAA,CAAA,SAAAuB,iBAAA,CAAAvB,CAAA,EAAAsB,CAAA,OAAAxB,CAAA,MAAA0B,QAAA,CAAAZ,IAAA,CAAAZ,CAAA,EAAAyB,KAAA,6BAAA3B,CAAA,IAAAE,CAAA,CAAA0B,WAAA,KAAA5B,CAAA,GAAAE,CAAA,CAAA0B,WAAA,CAAAC,IAAA,aAAA7B,CAAA,cAAAA,CAAA,GAAA8B,KAAA,CAAAC,IAAA,CAAA7B,CAAA,oBAAAF,CAAA,+CAAAgC,IAAA,CAAAhC,CAAA,IAAAyB,iBAAA,CAAAvB,CAAA,EAAAsB,CAAA;AAAA,SAAAC,kBAAAvB,CAAA,EAAAsB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAtB,CAAA,CAAA+B,MAAA,MAAAT,CAAA,GAAAtB,CAAA,CAAA+B,MAAA,YAAAnC,CAAA,MAAAK,CAAA,GAAA2B,KAAA,CAAAN,CAAA,GAAA1B,CAAA,GAAA0B,CAAA,EAAA1B,CAAA,IAAAK,CAAA,CAAAL,CAAA,IAAAI,CAAA,CAAAJ,CAAA,UAAAK,CAAA;AAAA,SAAAiB,sBAAAlB,CAAA,EAAAgC,CAAA,QAAAlC,CAAA,WAAAE,CAAA,gCAAAiC,MAAA,IAAAjC,CAAA,CAAAiC,MAAA,CAAAC,QAAA,KAAAlC,CAAA,4BAAAF,CAAA,QAAAF,CAAA,EAAAK,CAAA,EAAAE,CAAA,EAAAgC,CAAA,EAAAb,CAAA,OAAAlB,CAAA,OAAAF,CAAA,iBAAAC,CAAA,IAAAL,CAAA,GAAAA,CAAA,CAAAc,IAAA,CAAAZ,CAAA,GAAAoC,IAAA,QAAAJ,CAAA,QAAAnB,MAAA,CAAAf,CAAA,MAAAA,CAAA,UAAAM,CAAA,uBAAAA,CAAA,IAAAR,CAAA,GAAAO,CAAA,CAAAS,IAAA,CAAAd,CAAA,GAAAuC,IAAA,MAAAf,CAAA,CAAAgB,IAAA,CAAA1C,CAAA,CAAA2C,KAAA,GAAAjB,CAAA,CAAAS,MAAA,KAAAC,CAAA,GAAA5B,CAAA,iBAAAJ,CAAA,IAAAE,CAAA,OAAAD,CAAA,GAAAD,CAAA,yBAAAI,CAAA,YAAAN,CAAA,eAAAqC,CAAA,GAAArC,CAAA,cAAAe,MAAA,CAAAsB,CAAA,MAAAA,CAAA,2BAAAjC,CAAA,QAAAD,CAAA,aAAAqB,CAAA;AAAA,SAAAL,gBAAAjB,CAAA,QAAA4B,KAAA,CAAAY,OAAA,CAAAxC,CAAA,UAAAA,CAAA;AAE3B,IAAMyC,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG,QAAQ;AACvC,IAAME,uBAAuB,GAAAD,OAAA,CAAAC,uBAAA,GAAG,SAAS;AACzC,IAAMC,4BAA4B,GAAAF,OAAA,CAAAE,4BAAA,GAAG,cAAc;AACnD,IAAMC,qBAAqB,GAAAH,OAAA,CAAAG,qBAAA,GAAG,OAAO;AAE5C,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAMpB;EAAA,IALJC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,oBAAoB,GAAAH,IAAA,CAApBG,oBAAoB;IACpBC,sBAAsB,GAAAJ,IAAA,CAAtBI,sBAAsB;IACtBC,sBAAsB,GAAAL,IAAA,CAAtBK,sBAAsB;EAEtB,IAAAC,QAAA,GAA0B,IAAAC,aAAO,EAAC,CAAC;IAA3BC,aAAa,GAAAF,QAAA,CAAbE,aAAa;EACrB,IAAMC,YAAY,GAAG,IAAAC,eAAS,EAAC,CAAC;EAChC,IAAMC,GAAG,GAAG,IAAAC,WAAK,EAACH,YAAY,CAAC,GAAG,KAAK,GAAG,KAAK;EAC/C,IAAAI,SAAA,GAA8C,IAAAC,eAAQ,EAAC,EAAE,CAAC;IAAAC,UAAA,GAAA9C,cAAA,CAAA4C,SAAA;IAAnDG,eAAe,GAAAD,UAAA;IAAEE,kBAAkB,GAAAF,UAAA;EAC1C,IAAAG,UAAA,GAAwD,IAAAJ,eAAQ,EAAC,IAAI,CAAC;IAAAK,UAAA,GAAAlD,cAAA,CAAAiD,UAAA;IAA/DE,oBAAoB,GAAAD,UAAA;IAAEE,uBAAuB,GAAAF,UAAA;EAEpD,IAAAG,qBAAA,GAAwC,IAAAC,6BAAoB,EAAC,EAAE,CAAC;IAAAC,sBAAA,GAAAvD,cAAA,CAAAqD,qBAAA;IAAzDG,YAAY,GAAAD,sBAAA;IAAAE,sBAAA,GAAAF,sBAAA;IAAIG,GAAG,GAAAD,sBAAA,CAAHC,GAAG;IAAEC,MAAM,GAAAF,sBAAA,CAANE,MAAM;EAElC,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAA,EAAS;IACrB,IAAI1B,oBAAoB,EAAE;MACxBC,sBAAsB,CAACY,eAAe,EAAEI,oBAAoB,CAAC;IAC/D,CAAC,MAAM;MACLf,sBAAsB,CAACoB,YAAY,EAAET,eAAe,EAAEI,oBAAoB,CAAC;IAC7E;IACAlB,KAAK,CAAC,CAAC;EACT,CAAC;EAED,IAAM4B,UAAU,GAAG,CACjB;IAAEC,IAAI,EAAErC,sBAAsB;IAAEd,IAAI,EAAE4B,aAAa,CAACwB,oBAAQ,CAACC,kCAAkC;EAAE,CAAC,EAClG;IAAEF,IAAI,EAAEnC,uBAAuB;IAAEhB,IAAI,EAAE4B,aAAa,CAACwB,oBAAQ,CAACE,mCAAmC;EAAE,CAAC,EACpG;IAAEH,IAAI,EAAElC,4BAA4B;IAAEjB,IAAI,EAAE4B,aAAa,CAACwB,oBAAQ,CAACG,uCAAuC;EAAE,CAAC,EAC7G;IAAEJ,IAAI,EAAEjC,qBAAqB;IAAElB,IAAI,EAAE4B,aAAa,CAACwB,oBAAQ,CAACI,gCAAgC;EAAE,CAAC,CAChG;EAED,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGxF,CAAC,EAAI;IAC9B,IAAIA,CAAC,CAACyF,MAAM,CAACC,OAAO,EAAE;MACpBZ,GAAG,CAAC9E,CAAC,CAACyF,MAAM,CAAC9C,KAAK,CAAC;IACrB,CAAC,MAAM;MACLoC,MAAM,CAAC/E,CAAC,CAACyF,MAAM,CAAC9C,KAAK,CAAC;IACxB;EACF,CAAC;EAED,IAAMgD,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAK,EAAK;IACrCxB,kBAAkB,CAACwB,KAAK,CAACH,MAAM,CAAC9C,KAAK,CAAC;EACxC,CAAC;EAED,IAAMkD,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAI7F,CAAC,EAAK;IACjCwE,uBAAuB,CAACxE,CAAC,CAACyF,MAAM,CAACC,OAAO,CAAC;EAC3C,CAAC;EAED,oBACE,IAAA3F,WAAA,CAAA+F,IAAA,EAACjG,QAAA,CAAAkG,aAAa;IACZC,KAAK,EAAErC,aAAa,CAACwB,oBAAQ,CAACc,yBAAyB,CAAE;IACzD7C,MAAM,EAAEA,MAAO;IACf8C,OAAO,EAAE7C,KAAM;IACf8C,UAAU,eACR,IAAApG,WAAA,CAAAqG,GAAA,EAACvG,QAAA,CAAAwG,SAAS;MAAAC,QAAA,eACR,IAAAvG,WAAA,CAAAqG,GAAA,EAACvG,QAAA,CAAA0G,MAAM;QAACC,OAAO,EAAExB,QAAS;QAAC,eAAY,sCAAsC;QAAAsB,QAAA,EAC1E3C,aAAa,CAACwB,oBAAQ,CAACsB,8BAA8B;MAAC,CACjD;IAAC,CACA,CACX;IAAAH,QAAA,gBAEF,IAAAvG,WAAA,CAAA+F,IAAA;MAAKhC,GAAG,EAAEA,GAAI;MAAAwC,QAAA,GAEV,CAAChD,oBAAoB,iBACnB,IAAAvD,WAAA,CAAAqG,GAAA,EAACvG,QAAA,CAAA6G,IAAI,CAACC,WAAW;QACfC,SAAS,EAAC,MAAM;QAChB7E,IAAI,EAAC,SAAS;QACd8E,QAAQ,EAAErB,kBAAmB;QAC7B7C,KAAK,EAAEiC,YAAa;QACpB,eAAY,2CAA2C;QAAA0B,QAAA,EAEtDrB,UAAU,CAAC6B,GAAG,CAAC,UAACC,MAAM;UAAA,oBACrB,IAAAhH,WAAA,CAAAqG,GAAA,EAACvG,QAAA,CAAA6G,IAAI,CAACM,QAAQ;YAEZrE,KAAK,EAAEoE,MAAM,CAAC7B,IAAK;YACnB,yDAAA+B,MAAA,CAAuDF,MAAM,CAAC7B,IAAI,CAAG;YAAAoB,QAAA,EAEpES,MAAM,CAAChF;UAAI,GAJPgF,MAAM,CAAC7B,IAKC,CAAC;QAAA,CACjB;MAAC,CACc,CACnB,eAEH,IAAAnF,WAAA,CAAAqG,GAAA,EAACvG,QAAA,CAAA6G,IAAI,CAACQ,OAAO;QACXC,EAAE,EAAC,UAAU;QACbN,QAAQ,EAAElB,mBAAoB;QAC9ByB,WAAW,EAAEzD,aAAa,CAACwB,oBAAQ,CAACkC,+BAA+B,CAAE;QACrEC,IAAI,EAAC,GAAG;QACRC,SAAS,EAAC,MAAM;QAChB,eAAY;MAAgC,CAC7C,CAAC,eACF,IAAAxH,WAAA,CAAA+F,IAAA;QAAGc,SAAS,EAAC,uBAAuB;QAAAN,QAAA,GACjCnC,eAAe,CAAChC,MAAM,EAAC,SAC1B;MAAA,CAAG,CAAC;IAAA,CACD,CAAC,eACN,IAAApC,WAAA,CAAAqG,GAAA,EAACvG,QAAA,CAAA6G,IAAI,CAACM,QAAQ;MACZ,eAAY,0CAA0C;MACtDtB,OAAO,EAAEnB,oBAAqB;MAC9BsC,QAAQ,EAAEhB,mBAAoB;MAAAS,QAAA,EAE7B3C,aAAa,CAACwB,oBAAQ,CAACqC,+BAA+B;IAAC,CAC3C,CAAC;EAAA,CACH,CAAC;AAEpB,CAAC;AAEDtE,oBAAoB,CAACuE,SAAS,GAAG;EAC/BrE,MAAM,EAAEsE,qBAAS,CAACC,IAAI,CAACC,UAAU;EACjCvE,KAAK,EAAEqE,qBAAS,CAACG,IAAI,CAACD,UAAU;EAChCtE,oBAAoB,EAAEoE,qBAAS,CAACC,IAAI,CAACC,UAAU;EAC/CrE,sBAAsB,EAAEmE,qBAAS,CAACG,IAAI,CAACD,UAAU;EACjDpE,sBAAsB,EAAEkE,qBAAS,CAACG,IAAI,CAACD;AACzC,CAAC;AAAC,IAAAE,QAAA,GAAAhF,OAAA,cAEaI,oBAAoB","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)(null),
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":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAEA,IAAAK,QAAA,GAAAL,OAAA;AAMA,IAAAM,MAAA,GAAAN,OAAA;AAEAA,OAAA;AACA,IAAAO,SAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,qBAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,mBAAA,GAAAP,sBAAA,CAAAF,OAAA;AAAoD,IAAAU,WAAA,GAAAV,OAAA;AAAA,SAAAE,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAAA,SAAAZ,wBAAAY,CAAA,EAAAE,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAf,uBAAA,YAAAA,wBAAAY,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAE,CAAA;AAAA,SAAAkB,eAAAhB,CAAA,EAAAJ,CAAA,WAAAqB,eAAA,CAAAjB,CAAA,KAAAkB,qBAAA,CAAAlB,CAAA,EAAAJ,CAAA,KAAAuB,2BAAA,CAAAnB,CAAA,EAAAJ,CAAA,KAAAwB,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAnB,CAAA,EAAAsB,CAAA,QAAAtB,CAAA,2BAAAA,CAAA,SAAAuB,iBAAA,CAAAvB,CAAA,EAAAsB,CAAA,OAAAxB,CAAA,MAAA0B,QAAA,CAAAZ,IAAA,CAAAZ,CAAA,EAAAyB,KAAA,6BAAA3B,CAAA,IAAAE,CAAA,CAAA0B,WAAA,KAAA5B,CAAA,GAAAE,CAAA,CAAA0B,WAAA,CAAAC,IAAA,aAAA7B,CAAA,cAAAA,CAAA,GAAA8B,KAAA,CAAAC,IAAA,CAAA7B,CAAA,oBAAAF,CAAA,+CAAAgC,IAAA,CAAAhC,CAAA,IAAAyB,iBAAA,CAAAvB,CAAA,EAAAsB,CAAA;AAAA,SAAAC,kBAAAvB,CAAA,EAAAsB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAtB,CAAA,CAAA+B,MAAA,MAAAT,CAAA,GAAAtB,CAAA,CAAA+B,MAAA,YAAAnC,CAAA,MAAAK,CAAA,GAAA2B,KAAA,CAAAN,CAAA,GAAA1B,CAAA,GAAA0B,CAAA,EAAA1B,CAAA,IAAAK,CAAA,CAAAL,CAAA,IAAAI,CAAA,CAAAJ,CAAA,UAAAK,CAAA;AAAA,SAAAiB,sBAAAlB,CAAA,EAAAgC,CAAA,QAAAlC,CAAA,WAAAE,CAAA,gCAAAiC,MAAA,IAAAjC,CAAA,CAAAiC,MAAA,CAAAC,QAAA,KAAAlC,CAAA,4BAAAF,CAAA,QAAAF,CAAA,EAAAK,CAAA,EAAAE,CAAA,EAAAgC,CAAA,EAAAb,CAAA,OAAAlB,CAAA,OAAAF,CAAA,iBAAAC,CAAA,IAAAL,CAAA,GAAAA,CAAA,CAAAc,IAAA,CAAAZ,CAAA,GAAAoC,IAAA,QAAAJ,CAAA,QAAAnB,MAAA,CAAAf,CAAA,MAAAA,CAAA,UAAAM,CAAA,uBAAAA,CAAA,IAAAR,CAAA,GAAAO,CAAA,CAAAS,IAAA,CAAAd,CAAA,GAAAuC,IAAA,MAAAf,CAAA,CAAAgB,IAAA,CAAA1C,CAAA,CAAA2C,KAAA,GAAAjB,CAAA,CAAAS,MAAA,KAAAC,CAAA,GAAA5B,CAAA,iBAAAJ,CAAA,IAAAE,CAAA,OAAAD,CAAA,GAAAD,CAAA,yBAAAI,CAAA,YAAAN,CAAA,eAAAqC,CAAA,GAAArC,CAAA,cAAAe,MAAA,CAAAsB,CAAA,MAAAA,CAAA,2BAAAjC,CAAA,QAAAD,CAAA,aAAAqB,CAAA;AAAA,SAAAL,gBAAAjB,CAAA,QAAA4B,KAAA,CAAAY,OAAA,CAAAxC,CAAA,UAAAA,CAAA;AAEpD,IAAMyC,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAEd;EAAA,IADJC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,cAAc,GAAAF,IAAA,CAAdE,cAAc;IAAEC,mBAAmB,GAAAH,IAAA,CAAnBG,mBAAmB;IAAEC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IAAEC,MAAM,GAAAL,IAAA,CAANK,MAAM;EAE7D,IAAAC,QAAA,GAA0B,IAAAC,aAAO,EAAC,CAAC;IAA3BC,aAAa,GAAAF,QAAA,CAAbE,aAAa;EACrB,IAAMC,GAAG,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EACxB,IAAAC,SAAA,GAAkC,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAAC,UAAA,GAAAvC,cAAA,CAAAqC,SAAA;IAA1CG,SAAS,GAAAD,UAAA;IAAEE,YAAY,GAAAF,UAAA;EAC9B,IAAAG,UAAA,GAAoE,IAAAJ,eAAQ,EAAC,KAAK,CAAC;IAAAK,UAAA,GAAA3C,cAAA,CAAA0C,UAAA;IAA5EE,0BAA0B,GAAAD,UAAA;IAAEE,6BAA6B,GAAAF,UAAA;EAChE,IAAAG,UAAA,GAAwD,IAAAR,eAAQ,EAAC,IAAI,CAAC;IAAAS,UAAA,GAAA/C,cAAA,CAAA8C,UAAA;IAA/DE,oBAAoB,GAAAD,UAAA;IAAEE,uBAAuB,GAAAF,UAAA;EACpD,IAAAG,kBAAA,GAOI,IAAAC,8BAAiB,EAAC;MACpBxB,QAAQ,EAARA,QAAQ;MACRC,cAAc,EAAdA,cAAc;MACdC,mBAAmB,EAAnBA,mBAAmB;MACnBC,MAAM,EAANA,MAAM;MACNC,MAAM,EAANA;IACF,CAAC,CAAC;IAZAqB,mBAAmB,GAAAF,kBAAA,CAAnBE,mBAAmB;IACnBC,SAAS,GAAAH,kBAAA,CAATG,SAAS;IACTC,kBAAkB,GAAAJ,kBAAA,CAAlBI,kBAAkB;IAClBC,iBAAiB,GAAAL,kBAAA,CAAjBK,iBAAiB;IACjBC,sBAAsB,GAAAN,kBAAA,CAAtBM,sBAAsB;IACtBC,sBAAsB,GAAAP,kBAAA,CAAtBO,sBAAsB;EASxB,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,OAAO,GAAGC,QAAQ,CAACC,cAAc,CACrC,0CACF,CAAC;IACD,IAAI1B,GAAG,CAAC2B,OAAO,IAAIH,OAAO,EAAE;MAC1B,OAAOA,OAAO,CAACI,UAAU,EAAE;QACzBJ,OAAO,CAACK,WAAW,CAACL,OAAO,CAACM,SAAS,CAAC;MACxC;MACAN,OAAO,CAACO,WAAW,CAAC/B,GAAG,CAAC2B,OAAO,CAAC;MAChCrB,YAAY,CAAC,IAAI,CAAC;IACpB;EACF,CAAC,EAAE,CAACN,GAAG,CAAC2B,OAAO,CAAC,CAAC;EAEjB,IAAI,CAAC,IAAAK,2BAAS,EAAC,CAAC,CAACC,mBAAmB,EAAE;IACpC,OAAO,IAAI;EACb;EAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;IAC5BpB,uBAAuB,CAAC,IAAI,CAAC;IAC7BJ,6BAA6B,CAAC,IAAI,CAAC;EACrC,CAAC;EAED,IAAMyB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAS;IAC9BrB,uBAAuB,CAAC,KAAK,CAAC;IAC9BJ,6BAA6B,CAAC,IAAI,CAAC;EACrC,CAAC;EAED,IAAM0B,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAA,EAAS;IACxC1B,6BAA6B,CAAC,KAAK,CAAC;EACtC,CAAC;EAED,oBACE,IAAAlE,WAAA,CAAA6F,GAAA;IACErC,GAAG,EAAEA,GAAI;IACTsC,SAAS,EACPjC,SAAS,GAAG,iDAAiD,GAAG,QACjE;IAAAkC,QAAA,EAEApB,kBAAkB,IAAIC,iBAAiB,IAAIF,SAAS,gBACnD,IAAA1E,WAAA,CAAAgG,IAAA;MAAKF,SAAS,EAAC,gBAAgB;MAAAC,QAAA,GAC5BpB,kBAAkB,KACjBD,SAAS,gBACP,IAAA1E,WAAA,CAAA6F,GAAA;QAAKC,SAAS,EAAC,WAAW;QAAAC,QAAA,eACxB,IAAA/F,WAAA,CAAA6F,GAAA,EAAClG,QAAA,CAAAsG,SAAS;UAACH,SAAS,EAAC,4BAA4B;UAAAC,QAAA,eAC/C,IAAA/F,WAAA,CAAA6F,GAAA,EAAClG,QAAA,CAAAuG,OAAO;YAACC,SAAS,EAAC,QAAQ;YAACC,OAAO,EAAC,SAAS;YAACN,SAAS,EAAC,MAAM;YAACO,gBAAgB,EAAC;UAAS,CAAE;QAAC,CACnF;MAAC,CACT,CAAC,gBAEN,IAAArG,WAAA,CAAA6F,GAAA;QAAKC,SAAS,EAAC,WAAW;QAAAC,QAAA,eACxB,IAAA/F,WAAA,CAAAgG,IAAA,EAACrG,QAAA,CAAAsG,SAAS;UAAAF,QAAA,GACPxC,aAAa,CAAC+C,oBAAQ,CAACC,mBAAmB,CAAC,eAC5C,IAAAvG,WAAA,CAAA6F,GAAA,EAAClG,QAAA,CAAAsG,SAAS,CAACO,MAAM,IAAE,CAAC,eACpB,IAAAxG,WAAA,CAAAgG,IAAA;YAAAD,QAAA,gBACE,IAAA/F,WAAA,CAAA6F,GAAA,EAAClG,QAAA,CAAA8G,UAAU;cACTC,GAAG,EAAEC,qBAAe;cACpBC,MAAM,EAAEC,aAAK;cACbC,GAAG,EAAC,mBAAmB;cACvBC,OAAO,EAAErB,eAAgB;cACzBU,OAAO,EAAC,WAAW;cACnBN,SAAS,EAAC,KAAK;cACfkB,EAAE,EAAC;YAA0B,CAC9B,CAAC,eACF,IAAAhH,WAAA,CAAA6F,GAAA,EAAClG,QAAA,CAAA8G,UAAU;cACTC,GAAG,EAAEO,sBAAgB;cACrBL,MAAM,EAAEC,aAAK;cACbC,GAAG,EAAC,mBAAmB;cACvBC,OAAO,EAAEpB,iBAAkB;cAC3BS,OAAO,EAAC,WAAW;cACnBN,SAAS,EAAC,MAAM;cAChBkB,EAAE,EAAC;YAA0B,CAC9B,CAAC;UAAA,CACC,CAAC,eACN,IAAAhH,WAAA,CAAA6F,GAAA;YAAKC,SAAS,EAAC,oCAAoC;YAAAC,QAAA,EAAC;UAAC,CAAK,CAAC,eAC3D,IAAA/F,WAAA,CAAA6F,GAAA;YAAAE,QAAA,eACE,IAAA/F,WAAA,CAAA6F,GAAA,EAAClG,QAAA,CAAA8G,UAAU;cACTC,GAAG,EAAEQ,YAAM;cACXN,MAAM,EAAEC,aAAK;cACbC,GAAG,EAAC,gBAAgB;cACpBC,OAAO,EAAEtC,mBAAoB;cAC7B2B,OAAO,EAAC,WAAW;cACnBN,SAAS,EAAC,uBAAuB;cACjCkB,EAAE,EAAC;YAAuB,CAC3B;UAAC,CACC,CAAC;QAAA,CACG;MAAC,CACT,CACN,CACF,EACApC,iBAAiB,iBAChB,IAAA5E,WAAA,CAAA6F,GAAA;QAAKC,SAAS,EAAC,WAAW;QAAAC,QAAA,eACxB,IAAA/F,WAAA,CAAA6F,GAAA,EAAClG,QAAA,CAAAsG,SAAS;UAACH,SAAS,EAAC,4BAA4B;UAAAC,QAAA,EAC9CxC,aAAa,CAAC+C,oBAAQ,CAACa,aAAa;QAAC,CAC7B;MAAC,CACT,CACN,eACD,IAAAnH,WAAA,CAAA6F,GAAA,EAAC/F,qBAAA,WAAoB;QACnBsH,MAAM,EAAEnD,0BAA2B;QACnCoD,KAAK,EAAEzB,2BAA4B;QACnCvB,oBAAoB,EAAEA,oBAAqB;QAC3CQ,sBAAsB,EAAEA,sBAAuB;QAC/CC,sBAAsB,EAAEA;MAAuB,CAChD,CAAC;IAAA,CACC,CAAC,GACJ;EAAI,CACL,CAAC;AAEV,CAAC;AAEDhC,cAAc,CAACwE,SAAS,GAAG;EACzBtE,QAAQ,EAAEuE,qBAAS,CAACC,MAAM,CAACC,UAAU;EACrCxE,cAAc,EAAEsE,qBAAS,CAACC,MAAM,CAACC,UAAU;EAC3CvE,mBAAmB,EAAEqE,qBAAS,CAACC,MAAM,CAACC,UAAU;EAChDrE,MAAM,EAAEmE,qBAAS,CAACC,MAAM,CAACC,UAAU;EACnCtE,MAAM,EAAEoE,qBAAS,CAACC,MAAM,CAACC;AAC3B,CAAC;AAED3E,cAAc,CAAC4E,YAAY,GAAG,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAElB9E,cAAc","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,
@@ -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":"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","ignoreList":[]}
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,
@@ -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":"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","ignoreList":[]}
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.stateKeys = exports.selectedLanguageKey = exports["default"] = void 0;
6
+ exports["default"] = void 0;
8
7
  var _react = require("react");
9
- var _reactUnitTestUtils = require("@edx/react-unit-test-utils");
10
- var _localStorage = require("@src/data/localStorage");
11
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
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 selectedLanguageItem = (0, _localStorage.getLocalStorage)(selectedLanguageKey) || {};
32
- var _useKeyedState = (0, _reactUnitTestUtils.useKeyedState)(stateKeys.selectedLanguage, selectedLanguageItem[courseId] || courseLanguage),
33
- _useKeyedState2 = _slicedToArray(_useKeyedState, 2),
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.setLocalStorage)(selectedLanguageKey, _objectSpread(_objectSpread({}, selectedLanguageItem), {}, _defineProperty({}, courseId, newSelectedLanguage)));
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.setLocalStorage)(selectedLanguageKey, _objectSpread(_objectSpread({}, selectedLanguageItem), {}, _defineProperty({}, courseId, validLanguage)));
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","_reactUnitTestUtils","_localStorage","ownKeys","e","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","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","n","l","iterator","u","f","next","done","isArray","selectedLanguageKey","exports","stateKeys","StrictDict","selectedLanguage","useSelectLanguage","_ref","courseId","courseLanguage","_ref$availableLanguag","availableLanguages","selectedLanguageItem","getLocalStorage","_useKeyedState","useKeyedState","_useKeyedState2","updateSelectedLanguage","setSelectedLanguage","useCallback","newSelectedLanguage","setLocalStorage","isValidSelectedLanguage","some","lang","code","validLanguage","_default"],"sources":["../../../src/translation-button/translation-selection/useSelectLanguage.js"],"sourcesContent":["import { useCallback } from 'react';\nimport { StrictDict, useKeyedState } from '@edx/react-unit-test-utils';\nimport {\n getLocalStorage,\n setLocalStorage,\n} from '@src/data/localStorage';\n\nexport const selectedLanguageKey = 'selectedLanguages';\n\nexport const stateKeys = StrictDict({\n selectedLanguage: 'selectedLanguage',\n});\n\nconst useSelectLanguage = ({ courseId, courseLanguage, availableLanguages = [] }) => {\n const selectedLanguageItem = getLocalStorage(selectedLanguageKey) || {};\n const [selectedLanguage, updateSelectedLanguage] = useKeyedState(\n stateKeys.selectedLanguage,\n selectedLanguageItem[courseId] || courseLanguage,\n );\n\n const setSelectedLanguage = useCallback((newSelectedLanguage) => {\n setLocalStorage(selectedLanguageKey, {\n ...selectedLanguageItem,\n [courseId]: newSelectedLanguage,\n });\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 setLocalStorage(selectedLanguageKey, {\n ...selectedLanguageItem,\n [courseId]: validLanguage,\n });\n }\n\n return {\n selectedLanguage: validLanguage,\n setSelectedLanguage,\n };\n};\n\nexport default useSelectLanguage;\n"],"mappings":"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","ignoreList":[]}
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.stateKeys = exports.selectedLanguageKey = exports["default"] = exports.LONG_LOADING_DELAY_MS = void 0;
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 _useModel = (0, _modelStore.useModel)('coursewareMeta', courseId),
37
- language = _useModel.language;
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
- if (courseLanguage !== selectedLanguage) {
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
- }, [courseLanguage, selectedLanguage]);
58
- return courseLanguage !== selectedLanguage ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
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","_reactUnitTestUtils","_modelStore","_i18n","_localStorage","_messages","_SVGLoader","_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","selectedLanguageKey","exports","stateKeys","StrictDict","selectedLanguage","LONG_LOADING_DELAY_MS","TranslationsLoader","_ref","courseId","defaultLoaderComponent","_useIntl","useIntl","formatMessage","_useModel","useModel","language","courseLanguage","selectedLanguageItem","getLocalStorage","_useKeyedState","useKeyedState","_useKeyedState2","_useState","useState","_useState2","showAdditionalMessage","setShowAdditionalMessage","useEffect","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 { StrictDict, useKeyedState } from '@edx/react-unit-test-utils';\nimport { useModel } from '@src/generic/model-store';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { getLocalStorage } from '@src/data/localStorage';\n\nimport messages from './messages';\nimport SVGLoader from './SVGLoader';\nimport './index.scss';\n\nexport const selectedLanguageKey = 'selectedLanguages';\nexport const stateKeys = StrictDict({\n selectedLanguage: 'selectedLanguage',\n});\n\nexport const LONG_LOADING_DELAY_MS = 2000;\n\nconst TranslationsLoader = ({ courseId, defaultLoaderComponent }) => {\n const { formatMessage } = useIntl();\n const { language } = useModel('coursewareMeta', courseId);\n const courseLanguage = language || 'en';\n const selectedLanguageItem = getLocalStorage(selectedLanguageKey) || {};\n const [selectedLanguage] = useKeyedState(\n stateKeys.selectedLanguage,\n selectedLanguageItem[courseId] || courseLanguage,\n );\n\n const [showAdditionalMessage, setShowAdditionalMessage] = useState(false);\n\n useEffect(() => {\n if (courseLanguage !== selectedLanguage) {\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 }, [courseLanguage, selectedLanguage]);\n\n return courseLanguage !== selectedLanguage ? (\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":[]}
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":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAEA,IAAAI,SAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,UAAA,GAAAH,sBAAA,CAAAF,OAAA;AACAA,OAAA;AACA,IAAAM,oBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AAAkE,IAAAQ,WAAA,GAAAR,OAAA;AAAA,SAAAE,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAb,uBAAA,YAAAA,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAE,CAAA;AAAA,SAAAkB,eAAAhB,CAAA,EAAAJ,CAAA,WAAAqB,eAAA,CAAAjB,CAAA,KAAAkB,qBAAA,CAAAlB,CAAA,EAAAJ,CAAA,KAAAuB,2BAAA,CAAAnB,CAAA,EAAAJ,CAAA,KAAAwB,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAnB,CAAA,EAAAsB,CAAA,QAAAtB,CAAA,2BAAAA,CAAA,SAAAuB,iBAAA,CAAAvB,CAAA,EAAAsB,CAAA,OAAAxB,CAAA,MAAA0B,QAAA,CAAAZ,IAAA,CAAAZ,CAAA,EAAAyB,KAAA,6BAAA3B,CAAA,IAAAE,CAAA,CAAA0B,WAAA,KAAA5B,CAAA,GAAAE,CAAA,CAAA0B,WAAA,CAAAC,IAAA,aAAA7B,CAAA,cAAAA,CAAA,GAAA8B,KAAA,CAAAC,IAAA,CAAA7B,CAAA,oBAAAF,CAAA,+CAAAgC,IAAA,CAAAhC,CAAA,IAAAyB,iBAAA,CAAAvB,CAAA,EAAAsB,CAAA;AAAA,SAAAC,kBAAAvB,CAAA,EAAAsB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAtB,CAAA,CAAA+B,MAAA,MAAAT,CAAA,GAAAtB,CAAA,CAAA+B,MAAA,YAAAnC,CAAA,MAAAK,CAAA,GAAA2B,KAAA,CAAAN,CAAA,GAAA1B,CAAA,GAAA0B,CAAA,EAAA1B,CAAA,IAAAK,CAAA,CAAAL,CAAA,IAAAI,CAAA,CAAAJ,CAAA,UAAAK,CAAA;AAAA,SAAAiB,sBAAAlB,CAAA,EAAAgC,CAAA,QAAAlC,CAAA,WAAAE,CAAA,gCAAAiC,MAAA,IAAAjC,CAAA,CAAAiC,MAAA,CAAAC,QAAA,KAAAlC,CAAA,4BAAAF,CAAA,QAAAF,CAAA,EAAAK,CAAA,EAAAE,CAAA,EAAAgC,CAAA,EAAAb,CAAA,OAAAlB,CAAA,OAAAF,CAAA,iBAAAC,CAAA,IAAAL,CAAA,GAAAA,CAAA,CAAAc,IAAA,CAAAZ,CAAA,GAAAoC,IAAA,QAAAJ,CAAA,QAAAnB,MAAA,CAAAf,CAAA,MAAAA,CAAA,UAAAM,CAAA,uBAAAA,CAAA,IAAAR,CAAA,GAAAO,CAAA,CAAAS,IAAA,CAAAd,CAAA,GAAAuC,IAAA,MAAAf,CAAA,CAAAgB,IAAA,CAAA1C,CAAA,CAAA2C,KAAA,GAAAjB,CAAA,CAAAS,MAAA,KAAAC,CAAA,GAAA5B,CAAA,iBAAAJ,CAAA,IAAAE,CAAA,OAAAD,CAAA,GAAAD,CAAA,yBAAAI,CAAA,YAAAN,CAAA,eAAAqC,CAAA,GAAArC,CAAA,cAAAe,MAAA,CAAAsB,CAAA,MAAAA,CAAA,2BAAAjC,CAAA,QAAAD,CAAA,aAAAqB,CAAA;AAAA,SAAAL,gBAAAjB,CAAA,QAAA4B,KAAA,CAAAY,OAAA,CAAAxC,CAAA,UAAAA,CAAA;AAE3D,IAAMyC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,IAAI;AAEzC,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,IAAA,EAA6C;EAAA,IAAvCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,sBAAsB,GAAAF,IAAA,CAAtBE,sBAAsB;EAC5D,IAAAC,QAAA,GAA0B,IAAAC,aAAO,EAAC,CAAC;IAA3BC,aAAa,GAAAF,QAAA,CAAbE,aAAa;EACrB,IAAAC,mBAAA,GAA0B,IAAAC,+BAAkB,EAACN,QAAQ,CAAC;IAA9CO,aAAa,GAAAF,mBAAA,CAAbE,aAAa;EACrB,IAAAC,SAAA,GAA0D,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAAC,UAAA,GAAAvC,cAAA,CAAAqC,SAAA;IAAlEG,qBAAqB,GAAAD,UAAA;IAAEE,wBAAwB,GAAAF,UAAA;EAEtD,IAAAG,gBAAS,EAAC,YAAM;IAAA,IAAAC,mBAAA,EAAAC,qBAAA;IACd,CAAAD,mBAAA,GAAAE,MAAM,CAACC,WAAW,cAAAH,mBAAA,gBAAAC,qBAAA,GAAlBD,mBAAA,CAAoBI,IAAI,cAAAH,qBAAA,eAAxBA,qBAAA,CAAAhD,IAAA,CAAA+C,mBAAA,EAA2BK,uCAA0B,CAACC,OAAO,CAAC;EAChE,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAP,gBAAS,EAAC,YAAM;IACd,IAAIN,aAAa,EAAE;MACjB,IAAMc,KAAK,GAAGC,UAAU,CAAC,YAAM;QAC7BV,wBAAwB,CAAC,IAAI,CAAC;MAChC,CAAC,EAAEhB,qBAAqB,CAAC;MAEzB,OAAO;QAAA,OAAM2B,YAAY,CAACF,KAAK,CAAC;MAAA;IAClC;IACA,OAAOG,SAAS,CAAC,CAAC;EACpB,CAAC,EAAE,CAACjB,aAAa,CAAC,CAAC;EAEnB,OAAOA,aAAa,gBAClB,IAAAzD,WAAA,CAAA2E,IAAA;IACEC,SAAS,EAAC,8DAA8D;IACxEC,EAAE,EAAC,8BAA8B;IAAAC,QAAA,gBAEjC,IAAA9E,WAAA,CAAA+E,GAAA,EAAClF,UAAA,WAAS,IAAE,CAAC,eACb,IAAAG,WAAA,CAAA2E,IAAA;MAAGC,SAAS,EAAC,MAAM;MAACC,EAAE,EAAC,aAAa;MAAAC,QAAA,GACjCxB,aAAa,CAAC0B,oBAAQ,CAACC,qBAAqB,CAAC,eAC9C,IAAAjF,WAAA,CAAA2E,IAAA;QAAMC,SAAS,EAAC,oBAAoB;QAAAE,QAAA,gBAClC,IAAA9E,WAAA,CAAA+E,GAAA;UAAAD,QAAA,EAAM;QAAC,CAAM,CAAC,eACd,IAAA9E,WAAA,CAAA+E,GAAA;UAAAD,QAAA,EAAM;QAAC,CAAM,CAAC,eACd,IAAA9E,WAAA,CAAA+E,GAAA;UAAAD,QAAA,EAAM;QAAC,CAAM,CAAC;MAAA,CACV,CAAC;IAAA,CACN,CAAC,EACHjB,qBAAqB,iBACpB,IAAA7D,WAAA,CAAA2E,IAAA;MAAGC,SAAS,EAAC,MAAM;MAACC,EAAE,EAAC,oBAAoB;MAAAC,QAAA,GACxCxB,aAAa,CAAC0B,oBAAQ,CAACE,wCAAwC,CAAC,EAAC,GAAC,mBAAAlF,WAAA,CAAA+E,GAAA,UAAK,CAAC,EACxEzB,aAAa,CAAC0B,oBAAQ,CAACG,uCAAuC,CAAC;IAAA,CAC/D,CACJ;EAAA,CACE,CAAC,GAENhC,sBACD;AACH,CAAC;AAEDH,kBAAkB,CAACoC,SAAS,GAAG;EAC7BlC,QAAQ,EAAEmC,qBAAS,CAACC,MAAM,CAACC,UAAU;EACrCpC,sBAAsB,EAAEkC,qBAAS,CAACG,IAAI,CAACD;AACzC,CAAC;AAAC,IAAAE,QAAA,GAAA1C,OAAA,cAEaC,kBAAkB","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setLocalStorageLanguage = exports.getLocalStorageLanguage = exports.clearLocalStorageLanguage = void 0;
7
+ var _localStorage = require("@src/data/localStorage");
8
+ var selectedLanguageKey = 'selectedLanguages';
9
+ var getLocalStorageKey = function getLocalStorageKey(courseId) {
10
+ return "".concat(selectedLanguageKey, ".").concat(courseId);
11
+ };
12
+ var setLocalStorageLanguage = exports.setLocalStorageLanguage = function setLocalStorageLanguage(courseId, languageCode) {
13
+ var localStorageKey = getLocalStorageKey(courseId);
14
+ (0, _localStorage.setLocalStorage)(localStorageKey, languageCode);
15
+ };
16
+ var clearLocalStorageLanguage = exports.clearLocalStorageLanguage = function clearLocalStorageLanguage(courseId) {
17
+ var localStorageKey = getLocalStorageKey(courseId);
18
+ (0, _localStorage.clearLocalStorage)(localStorageKey);
19
+ };
20
+ var convertObjectToIndividualEntries = function convertObjectToIndividualEntries() {
21
+ // Convert the old style of storing all settings in one big dict
22
+ // to storing an individual namespaced field for each course language setting
23
+ var selectedLanguageSettings = (0, _localStorage.getLocalStorage)(selectedLanguageKey);
24
+ if (selectedLanguageSettings === null) {
25
+ return;
26
+ }
27
+ Object.keys(selectedLanguageSettings).forEach(function (courseId) {
28
+ setLocalStorageLanguage(courseId, selectedLanguageSettings[courseId]);
29
+ });
30
+ // Then erase the object
31
+ (0, _localStorage.clearLocalStorage)(selectedLanguageKey);
32
+ };
33
+ var getLocalStorageLanguage = exports.getLocalStorageLanguage = function getLocalStorageLanguage(courseId) {
34
+ if ((0, _localStorage.getLocalStorage)(selectedLanguageKey)) {
35
+ convertObjectToIndividualEntries();
36
+ }
37
+ var localStorageKey = getLocalStorageKey(courseId);
38
+ return (0, _localStorage.getLocalStorage)(localStorageKey);
39
+ };
40
+ //# sourceMappingURL=localStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localStorage.js","names":["_localStorage","require","selectedLanguageKey","getLocalStorageKey","courseId","concat","setLocalStorageLanguage","exports","languageCode","localStorageKey","setLocalStorage","clearLocalStorageLanguage","clearLocalStorage","convertObjectToIndividualEntries","selectedLanguageSettings","getLocalStorage","Object","keys","forEach","getLocalStorageLanguage"],"sources":["../../src/utils/localStorage.js"],"sourcesContent":["import {\n getLocalStorage,\n setLocalStorage,\n clearLocalStorage,\n} from '@src/data/localStorage';\n\nconst selectedLanguageKey = 'selectedLanguages';\nconst getLocalStorageKey = (courseId) => `${selectedLanguageKey}.${courseId}`;\n\nconst setLocalStorageLanguage = (courseId, languageCode) => {\n const localStorageKey = getLocalStorageKey(courseId);\n setLocalStorage(localStorageKey, languageCode);\n};\n\nconst clearLocalStorageLanguage = (courseId) => {\n const localStorageKey = getLocalStorageKey(courseId);\n clearLocalStorage(localStorageKey);\n};\n\nconst convertObjectToIndividualEntries = () => {\n // Convert the old style of storing all settings in one big dict\n // to storing an individual namespaced field for each course language setting\n const selectedLanguageSettings = getLocalStorage(selectedLanguageKey);\n if (selectedLanguageSettings === null) {\n return;\n }\n Object.keys(selectedLanguageSettings).forEach((courseId) => {\n setLocalStorageLanguage(courseId, selectedLanguageSettings[courseId]);\n });\n // Then erase the object\n clearLocalStorage(selectedLanguageKey);\n};\n\nconst getLocalStorageLanguage = (courseId) => {\n if (getLocalStorage(selectedLanguageKey)) {\n convertObjectToIndividualEntries();\n }\n const localStorageKey = getLocalStorageKey(courseId);\n return getLocalStorage(localStorageKey);\n};\n\nexport {\n getLocalStorageLanguage,\n setLocalStorageLanguage,\n clearLocalStorageLanguage,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAMA,IAAMC,mBAAmB,GAAG,mBAAmB;AAC/C,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,QAAQ;EAAA,UAAAC,MAAA,CAAQH,mBAAmB,OAAAG,MAAA,CAAID,QAAQ;AAAA,CAAE;AAE7E,IAAME,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,SAA1BA,uBAAuBA,CAAIF,QAAQ,EAAEI,YAAY,EAAK;EAC1D,IAAMC,eAAe,GAAGN,kBAAkB,CAACC,QAAQ,CAAC;EACpD,IAAAM,6BAAe,EAACD,eAAe,EAAED,YAAY,CAAC;AAChD,CAAC;AAED,IAAMG,yBAAyB,GAAAJ,OAAA,CAAAI,yBAAA,GAAG,SAA5BA,yBAAyBA,CAAIP,QAAQ,EAAK;EAC9C,IAAMK,eAAe,GAAGN,kBAAkB,CAACC,QAAQ,CAAC;EACpD,IAAAQ,+BAAiB,EAACH,eAAe,CAAC;AACpC,CAAC;AAED,IAAMI,gCAAgC,GAAG,SAAnCA,gCAAgCA,CAAA,EAAS;EAC7C;EACA;EACA,IAAMC,wBAAwB,GAAG,IAAAC,6BAAe,EAACb,mBAAmB,CAAC;EACrE,IAAIY,wBAAwB,KAAK,IAAI,EAAE;IACrC;EACF;EACAE,MAAM,CAACC,IAAI,CAACH,wBAAwB,CAAC,CAACI,OAAO,CAAC,UAACd,QAAQ,EAAK;IAC1DE,uBAAuB,CAACF,QAAQ,EAAEU,wBAAwB,CAACV,QAAQ,CAAC,CAAC;EACvE,CAAC,CAAC;EACF;EACA,IAAAQ,+BAAiB,EAACV,mBAAmB,CAAC;AACxC,CAAC;AAED,IAAMiB,uBAAuB,GAAAZ,OAAA,CAAAY,uBAAA,GAAG,SAA1BA,uBAAuBA,CAAIf,QAAQ,EAAK;EAC5C,IAAI,IAAAW,6BAAe,EAACb,mBAAmB,CAAC,EAAE;IACxCW,gCAAgC,CAAC,CAAC;EACpC;EACA,IAAMJ,eAAe,GAAGN,kBAAkB,CAACC,QAAQ,CAAC;EACpD,OAAO,IAAAW,6BAAe,EAACN,eAAe,CAAC;AACzC,CAAC","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.translationPerformanceKeys = exports.LONG_LOAD_NOTIFICATION_TIMEOUT = void 0;
7
+ var translationPerformanceKeys = exports.translationPerformanceKeys = {
8
+ loadKey: 'translationLoadingRendered',
9
+ errorKey: 'translationErrorRendered',
10
+ measureName: 'translationLoadToErrorTime'
11
+ };
12
+
13
+ // Timeout (in milliseconds) to show feedback to the user that a translation is taking a long time to load.
14
+ // Usually due to this being the first time we're translating a unit.
15
+ var LONG_LOAD_NOTIFICATION_TIMEOUT = exports.LONG_LOAD_NOTIFICATION_TIMEOUT = 40000;
16
+ //# sourceMappingURL=performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.js","names":["translationPerformanceKeys","exports","loadKey","errorKey","measureName","LONG_LOAD_NOTIFICATION_TIMEOUT"],"sources":["../../src/utils/performance.js"],"sourcesContent":["const translationPerformanceKeys = {\n loadKey: 'translationLoadingRendered',\n errorKey: 'translationErrorRendered',\n measureName: 'translationLoadToErrorTime',\n};\n\n// Timeout (in milliseconds) to show feedback to the user that a translation is taking a long time to load.\n// Usually due to this being the first time we're translating a unit.\nconst LONG_LOAD_NOTIFICATION_TIMEOUT = 40_000;\n\nexport { translationPerformanceKeys, LONG_LOAD_NOTIFICATION_TIMEOUT };\n"],"mappings":";;;;;;AAAA,IAAMA,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG;EACjCE,OAAO,EAAE,4BAA4B;EACrCC,QAAQ,EAAE,0BAA0B;EACpCC,WAAW,EAAE;AACf,CAAC;;AAED;AACA;AACA,IAAMC,8BAA8B,GAAAJ,OAAA,CAAAI,8BAAA,GAAG,KAAM","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _modelStore = require("@src/generic/model-store");
8
+ var _react = require("react");
9
+ var _localStorage = require("./localStorage");
10
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
11
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
13
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
14
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
15
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
16
+ var useTranslationInfo = function useTranslationInfo(courseId) {
17
+ var _useModel = (0, _modelStore.useModel)('coursewareMeta', courseId),
18
+ language = _useModel.language;
19
+ var courseLanguage = language || 'en';
20
+ var courseTranslationLanguage = (0, _localStorage.getLocalStorageLanguage)(courseId);
21
+ var _useState = (0, _react.useState)(courseTranslationLanguage || courseLanguage),
22
+ _useState2 = _slicedToArray(_useState, 2),
23
+ selectedLanguage = _useState2[0],
24
+ updateSelectedLanguage = _useState2[1];
25
+ return {
26
+ courseLanguage: courseLanguage,
27
+ selectedLanguage: selectedLanguage,
28
+ updateSelectedLanguage: updateSelectedLanguage,
29
+ isTranslating: selectedLanguage !== courseLanguage
30
+ };
31
+ };
32
+ var _default = exports["default"] = useTranslationInfo;
33
+ //# sourceMappingURL=useTranslationInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslationInfo.js","names":["_modelStore","require","_react","_localStorage","_slicedToArray","r","e","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","length","n","l","Symbol","iterator","i","u","f","o","next","Object","done","push","value","isArray","useTranslationInfo","courseId","_useModel","useModel","language","courseLanguage","courseTranslationLanguage","getLocalStorageLanguage","_useState","useState","_useState2","selectedLanguage","updateSelectedLanguage","isTranslating","_default","exports"],"sources":["../../src/utils/useTranslationInfo.js"],"sourcesContent":["import { useModel } from '@src/generic/model-store';\nimport { useState } from 'react';\nimport { getLocalStorageLanguage } from './localStorage';\n\nconst useTranslationInfo = (courseId) => {\n const { language } = useModel('coursewareMeta', courseId);\n const courseLanguage = language || 'en';\n const courseTranslationLanguage = getLocalStorageLanguage(courseId);\n const [selectedLanguage, updateSelectedLanguage] = useState(courseTranslationLanguage || courseLanguage);\n\n return {\n courseLanguage,\n selectedLanguage,\n updateSelectedLanguage,\n isTranslating: selectedLanguage !== courseLanguage,\n };\n};\n\nexport default useTranslationInfo;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edx/unit-title-plugin",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Unit title plugin in frontend-app-learning",
5
5
  "main": "dist",
6
6
  "author": "edX",
@@ -49,5 +49,5 @@
49
49
  "jest-transform-stub": "^2.0.0",
50
50
  "rosie": "^2.1.1"
51
51
  },
52
- "gitHead": "7ac9e8c6d462c33a86263a67f347611167941cbc"
52
+ "gitHead": "d467a733d4702492747e36fba10cbef0e8bece32"
53
53
  }