@edx/unit-title-plugin 0.0.1

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 (101) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +73 -0
  3. package/dist/BookmarkButton.js +68 -0
  4. package/dist/BookmarkButton.js.map +1 -0
  5. package/dist/LegacyUnitTitle.js +61 -0
  6. package/dist/LegacyUnitTitle.js.map +1 -0
  7. package/dist/UnitTitle.js +65 -0
  8. package/dist/UnitTitle.js.map +1 -0
  9. package/dist/__factories__/courseHomeMeta.factory.js +20 -0
  10. package/dist/__factories__/courseHomeMeta.factory.js.map +1 -0
  11. package/dist/__factories__/coursewareMeta.factory.js +7 -0
  12. package/dist/__factories__/coursewareMeta.factory.js.map +1 -0
  13. package/dist/__factories__/index.js +5 -0
  14. package/dist/__factories__/index.js.map +1 -0
  15. package/dist/i18n/index.js +47 -0
  16. package/dist/i18n/index.js.map +1 -0
  17. package/dist/i18n/messages/ar.json +14 -0
  18. package/dist/i18n/messages/ca.json +14 -0
  19. package/dist/i18n/messages/es_419.json +14 -0
  20. package/dist/i18n/messages/es_AR.json +14 -0
  21. package/dist/i18n/messages/es_ES.json +14 -0
  22. package/dist/i18n/messages/fr.json +14 -0
  23. package/dist/i18n/messages/he.json +14 -0
  24. package/dist/i18n/messages/id.json +14 -0
  25. package/dist/i18n/messages/it_IT.json +14 -0
  26. package/dist/i18n/messages/ko_KR.json +14 -0
  27. package/dist/i18n/messages/pl.json +14 -0
  28. package/dist/i18n/messages/pt_BR.json +14 -0
  29. package/dist/i18n/messages/pt_PT.json +14 -0
  30. package/dist/i18n/messages/ru.json +14 -0
  31. package/dist/i18n/messages/th.json +14 -0
  32. package/dist/i18n/messages/tr_TR.json +14 -0
  33. package/dist/i18n/messages/uk.json +14 -0
  34. package/dist/i18n/messages/zh_CN.json +14 -0
  35. package/dist/index.js +52 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/translation-button/assets/google-translate-logo.png +0 -0
  38. package/dist/translation-button/data/__factories__/courseHomeMeta.factory.js +20 -0
  39. package/dist/translation-button/data/__factories__/courseHomeMeta.factory.js.map +1 -0
  40. package/dist/translation-button/data/__factories__/coursewareMeta.factory.js +7 -0
  41. package/dist/translation-button/data/__factories__/coursewareMeta.factory.js.map +1 -0
  42. package/dist/translation-button/data/__factories__/index.js +5 -0
  43. package/dist/translation-button/data/__factories__/index.js.map +1 -0
  44. package/dist/translation-button/data/api.js +185 -0
  45. package/dist/translation-button/data/api.js.map +1 -0
  46. package/dist/translation-button/feedback-widget/FeedbackDetailsModal.js +138 -0
  47. package/dist/translation-button/feedback-widget/FeedbackDetailsModal.js.map +1 -0
  48. package/dist/translation-button/feedback-widget/index.js +163 -0
  49. package/dist/translation-button/feedback-widget/index.js.map +1 -0
  50. package/dist/translation-button/feedback-widget/index.scss +4 -0
  51. package/dist/translation-button/feedback-widget/messages.js +61 -0
  52. package/dist/translation-button/feedback-widget/messages.js.map +1 -0
  53. package/dist/translation-button/feedback-widget/useFeedbackWidget.js +134 -0
  54. package/dist/translation-button/feedback-widget/useFeedbackWidget.js.map +1 -0
  55. package/dist/translation-button/index.js +117 -0
  56. package/dist/translation-button/index.js.map +1 -0
  57. package/dist/translation-button/translation-selection/index.js +169 -0
  58. package/dist/translation-button/translation-selection/index.js.map +1 -0
  59. package/dist/translation-button/translation-selection/index.scss +26 -0
  60. package/dist/translation-button/translation-selection/messages.js +36 -0
  61. package/dist/translation-button/translation-selection/messages.js.map +1 -0
  62. package/dist/translation-button/translation-selection/translation-modal/GoogleDisclaimer.js +77 -0
  63. package/dist/translation-button/translation-selection/translation-modal/GoogleDisclaimer.js.map +1 -0
  64. package/dist/translation-button/translation-selection/translation-modal/LanguageSelector.js +68 -0
  65. package/dist/translation-button/translation-selection/translation-modal/LanguageSelector.js.map +1 -0
  66. package/dist/translation-button/translation-selection/translation-modal/LanguageSelector.scss +18 -0
  67. package/dist/translation-button/translation-selection/translation-modal/LockedLanguages.js +53 -0
  68. package/dist/translation-button/translation-selection/translation-modal/LockedLanguages.js.map +1 -0
  69. package/dist/translation-button/translation-selection/translation-modal/ModalFooter.js +36 -0
  70. package/dist/translation-button/translation-selection/translation-modal/ModalFooter.js.map +1 -0
  71. package/dist/translation-button/translation-selection/translation-modal/NewLanguageFeedback.js +36 -0
  72. package/dist/translation-button/translation-selection/translation-modal/NewLanguageFeedback.js.map +1 -0
  73. package/dist/translation-button/translation-selection/translation-modal/PaidModalBody.js +33 -0
  74. package/dist/translation-button/translation-selection/translation-modal/PaidModalBody.js.map +1 -0
  75. package/dist/translation-button/translation-selection/translation-modal/TranslationModal.js +101 -0
  76. package/dist/translation-button/translation-selection/translation-modal/TranslationModal.js.map +1 -0
  77. package/dist/translation-button/translation-selection/translation-modal/TranslationModal.scss +12 -0
  78. package/dist/translation-button/translation-selection/translation-modal/UpgradeBenefits.js +34 -0
  79. package/dist/translation-button/translation-selection/translation-modal/UpgradeBenefits.js.map +1 -0
  80. package/dist/translation-button/translation-selection/translation-modal/UpgradeModalBody.js +64 -0
  81. package/dist/translation-button/translation-selection/translation-modal/UpgradeModalBody.js.map +1 -0
  82. package/dist/translation-button/translation-selection/translation-modal/index.js +10 -0
  83. package/dist/translation-button/translation-selection/translation-modal/index.js.map +1 -0
  84. package/dist/translation-button/translation-selection/translation-modal/messages.js +106 -0
  85. package/dist/translation-button/translation-selection/translation-modal/messages.js.map +1 -0
  86. package/dist/translation-button/translation-selection/translation-modal/useTranslationModal.js +124 -0
  87. package/dist/translation-button/translation-selection/translation-modal/useTranslationModal.js.map +1 -0
  88. package/dist/translation-button/translation-selection/useSelectLanguage.js +44 -0
  89. package/dist/translation-button/translation-selection/useSelectLanguage.js.map +1 -0
  90. package/dist/translation-button/translation-selection/useTranslationTour.js +76 -0
  91. package/dist/translation-button/translation-selection/useTranslationTour.js.map +1 -0
  92. package/dist/translation-button/translation-selection/useUnitTitle.js +100 -0
  93. package/dist/translation-button/translation-selection/useUnitTitle.js.map +1 -0
  94. package/dist/translation-button/translations-loader/SVGLoader.js +83 -0
  95. package/dist/translation-button/translations-loader/SVGLoader.js.map +1 -0
  96. package/dist/translation-button/translations-loader/index.js +63 -0
  97. package/dist/translation-button/translations-loader/index.js.map +1 -0
  98. package/dist/translation-button/translations-loader/index.scss +43 -0
  99. package/dist/translation-button/translations-loader/messages.js +16 -0
  100. package/dist/translation-button/translations-loader/messages.js.map +1 -0
  101. package/package.json +51 -0
@@ -0,0 +1,106 @@
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
+ languageSelectionModalTitle: {
10
+ id: 'unit-translation-selector-plugin.translationSelection.languageSelectionModalTitle',
11
+ defaultMessage: 'Translate eligible course content',
12
+ description: 'Title for the translation modal.'
13
+ },
14
+ originalLanguageLabel: {
15
+ id: 'unit-translation-selector-plugin.translationSelection.originalCourseLanguage.label',
16
+ defaultMessage: 'Original course language',
17
+ description: 'Label for original course language list option'
18
+ },
19
+ cancelButtonText: {
20
+ id: 'unit-translation-selector-plugin.translationSelection.cancelButtonText',
21
+ defaultMessage: 'Cancel',
22
+ description: 'Cancel button text for the translation modal.'
23
+ },
24
+ submitButtonText: {
25
+ id: 'unit-translation-selector-plugin.translationSelection.submitButtonText',
26
+ defaultMessage: 'Submit',
27
+ description: 'Submit button text for the translation modal.'
28
+ },
29
+ upgradeButtonText: {
30
+ id: 'unit-translation-selector-plugin.translationSelection.upgradeButtonText',
31
+ defaultMessage: 'Upgrade for {upgradePrice}',
32
+ description: 'Upgrade button text for the translation modal.'
33
+ },
34
+ poweredBy: {
35
+ id: 'unit-translation-selector-plugin.translationSelection.poweredBy',
36
+ defaultMessage: 'Powered by',
37
+ description: 'Powered text for the translation modal.'
38
+ },
39
+ googleTranslateLogoAlt: {
40
+ id: 'unit-translation-selector-plugin.translationSelection.googleTranslateLogoAlt',
41
+ defaultMessage: 'Google translate logo',
42
+ description: 'Alt text for the Google Translate logo.'
43
+ },
44
+ googleTranslateDisclaimer: {
45
+ id: 'unit-translation-selector-plugin.translationSelection.googleTranslateDisclaimer',
46
+ defaultMessage: 'This content has been translated using an AI-powered tool and may contain errors or inaccuracies.',
47
+ description: 'Text for the translation modal.'
48
+ },
49
+ popoverDisclaimerTitle: {
50
+ id: 'unit-translation-selector-plugin.translationSelection.popoverDisclaimerTitle',
51
+ defaultMessage: 'Disclaimers',
52
+ description: 'Disclaimer Popover Title'
53
+ },
54
+ popoverDisclaimerContent: {
55
+ id: 'unit-translation-selector-plugin.translationSelection.popoverDisclaimerContent',
56
+ defaultMessage: 'Eligible content includes most video transcripts, quizzes, and on platform text.',
57
+ description: 'Line explaining the content to be translated in popover.'
58
+ },
59
+ popoverDisclaimerWarranties: {
60
+ id: 'unit-translation-selector-plugin.translationSelection.popoverDisclaimerWarranties',
61
+ defaultMessage: 'THIS SERVICE MAY CONTAIN TRANSLATIONS POWERED BY GOOGLE. GOOGLE DISCLAIMS ALL WARRANTIES RELATED TO THE TRANSLATIONS, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OF ACCURACY, RELIABILITY, AND ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.',
62
+ description: 'Line explaining the warranties in popover.'
63
+ },
64
+ additionalLanguageMissing: {
65
+ id: 'unit-translation-selector-plugin.translationSelection.additonalLanguages',
66
+ defaultMessage: 'Not seeing your preferred language? {surveyLink}',
67
+ description: 'Text guiding user to survey link to suggest new translation languages'
68
+ },
69
+ surveyLinkLabel: {
70
+ id: 'unit-translation-selector-plugin.translationSelection.additionalLanguages.link.label',
71
+ defaultMessage: 'Tell us which one to add next.',
72
+ description: 'text to describe the purpose of survey link'
73
+ },
74
+ upgradeLanguageSelectionModalTitle: {
75
+ id: 'unit-translation-selector-plugin.translationSelection.upgrade.languageSelectionModalTitle',
76
+ defaultMessage: 'Unlock eligible translations{asterisk}, certificate, and more',
77
+ description: 'Title for the translation upgrade modal.'
78
+ },
79
+ upgradeLanguageSectionTitle: {
80
+ id: 'unit-translation-selector-plugin.translationSelection.upgrade.languageSelectionTitle',
81
+ defaultMessage: 'Gain access to high-quality translated content {tooltip}',
82
+ description: 'Text for language selection section title'
83
+ },
84
+ upgradeLanguageSectionTooltip: {
85
+ id: 'unit-translation-selector-plugin.translationSelection.upgrade.languageSelectionTitle.tooltip',
86
+ defaultMessage: 'Eligible content currently includes: HTML/Text blocks, Video Transcripts, and Quiz/Problem Blocks',
87
+ description: 'Text for language selection section title tooltip listing the content available for translation'
88
+ },
89
+ upgradeBenefitsSectionTitle: {
90
+ id: 'unit-translation-selector-plugin.translationSelection.upgrade.moreBenefitsTitle',
91
+ defaultMessage: 'More benefits of an upgrade',
92
+ description: 'Text for more benefits of upgrade section title'
93
+ },
94
+ externalSiteLinkScreenreader: {
95
+ id: 'ai-translations.link.external-site.screenreader-only.message',
96
+ defaultMessage: 'external site, in a new tab',
97
+ description: 'Screenreader only text for external site link'
98
+ },
99
+ newTabLinkScreenreader: {
100
+ id: 'ai-translations.link.new-tab.screenreader-only.message',
101
+ defaultMessage: 'in a new tab',
102
+ description: 'Screenreader only text for new tab link'
103
+ }
104
+ });
105
+ var _default = exports["default"] = messages;
106
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","languageSelectionModalTitle","id","defaultMessage","description","originalLanguageLabel","cancelButtonText","submitButtonText","upgradeButtonText","poweredBy","googleTranslateLogoAlt","googleTranslateDisclaimer","popoverDisclaimerTitle","popoverDisclaimerContent","popoverDisclaimerWarranties","additionalLanguageMissing","surveyLinkLabel","upgradeLanguageSelectionModalTitle","upgradeLanguageSectionTitle","upgradeLanguageSectionTooltip","upgradeBenefitsSectionTitle","externalSiteLinkScreenreader","newTabLinkScreenreader","_default","exports"],"sources":["../../../../src/translation-button/translation-selection/translation-modal/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n languageSelectionModalTitle: {\n id: 'unit-translation-selector-plugin.translationSelection.languageSelectionModalTitle',\n defaultMessage: 'Translate eligible course content',\n description: 'Title for the translation modal.',\n },\n originalLanguageLabel: {\n id: 'unit-translation-selector-plugin.translationSelection.originalCourseLanguage.label',\n defaultMessage: 'Original course language',\n description: 'Label for original course language list option',\n },\n cancelButtonText: {\n id: 'unit-translation-selector-plugin.translationSelection.cancelButtonText',\n defaultMessage: 'Cancel',\n description: 'Cancel button text for the translation modal.',\n },\n submitButtonText: {\n id: 'unit-translation-selector-plugin.translationSelection.submitButtonText',\n defaultMessage: 'Submit',\n description: 'Submit button text for the translation modal.',\n },\n upgradeButtonText: {\n id: 'unit-translation-selector-plugin.translationSelection.upgradeButtonText',\n defaultMessage: 'Upgrade for {upgradePrice}',\n description: 'Upgrade button text for the translation modal.',\n },\n poweredBy: {\n id: 'unit-translation-selector-plugin.translationSelection.poweredBy',\n defaultMessage: 'Powered by',\n description: 'Powered text for the translation modal.',\n },\n googleTranslateLogoAlt: {\n id: 'unit-translation-selector-plugin.translationSelection.googleTranslateLogoAlt',\n defaultMessage: 'Google translate logo',\n description: 'Alt text for the Google Translate logo.',\n },\n googleTranslateDisclaimer: {\n id: 'unit-translation-selector-plugin.translationSelection.googleTranslateDisclaimer',\n defaultMessage: 'This content has been translated using an AI-powered tool and may contain errors or inaccuracies.',\n description: 'Text for the translation modal.',\n },\n popoverDisclaimerTitle: {\n id: 'unit-translation-selector-plugin.translationSelection.popoverDisclaimerTitle',\n defaultMessage: 'Disclaimers',\n description: 'Disclaimer Popover Title',\n },\n popoverDisclaimerContent: {\n id: 'unit-translation-selector-plugin.translationSelection.popoverDisclaimerContent',\n defaultMessage: 'Eligible content includes most video transcripts, quizzes, and on platform text.',\n description: 'Line explaining the content to be translated in popover.',\n },\n popoverDisclaimerWarranties: {\n id: 'unit-translation-selector-plugin.translationSelection.popoverDisclaimerWarranties',\n defaultMessage: 'THIS SERVICE MAY CONTAIN TRANSLATIONS POWERED BY GOOGLE. GOOGLE DISCLAIMS ALL WARRANTIES RELATED TO THE TRANSLATIONS, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OF ACCURACY, RELIABILITY, AND ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.',\n description: 'Line explaining the warranties in popover.',\n },\n additionalLanguageMissing: {\n id: 'unit-translation-selector-plugin.translationSelection.additonalLanguages',\n defaultMessage: 'Not seeing your preferred language? {surveyLink}',\n description: 'Text guiding user to survey link to suggest new translation languages',\n },\n surveyLinkLabel: {\n id: 'unit-translation-selector-plugin.translationSelection.additionalLanguages.link.label',\n defaultMessage: 'Tell us which one to add next.',\n description: 'text to describe the purpose of survey link',\n },\n upgradeLanguageSelectionModalTitle: {\n id: 'unit-translation-selector-plugin.translationSelection.upgrade.languageSelectionModalTitle',\n defaultMessage: 'Unlock eligible translations{asterisk}, certificate, and more',\n description: 'Title for the translation upgrade modal.',\n },\n upgradeLanguageSectionTitle: {\n id: 'unit-translation-selector-plugin.translationSelection.upgrade.languageSelectionTitle',\n defaultMessage: 'Gain access to high-quality translated content {tooltip}',\n description: 'Text for language selection section title',\n },\n upgradeLanguageSectionTooltip: {\n id: 'unit-translation-selector-plugin.translationSelection.upgrade.languageSelectionTitle.tooltip',\n defaultMessage: 'Eligible content currently includes: HTML/Text blocks, Video Transcripts, and Quiz/Problem Blocks',\n description: 'Text for language selection section title tooltip listing the content available for translation',\n },\n upgradeBenefitsSectionTitle: {\n id: 'unit-translation-selector-plugin.translationSelection.upgrade.moreBenefitsTitle',\n defaultMessage: 'More benefits of an upgrade',\n description: 'Text for more benefits of upgrade section title',\n },\n externalSiteLinkScreenreader: {\n id: 'ai-translations.link.external-site.screenreader-only.message',\n defaultMessage: 'external site, in a new tab',\n description: 'Screenreader only text for external site link',\n },\n newTabLinkScreenreader: {\n id: 'ai-translations.link.new-tab.screenreader-only.message',\n defaultMessage: 'in a new tab',\n description: 'Screenreader only text for new tab link',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9BC,2BAA2B,EAAE;IAC3BC,EAAE,EAAE,mFAAmF;IACvFC,cAAc,EAAE,mCAAmC;IACnDC,WAAW,EAAE;EACf,CAAC;EACDC,qBAAqB,EAAE;IACrBH,EAAE,EAAE,oFAAoF;IACxFC,cAAc,EAAE,0BAA0B;IAC1CC,WAAW,EAAE;EACf,CAAC;EACDE,gBAAgB,EAAE;IAChBJ,EAAE,EAAE,wEAAwE;IAC5EC,cAAc,EAAE,QAAQ;IACxBC,WAAW,EAAE;EACf,CAAC;EACDG,gBAAgB,EAAE;IAChBL,EAAE,EAAE,wEAAwE;IAC5EC,cAAc,EAAE,QAAQ;IACxBC,WAAW,EAAE;EACf,CAAC;EACDI,iBAAiB,EAAE;IACjBN,EAAE,EAAE,yEAAyE;IAC7EC,cAAc,EAAE,4BAA4B;IAC5CC,WAAW,EAAE;EACf,CAAC;EACDK,SAAS,EAAE;IACTP,EAAE,EAAE,iEAAiE;IACrEC,cAAc,EAAE,YAAY;IAC5BC,WAAW,EAAE;EACf,CAAC;EACDM,sBAAsB,EAAE;IACtBR,EAAE,EAAE,8EAA8E;IAClFC,cAAc,EAAE,uBAAuB;IACvCC,WAAW,EAAE;EACf,CAAC;EACDO,yBAAyB,EAAE;IACzBT,EAAE,EAAE,iFAAiF;IACrFC,cAAc,EAAE,mGAAmG;IACnHC,WAAW,EAAE;EACf,CAAC;EACDQ,sBAAsB,EAAE;IACtBV,EAAE,EAAE,8EAA8E;IAClFC,cAAc,EAAE,aAAa;IAC7BC,WAAW,EAAE;EACf,CAAC;EACDS,wBAAwB,EAAE;IACxBX,EAAE,EAAE,gFAAgF;IACpFC,cAAc,EAAE,kFAAkF;IAClGC,WAAW,EAAE;EACf,CAAC;EACDU,2BAA2B,EAAE;IAC3BZ,EAAE,EAAE,mFAAmF;IACvFC,cAAc,EAAE,mSAAmS;IACnTC,WAAW,EAAE;EACf,CAAC;EACDW,yBAAyB,EAAE;IACzBb,EAAE,EAAE,0EAA0E;IAC9EC,cAAc,EAAE,kDAAkD;IAClEC,WAAW,EAAE;EACf,CAAC;EACDY,eAAe,EAAE;IACfd,EAAE,EAAE,sFAAsF;IAC1FC,cAAc,EAAE,gCAAgC;IAChDC,WAAW,EAAE;EACf,CAAC;EACDa,kCAAkC,EAAE;IAClCf,EAAE,EAAE,2FAA2F;IAC/FC,cAAc,EAAE,+DAA+D;IAC/EC,WAAW,EAAE;EACf,CAAC;EACDc,2BAA2B,EAAE;IAC3BhB,EAAE,EAAE,sFAAsF;IAC1FC,cAAc,EAAE,0DAA0D;IAC1EC,WAAW,EAAE;EACf,CAAC;EACDe,6BAA6B,EAAE;IAC7BjB,EAAE,EAAE,8FAA8F;IAClGC,cAAc,EAAE,mGAAmG;IACnHC,WAAW,EAAE;EACf,CAAC;EACDgB,2BAA2B,EAAE;IAC3BlB,EAAE,EAAE,iFAAiF;IACrFC,cAAc,EAAE,6BAA6B;IAC7CC,WAAW,EAAE;EACf,CAAC;EACDiB,4BAA4B,EAAE;IAC5BnB,EAAE,EAAE,8DAA8D;IAClEC,cAAc,EAAE,6BAA6B;IAC7CC,WAAW,EAAE;EACf,CAAC;EACDkB,sBAAsB,EAAE;IACtBpB,EAAE,EAAE,wDAAwD;IAC5DC,cAAc,EAAE,cAAc;IAC9BC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,IAAAmB,QAAA,GAAAC,OAAA,cAEYzB,QAAQ","ignoreList":[]}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stateKeys = exports["default"] = void 0;
7
+ var _react = require("react");
8
+ var _reactUnitTestUtils = require("@edx/react-unit-test-utils");
9
+ var _analytics = require("@edx/frontend-platform/analytics");
10
+ 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); }
11
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
+ 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."); }
13
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
15
+ 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; } }
16
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
+ 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; }
18
+ 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; }
19
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
21
+ 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); }
22
+ var stateKeys = exports.stateKeys = (0, _reactUnitTestUtils.StrictDict)({
23
+ selectedIndex: 'selectedIndex'
24
+ });
25
+ var logUpgradeClick = function logUpgradeClick(_ref) {
26
+ var logEventProperties = _ref.logEventProperties;
27
+ var upsellPageName = 'course_translation_modal';
28
+ var promotionEventProperties = _objectSpread({
29
+ creative: 'translationmodalupsell',
30
+ name: 'In-Course Verification Prompt',
31
+ position: 'translation-modal-message',
32
+ promotion_id: 'courseware_translation_upsell'
33
+ }, logEventProperties);
34
+ (0, _analytics.sendTrackingLogEvent)('edx.bi.course.upgrade.translationmodal.clicked', logEventProperties);
35
+ (0, _analytics.sendTrackingLogEvent)('edx.course.enrollment.upgrade.clicked', _objectSpread(_objectSpread({}, logEventProperties), {}, {
36
+ location: 'translation-modal-message'
37
+ }));
38
+ (0, _analytics.sendTrackEvent)('Promotion Clicked', promotionEventProperties);
39
+ (0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upsell_links_clicked', _objectSpread(_objectSpread({}, logEventProperties), {}, {
40
+ linkCategory: 'green_upgrade',
41
+ linkName: "".concat(upsellPageName, "_green"),
42
+ linkType: 'button',
43
+ pageName: upsellPageName
44
+ }));
45
+ };
46
+ var getEnabledLanguages = function getEnabledLanguages(_ref2) {
47
+ var availableLanguages = _ref2.availableLanguages,
48
+ originalCourseLanguage = _ref2.originalCourseLanguage;
49
+ var enabledLanguages = [];
50
+ var excludeEnglish = originalCourseLanguage !== 'en';
51
+ var missingLanguage = !availableLanguages.some(function (_ref3) {
52
+ var code = _ref3.code;
53
+ return code === originalCourseLanguage;
54
+ });
55
+ enabledLanguages = availableLanguages.filter(function (_ref4) {
56
+ var enabled = _ref4.enabled,
57
+ code = _ref4.code;
58
+ if (excludeEnglish && code === 'en') {
59
+ return false;
60
+ }
61
+ return enabled;
62
+ });
63
+ if (missingLanguage) {
64
+ enabledLanguages.push({
65
+ code: originalCourseLanguage,
66
+ label: 'original'
67
+ });
68
+ }
69
+ return enabledLanguages;
70
+ };
71
+ var useTranslationModal = function useTranslationModal(_ref5) {
72
+ var selectedLanguage = _ref5.selectedLanguage,
73
+ setSelectedLanguage = _ref5.setSelectedLanguage,
74
+ close = _ref5.close,
75
+ isAuditMode = _ref5.isAuditMode,
76
+ upgradeUrl = _ref5.upgradeUrl,
77
+ logEventProperties = _ref5.logEventProperties,
78
+ availableLanguages = _ref5.availableLanguages,
79
+ originalCourseLanguage = _ref5.originalCourseLanguage;
80
+ var courseEnabledLanguages = getEnabledLanguages({
81
+ availableLanguages: availableLanguages,
82
+ originalCourseLanguage: originalCourseLanguage
83
+ });
84
+ var _useKeyedState = (0, _reactUnitTestUtils.useKeyedState)(stateKeys.selectedIndex, courseEnabledLanguages.findIndex(function (lang) {
85
+ return lang.code === selectedLanguage;
86
+ })),
87
+ _useKeyedState2 = _slicedToArray(_useKeyedState, 2),
88
+ selectedIndex = _useKeyedState2[0],
89
+ setSelectedIndex = _useKeyedState2[1];
90
+ var onSubmit = (0, _react.useCallback)(function () {
91
+ if (isAuditMode) {
92
+ logUpgradeClick({
93
+ logEventProperties: logEventProperties
94
+ });
95
+ window.open(upgradeUrl, '_self');
96
+ } else {
97
+ var newSelectedLanguage = courseEnabledLanguages[selectedIndex].code;
98
+ setSelectedLanguage(newSelectedLanguage);
99
+ }
100
+ close();
101
+ }, [selectedIndex]);
102
+
103
+ /*
104
+ 2025-01-21
105
+ This function not currently in use, but may be used again in the future so not removing the code here.
106
+ The import and pasing of this function have been removed except in `./NewLanguageFeedback.jsx` where it
107
+ is actually used.
108
+ */
109
+ var logSurveyClick = function logSurveyClick() {
110
+ (0, _analytics.sendTrackEvent)('addtional_languages_survey_clicked', _objectSpread(_objectSpread({}, logEventProperties), {}, {
111
+ isAuditUser: isAuditMode
112
+ }));
113
+ window.open('https://participant.use2.usertesting.com/se/invite/8145e5f3-4f48-46b7-8d97-78e1bec900d0', '_blank');
114
+ };
115
+ return {
116
+ selectedIndex: selectedIndex,
117
+ setSelectedIndex: setSelectedIndex,
118
+ onSubmit: onSubmit,
119
+ logSurveyClick: logSurveyClick,
120
+ courseEnabledLanguages: courseEnabledLanguages
121
+ };
122
+ };
123
+ var _default = exports["default"] = useTranslationModal;
124
+ //# sourceMappingURL=useTranslationModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslationModal.js","names":["_react","require","_reactUnitTestUtils","_analytics","_typeof","o","Symbol","iterator","constructor","prototype","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","minLen","_arrayLikeToArray","n","Object","toString","call","slice","name","Array","from","test","len","length","arr2","r","l","t","e","u","a","f","next","done","push","value","isArray","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","key","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","stateKeys","exports","StrictDict","selectedIndex","logUpgradeClick","_ref","logEventProperties","upsellPageName","promotionEventProperties","creative","position","promotion_id","sendTrackingLogEvent","location","sendTrackEvent","linkCategory","linkName","concat","linkType","pageName","getEnabledLanguages","_ref2","availableLanguages","originalCourseLanguage","enabledLanguages","excludeEnglish","missingLanguage","some","_ref3","code","_ref4","enabled","label","useTranslationModal","_ref5","selectedLanguage","setSelectedLanguage","close","isAuditMode","upgradeUrl","courseEnabledLanguages","_useKeyedState","useKeyedState","findIndex","lang","_useKeyedState2","setSelectedIndex","onSubmit","useCallback","window","open","newSelectedLanguage","logSurveyClick","isAuditUser","_default"],"sources":["../../../../src/translation-button/translation-selection/translation-modal/useTranslationModal.js"],"sourcesContent":["import { useCallback } from 'react';\nimport { StrictDict, useKeyedState } from '@edx/react-unit-test-utils';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\n\nexport const stateKeys = StrictDict({\n selectedIndex: 'selectedIndex',\n});\n\nconst logUpgradeClick = ({ logEventProperties }) => {\n const upsellPageName = 'course_translation_modal';\n const promotionEventProperties = {\n creative: 'translationmodalupsell',\n name: 'In-Course Verification Prompt',\n position: 'translation-modal-message',\n promotion_id: 'courseware_translation_upsell',\n ...logEventProperties,\n };\n sendTrackingLogEvent('edx.bi.course.upgrade.translationmodal.clicked', logEventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...logEventProperties,\n location: 'translation-modal-message',\n });\n sendTrackEvent('Promotion Clicked', promotionEventProperties);\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...logEventProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n};\n\nconst getEnabledLanguages = ({ availableLanguages, originalCourseLanguage }) => {\n let enabledLanguages = [];\n const excludeEnglish = originalCourseLanguage !== 'en';\n const missingLanguage = !availableLanguages.some(({ code }) => code === originalCourseLanguage);\n\n enabledLanguages = availableLanguages.filter(({ enabled, code }) => {\n if (excludeEnglish && code === 'en') {\n return false;\n }\n\n return enabled;\n });\n\n if (missingLanguage) {\n enabledLanguages.push({ code: originalCourseLanguage, label: 'original' });\n }\n\n return enabledLanguages;\n};\n\nconst useTranslationModal = ({\n selectedLanguage,\n setSelectedLanguage,\n close,\n isAuditMode,\n upgradeUrl,\n logEventProperties,\n availableLanguages,\n originalCourseLanguage,\n}) => {\n const courseEnabledLanguages = getEnabledLanguages({ availableLanguages, originalCourseLanguage });\n const [selectedIndex, setSelectedIndex] = useKeyedState(\n stateKeys.selectedIndex,\n courseEnabledLanguages.findIndex((lang) => lang.code === selectedLanguage),\n );\n\n const onSubmit = useCallback(() => {\n if (isAuditMode) {\n logUpgradeClick({ logEventProperties });\n window.open(upgradeUrl, '_self');\n } else {\n const newSelectedLanguage = courseEnabledLanguages[selectedIndex].code;\n setSelectedLanguage(newSelectedLanguage);\n }\n close();\n }, [selectedIndex]);\n\n /*\n 2025-01-21\n This function not currently in use, but may be used again in the future so not removing the code here.\n The import and pasing of this function have been removed except in `./NewLanguageFeedback.jsx` where it\n is actually used.\n */\n const logSurveyClick = () => {\n sendTrackEvent('addtional_languages_survey_clicked', {\n ...logEventProperties,\n isAuditUser: isAuditMode,\n });\n window.open('https://participant.use2.usertesting.com/se/invite/8145e5f3-4f48-46b7-8d97-78e1bec900d0', '_blank');\n };\n\n return {\n selectedIndex,\n setSelectedIndex,\n onSubmit,\n logSurveyClick,\n courseEnabledLanguages,\n };\n};\n\nexport default useTranslationModal;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,44 @@
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.stateKeys = exports.selectedLanguageKey = exports["default"] = void 0;
8
+ 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(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
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(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _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(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
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(arr) { if (Array.isArray(arr)) return arr; }
22
+ var selectedLanguageKey = exports.selectedLanguageKey = 'selectedLanguages';
23
+ var stateKeys = exports.stateKeys = (0, _reactUnitTestUtils.StrictDict)({
24
+ selectedLanguage: 'selectedLanguage'
25
+ });
26
+ var useSelectLanguage = function useSelectLanguage(_ref) {
27
+ var courseId = _ref.courseId,
28
+ courseLanguage = _ref.courseLanguage;
29
+ var selectedLanguageItem = (0, _localStorage.getLocalStorage)(selectedLanguageKey) || {};
30
+ var _useKeyedState = (0, _reactUnitTestUtils.useKeyedState)(stateKeys.selectedLanguage, selectedLanguageItem[courseId] || courseLanguage),
31
+ _useKeyedState2 = _slicedToArray(_useKeyedState, 2),
32
+ selectedLanguage = _useKeyedState2[0],
33
+ updateSelectedLanguage = _useKeyedState2[1];
34
+ var setSelectedLanguage = (0, _react.useCallback)(function (newSelectedLanguage) {
35
+ (0, _localStorage.setLocalStorage)(selectedLanguageKey, _objectSpread(_objectSpread({}, selectedLanguageItem), {}, _defineProperty({}, courseId, newSelectedLanguage)));
36
+ updateSelectedLanguage(newSelectedLanguage);
37
+ });
38
+ return {
39
+ selectedLanguage: selectedLanguage,
40
+ setSelectedLanguage: setSelectedLanguage
41
+ };
42
+ };
43
+ var _default = exports["default"] = useSelectLanguage;
44
+ //# sourceMappingURL=useSelectLanguage.js.map
@@ -0,0 +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","obj","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","TypeError","String","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","n","prototype","toString","slice","constructor","name","Array","from","test","len","arr2","l","iterator","u","a","f","next","done","isArray","selectedLanguageKey","exports","stateKeys","StrictDict","selectedLanguage","useSelectLanguage","_ref","courseId","courseLanguage","selectedLanguageItem","getLocalStorage","_useKeyedState","useKeyedState","_useKeyedState2","updateSelectedLanguage","setSelectedLanguage","useCallback","newSelectedLanguage","setLocalStorage","_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 }) => {\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 return {\n selectedLanguage,\n setSelectedLanguage,\n };\n};\n\nexport default useSelectLanguage;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stateKeys = exports["default"] = void 0;
7
+ var _react = require("react");
8
+ var _reactRedux = require("react-redux");
9
+ var _i18n = require("@edx/frontend-platform/i18n");
10
+ var _paragon = require("@openedx/paragon");
11
+ var _reactUnitTestUtils = require("@edx/react-unit-test-utils");
12
+ var _messages = _interopRequireDefault(require("./messages"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
+ 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."); }
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
18
+ 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; } }
19
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
+ var hasSeenTranslationTourKey = 'hasSeenTranslationTour';
21
+ var stateKeys = exports.stateKeys = (0, _reactUnitTestUtils.StrictDict)({
22
+ showTranslationTour: 'showTranslationTour'
23
+ });
24
+ var useTranslationTour = function useTranslationTour() {
25
+ var _useIntl = (0, _i18n.useIntl)(),
26
+ formatMessage = _useIntl.formatMessage;
27
+ var _useSelector = (0, _reactRedux.useSelector)(function (state) {
28
+ return state.tours;
29
+ }),
30
+ showCoursewareTour = _useSelector.showCoursewareTour;
31
+ var _useKeyedState = (0, _reactUnitTestUtils.useKeyedState)(stateKeys.showTranslationTour, false),
32
+ _useKeyedState2 = _slicedToArray(_useKeyedState, 2),
33
+ isTourEnabled = _useKeyedState2[0],
34
+ setIsTourEnabled = _useKeyedState2[1];
35
+ var _useToggle = (0, _paragon.useToggle)(false),
36
+ _useToggle2 = _slicedToArray(_useToggle, 3),
37
+ isOpen = _useToggle2[0],
38
+ open = _useToggle2[1],
39
+ close = _useToggle2[2];
40
+ var endTour = (0, _react.useCallback)(function () {
41
+ global.localStorage.setItem(hasSeenTranslationTourKey, 'true');
42
+ setIsTourEnabled(false);
43
+ }, [isTourEnabled, setIsTourEnabled]);
44
+ var tryIt = (0, _react.useCallback)(function () {
45
+ endTour();
46
+ open();
47
+ }, [endTour, open]);
48
+ var translationTour = (0, _react.useMemo)(function () {
49
+ return {
50
+ tourId: 'translation',
51
+ enabled: isTourEnabled,
52
+ onDismiss: endTour,
53
+ onEnd: tryIt,
54
+ checkpoints: [{
55
+ title: formatMessage(_messages["default"].translationTourModalTitle),
56
+ body: formatMessage(_messages["default"].translationTourModalBody),
57
+ placement: 'bottom',
58
+ target: '#translation-selection-button',
59
+ showDismissButton: true,
60
+ endButtonText: formatMessage(_messages["default"].tryItButtonText),
61
+ dismissButtonText: formatMessage(_messages["default"].dismissButtonText)
62
+ }]
63
+ };
64
+ }, [isTourEnabled]);
65
+ (0, _react.useEffect)(function () {
66
+ setIsTourEnabled(!showCoursewareTour && global.localStorage.getItem(hasSeenTranslationTourKey) !== 'true');
67
+ }, [showCoursewareTour]);
68
+ return {
69
+ translationTour: translationTour,
70
+ isOpen: isOpen,
71
+ open: open,
72
+ close: close
73
+ };
74
+ };
75
+ var _default = exports["default"] = useTranslationTour;
76
+ //# sourceMappingURL=useTranslationTour.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslationTour.js","names":["_react","require","_reactRedux","_i18n","_paragon","_reactUnitTestUtils","_messages","_interopRequireDefault","obj","__esModule","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","isArray","hasSeenTranslationTourKey","stateKeys","exports","StrictDict","showTranslationTour","useTranslationTour","_useIntl","useIntl","formatMessage","_useSelector","useSelector","state","tours","showCoursewareTour","_useKeyedState","useKeyedState","_useKeyedState2","isTourEnabled","setIsTourEnabled","_useToggle","useToggle","_useToggle2","isOpen","open","close","endTour","useCallback","global","localStorage","setItem","tryIt","translationTour","useMemo","tourId","enabled","onDismiss","onEnd","checkpoints","title","messages","translationTourModalTitle","body","translationTourModalBody","placement","target","showDismissButton","endButtonText","tryItButtonText","dismissButtonText","useEffect","getItem","_default"],"sources":["../../../src/translation-button/translation-selection/useTranslationTour.js"],"sourcesContent":["import { useCallback, useEffect, useMemo } from 'react';\n\nimport { useSelector } from 'react-redux';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { useToggle } from '@openedx/paragon';\nimport { StrictDict, useKeyedState } from '@edx/react-unit-test-utils';\n\nimport messages from './messages';\n\nconst hasSeenTranslationTourKey = 'hasSeenTranslationTour';\n\nexport const stateKeys = StrictDict({\n showTranslationTour: 'showTranslationTour',\n});\n\nconst useTranslationTour = () => {\n const { formatMessage } = useIntl();\n\n const { showCoursewareTour } = useSelector(state => state.tours);\n\n const [isTourEnabled, setIsTourEnabled] = useKeyedState(\n stateKeys.showTranslationTour,\n false,\n );\n const [isOpen, open, close] = useToggle(false);\n\n const endTour = useCallback(() => {\n global.localStorage.setItem(hasSeenTranslationTourKey, 'true');\n setIsTourEnabled(false);\n }, [isTourEnabled, setIsTourEnabled]);\n\n const tryIt = useCallback(() => {\n endTour();\n open();\n }, [endTour, open]);\n\n const translationTour = useMemo(() => ({\n tourId: 'translation',\n enabled: isTourEnabled,\n onDismiss: endTour,\n onEnd: tryIt,\n checkpoints: [\n {\n title: formatMessage(messages.translationTourModalTitle),\n body: formatMessage(messages.translationTourModalBody),\n placement: 'bottom',\n target: '#translation-selection-button',\n showDismissButton: true,\n endButtonText: formatMessage(messages.tryItButtonText),\n dismissButtonText: formatMessage(messages.dismissButtonText),\n },\n ],\n }), [isTourEnabled]);\n\n useEffect(() => {\n setIsTourEnabled(\n !showCoursewareTour\n && global.localStorage.getItem(hasSeenTranslationTourKey) !== 'true',\n );\n }, [showCoursewareTour]);\n\n return {\n translationTour,\n isOpen,\n open,\n close,\n };\n};\n\nexport default useTranslationTour;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,100 @@
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 = require("react");
9
+ var _api = require("../data/api");
10
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
11
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
12
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
13
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14
+ 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."); }
15
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
+ 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; } }
18
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
+ var useUnitTitle = function useUnitTitle(_ref) {
20
+ var courseId = _ref.courseId,
21
+ selectedLanguage = _ref.selectedLanguage,
22
+ unitId = _ref.unitId,
23
+ unitTitle = _ref.unitTitle,
24
+ _ref$courseLanguage = _ref.courseLanguage,
25
+ courseLanguage = _ref$courseLanguage === void 0 ? 'en' : _ref$courseLanguage;
26
+ var _useState = (0, _react.useState)(unitTitle),
27
+ _useState2 = _slicedToArray(_useState, 2),
28
+ currentTitle = _useState2[0],
29
+ setCurrentTitle = _useState2[1];
30
+ var _useState3 = (0, _react.useState)(''),
31
+ _useState4 = _slicedToArray(_useState3, 2),
32
+ currentSelectedLanguage = _useState4[0],
33
+ setCurrentSelectedLanguage = _useState4[1];
34
+ var translateUnitTitleRequest = (0, _react.useCallback)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
35
+ var _data$translatedConte;
36
+ var data;
37
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
38
+ while (1) switch (_context.prev = _context.next) {
39
+ case 0:
40
+ _context.next = 2;
41
+ return (0, _api.translateUnitTitle)({
42
+ content: unitTitle,
43
+ courseId: courseId,
44
+ sourceLanguage: courseLanguage,
45
+ sourceTypeId: unitId,
46
+ targetLanguage: selectedLanguage
47
+ });
48
+ case 2:
49
+ data = _context.sent;
50
+ setCurrentTitle((_data$translatedConte = data === null || data === void 0 ? void 0 : data.translatedContent) !== null && _data$translatedConte !== void 0 ? _data$translatedConte : unitTitle);
51
+ case 4:
52
+ case "end":
53
+ return _context.stop();
54
+ }
55
+ }, _callee);
56
+ })), [courseId, selectedLanguage, unitId, unitTitle]);
57
+ (0, _react.useEffect)(function () {
58
+ var request = /*#__PURE__*/function () {
59
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
60
+ var domNode;
61
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
62
+ while (1) switch (_context2.prev = _context2.next) {
63
+ case 0:
64
+ domNode = document.querySelector('.unit .h3');
65
+ if (!(domNode && selectedLanguage !== courseLanguage)) {
66
+ _context2.next = 9;
67
+ break;
68
+ }
69
+ setCurrentSelectedLanguage(selectedLanguage);
70
+ if (!(currentSelectedLanguage !== selectedLanguage)) {
71
+ _context2.next = 6;
72
+ break;
73
+ }
74
+ _context2.next = 6;
75
+ return translateUnitTitleRequest(domNode);
76
+ case 6:
77
+ domNode.textContent = currentTitle;
78
+ _context2.next = 10;
79
+ break;
80
+ case 9:
81
+ if (domNode) {
82
+ domNode.textContent = unitTitle;
83
+ }
84
+ case 10:
85
+ case "end":
86
+ return _context2.stop();
87
+ }
88
+ }, _callee2);
89
+ }));
90
+ return function request() {
91
+ return _ref3.apply(this, arguments);
92
+ };
93
+ }();
94
+ if (unitTitle) {
95
+ request();
96
+ }
97
+ }, [selectedLanguage, currentTitle]);
98
+ };
99
+ var _default = exports["default"] = useUnitTitle;
100
+ //# sourceMappingURL=useUnitTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUnitTitle.js","names":["_react","require","_api","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","toString","Array","from","test","len","arr2","isArray","useUnitTitle","_ref","courseId","selectedLanguage","unitId","unitTitle","_ref$courseLanguage","courseLanguage","_useState","useState","_useState2","currentTitle","setCurrentTitle","_useState3","_useState4","currentSelectedLanguage","setCurrentSelectedLanguage","translateUnitTitleRequest","useCallback","_callee","_data$translatedConte","data","_callee$","_context","translateUnitTitle","content","sourceLanguage","sourceTypeId","targetLanguage","translatedContent","useEffect","request","_ref3","_callee2","domNode","_callee2$","_context2","document","querySelector","textContent","_default","exports"],"sources":["../../../src/translation-button/translation-selection/useUnitTitle.js"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport { translateUnitTitle } from '../data/api';\n\nconst useUnitTitle = ({\n courseId,\n selectedLanguage,\n unitId,\n unitTitle,\n courseLanguage = 'en',\n}) => {\n const [currentTitle, setCurrentTitle] = useState(unitTitle);\n const [currentSelectedLanguage, setCurrentSelectedLanguage] = useState('');\n\n const translateUnitTitleRequest = useCallback(async () => {\n const data = await translateUnitTitle({\n content: unitTitle,\n courseId,\n sourceLanguage: courseLanguage,\n sourceTypeId: unitId,\n targetLanguage: selectedLanguage,\n });\n setCurrentTitle(data?.translatedContent ?? unitTitle);\n }, [\n courseId,\n selectedLanguage,\n unitId,\n unitTitle,\n ]);\n\n useEffect(() => {\n const request = async () => {\n const domNode = document.querySelector('.unit .h3');\n if (domNode && selectedLanguage !== courseLanguage) {\n setCurrentSelectedLanguage(selectedLanguage);\n if (currentSelectedLanguage !== selectedLanguage) {\n await translateUnitTitleRequest(domNode);\n }\n domNode.textContent = currentTitle;\n } else if (domNode) {\n domNode.textContent = unitTitle;\n }\n };\n\n if (unitTitle) {\n request();\n }\n }, [selectedLanguage, currentTitle]);\n};\n\nexport default useUnitTitle;\n"],"mappings":"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","ignoreList":[]}