@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,138 @@
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"] = exports.FEEDBACK_REASON_OTHER = exports.FEEDBACK_REASON_NOT_ACCURATE = exports.FEEDBACK_REASON_HARMFUL = exports.FEEDBACK_REASON_BROKEN = 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 _paragon = require("@openedx/paragon");
12
+ var _messages = _interopRequireDefault(require("./messages"));
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
17
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
+ 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."); }
19
+ 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); }
20
+ 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; }
21
+ 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; } }
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
+ var FEEDBACK_REASON_BROKEN = exports.FEEDBACK_REASON_BROKEN = 'broken';
24
+ var FEEDBACK_REASON_HARMFUL = exports.FEEDBACK_REASON_HARMFUL = 'harmful';
25
+ var FEEDBACK_REASON_NOT_ACCURATE = exports.FEEDBACK_REASON_NOT_ACCURATE = 'not_accurate';
26
+ var FEEDBACK_REASON_OTHER = exports.FEEDBACK_REASON_OTHER = 'other';
27
+ var FeedbackDetailsModal = function FeedbackDetailsModal(_ref) {
28
+ var isOpen = _ref.isOpen,
29
+ close = _ref.close,
30
+ currentFeedbackValue = _ref.currentFeedbackValue,
31
+ onSendPositiveFeedback = _ref.onSendPositiveFeedback,
32
+ onSendNegativeFeedback = _ref.onSendNegativeFeedback;
33
+ var _useIntl = (0, _i18n.useIntl)(),
34
+ formatMessage = _useIntl.formatMessage;
35
+ var siteLanguage = (0, _i18n.getLocale)();
36
+ var dir = (0, _i18n.isRtl)(siteLanguage) ? 'rtl' : 'ltr';
37
+ var _useState = (0, _react.useState)(''),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ feedbackDetails = _useState2[0],
40
+ setFeedbackDetails = _useState2[1];
41
+ var _useState3 = (0, _react.useState)(true),
42
+ _useState4 = _slicedToArray(_useState3, 2),
43
+ emailMeCheckboxValue = _useState4[0],
44
+ setEmailMeCheckboxValue = _useState4[1];
45
+ var _useCheckboxSetValues = (0, _paragon.useCheckboxSetValues)([]),
46
+ _useCheckboxSetValues2 = _slicedToArray(_useCheckboxSetValues, 2),
47
+ reasonValues = _useCheckboxSetValues2[0],
48
+ _useCheckboxSetValues3 = _useCheckboxSetValues2[1],
49
+ add = _useCheckboxSetValues3.add,
50
+ remove = _useCheckboxSetValues3.remove;
51
+ var onSubmit = function onSubmit() {
52
+ if (currentFeedbackValue) {
53
+ onSendPositiveFeedback(feedbackDetails, emailMeCheckboxValue);
54
+ } else {
55
+ onSendNegativeFeedback(reasonValues, feedbackDetails, emailMeCheckboxValue);
56
+ }
57
+ close();
58
+ };
59
+ var reasonList = [{
60
+ code: FEEDBACK_REASON_BROKEN,
61
+ name: formatMessage(_messages["default"].feedbackDetailsModalCheckboxBroken)
62
+ }, {
63
+ code: FEEDBACK_REASON_HARMFUL,
64
+ name: formatMessage(_messages["default"].feedbackDetailsModalCheckboxHarmful)
65
+ }, {
66
+ code: FEEDBACK_REASON_NOT_ACCURATE,
67
+ name: formatMessage(_messages["default"].feedbackDetailsModalCheckboxNotAccurate)
68
+ }, {
69
+ code: FEEDBACK_REASON_OTHER,
70
+ name: formatMessage(_messages["default"].feedbackDetailsModalCheckboxElse)
71
+ }];
72
+ var handleReasonChange = function handleReasonChange(e) {
73
+ if (e.target.checked) {
74
+ add(e.target.value);
75
+ } else {
76
+ remove(e.target.value);
77
+ }
78
+ };
79
+ var handleDetailsChange = function handleDetailsChange(event) {
80
+ setFeedbackDetails(event.target.value);
81
+ };
82
+ var handleEmailMeChange = function handleEmailMeChange(e) {
83
+ setEmailMeCheckboxValue(e.target.checked);
84
+ };
85
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.StandardModal, {
86
+ title: formatMessage(_messages["default"].feedbackDetailsModalTitle),
87
+ isOpen: isOpen,
88
+ onClose: close,
89
+ footerNode: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow, {
90
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
91
+ onClick: onSubmit,
92
+ "data-testid": "feedback-details-modal-submit-button",
93
+ children: formatMessage(_messages["default"].feedbackDetailsModalSubmitText)
94
+ })
95
+ }),
96
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
97
+ dir: dir,
98
+ children: [!currentFeedbackValue && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Form.CheckboxSet, {
99
+ className: "mb-3",
100
+ name: "reasons",
101
+ onChange: handleReasonChange,
102
+ value: reasonValues,
103
+ "data-testid": "feedback-details-modal-reasons-checkboxes",
104
+ children: reasonList.map(function (reason) {
105
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Form.Checkbox, {
106
+ value: reason.code,
107
+ "data-testid": "feedback-details-modal-reason-checkbox-".concat(reason.code),
108
+ children: reason.name
109
+ }, reason.code);
110
+ })
111
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Form.Control, {
112
+ as: "textarea",
113
+ onChange: handleDetailsChange,
114
+ placeholder: formatMessage(_messages["default"].feedbackDetailsModalPlaceholder),
115
+ rows: "5",
116
+ maxlength: "1000",
117
+ "data-testid": "feedback-details-modal-details"
118
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
119
+ className: "text-right small mr-2",
120
+ children: [feedbackDetails.length, " / 1000"]
121
+ })]
122
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Form.Checkbox, {
123
+ "data-testid": "feedback-details-modal-email-me-checkbox",
124
+ checked: emailMeCheckboxValue,
125
+ onChange: handleEmailMeChange,
126
+ children: formatMessage(_messages["default"].feedbackDetailsModalEmailMeText)
127
+ })]
128
+ });
129
+ };
130
+ FeedbackDetailsModal.propTypes = {
131
+ isOpen: _propTypes["default"].bool.isRequired,
132
+ close: _propTypes["default"].func.isRequired,
133
+ currentFeedbackValue: _propTypes["default"].bool.isRequired,
134
+ onSendPositiveFeedback: _propTypes["default"].func.isRequired,
135
+ onSendNegativeFeedback: _propTypes["default"].func.isRequired
136
+ };
137
+ var _default = exports["default"] = FeedbackDetailsModal;
138
+ //# sourceMappingURL=FeedbackDetailsModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackDetailsModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_i18n","_paragon","_messages","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","e","WeakMap","r","t","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","Array","from","test","len","length","arr2","l","Symbol","iterator","f","next","done","push","value","isArray","FEEDBACK_REASON_BROKEN","exports","FEEDBACK_REASON_HARMFUL","FEEDBACK_REASON_NOT_ACCURATE","FEEDBACK_REASON_OTHER","FeedbackDetailsModal","_ref","isOpen","close","currentFeedbackValue","onSendPositiveFeedback","onSendNegativeFeedback","_useIntl","useIntl","formatMessage","siteLanguage","getLocale","dir","isRtl","_useState","useState","_useState2","feedbackDetails","setFeedbackDetails","_useState3","_useState4","emailMeCheckboxValue","setEmailMeCheckboxValue","_useCheckboxSetValues","useCheckboxSetValues","_useCheckboxSetValues2","reasonValues","_useCheckboxSetValues3","add","remove","onSubmit","reasonList","code","messages","feedbackDetailsModalCheckboxBroken","feedbackDetailsModalCheckboxHarmful","feedbackDetailsModalCheckboxNotAccurate","feedbackDetailsModalCheckboxElse","handleReasonChange","target","checked","handleDetailsChange","event","handleEmailMeChange","jsxs","StandardModal","title","feedbackDetailsModalTitle","onClose","footerNode","jsx","ActionRow","children","Button","onClick","feedbackDetailsModalSubmitText","Form","CheckboxSet","className","onChange","map","reason","Checkbox","concat","Control","as","placeholder","feedbackDetailsModalPlaceholder","rows","maxlength","feedbackDetailsModalEmailMeText","propTypes","PropTypes","bool","isRequired","func","_default"],"sources":["../../../src/translation-button/feedback-widget/FeedbackDetailsModal.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl, isRtl, getLocale } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n Form,\n StandardModal,\n useCheckboxSetValues,\n} from '@openedx/paragon';\n\nimport messages from './messages';\n\nexport const FEEDBACK_REASON_BROKEN = 'broken';\nexport const FEEDBACK_REASON_HARMFUL = 'harmful';\nexport const FEEDBACK_REASON_NOT_ACCURATE = 'not_accurate';\nexport const FEEDBACK_REASON_OTHER = 'other';\n\nconst FeedbackDetailsModal = ({\n isOpen,\n close,\n currentFeedbackValue,\n onSendPositiveFeedback,\n onSendNegativeFeedback,\n}) => {\n const { formatMessage } = useIntl();\n const siteLanguage = getLocale();\n const dir = isRtl(siteLanguage) ? 'rtl' : 'ltr';\n const [feedbackDetails, setFeedbackDetails] = useState('');\n const [emailMeCheckboxValue, setEmailMeCheckboxValue] = useState(true);\n\n const [reasonValues, { add, remove }] = useCheckboxSetValues([]);\n\n const onSubmit = () => {\n if (currentFeedbackValue) {\n onSendPositiveFeedback(feedbackDetails, emailMeCheckboxValue);\n } else {\n onSendNegativeFeedback(reasonValues, feedbackDetails, emailMeCheckboxValue);\n }\n close();\n };\n\n const reasonList = [\n { code: FEEDBACK_REASON_BROKEN, name: formatMessage(messages.feedbackDetailsModalCheckboxBroken) },\n { code: FEEDBACK_REASON_HARMFUL, name: formatMessage(messages.feedbackDetailsModalCheckboxHarmful) },\n { code: FEEDBACK_REASON_NOT_ACCURATE, name: formatMessage(messages.feedbackDetailsModalCheckboxNotAccurate) },\n { code: FEEDBACK_REASON_OTHER, name: formatMessage(messages.feedbackDetailsModalCheckboxElse) },\n ];\n\n const handleReasonChange = e => {\n if (e.target.checked) {\n add(e.target.value);\n } else {\n remove(e.target.value);\n }\n };\n\n const handleDetailsChange = (event) => {\n setFeedbackDetails(event.target.value);\n };\n\n const handleEmailMeChange = (e) => {\n setEmailMeCheckboxValue(e.target.checked);\n };\n\n return (\n <StandardModal\n title={formatMessage(messages.feedbackDetailsModalTitle)}\n isOpen={isOpen}\n onClose={close}\n footerNode={(\n <ActionRow>\n <Button onClick={onSubmit} data-testid=\"feedback-details-modal-submit-button\">\n {formatMessage(messages.feedbackDetailsModalSubmitText)}\n </Button>\n </ActionRow>\n )}\n >\n <div dir={dir}>\n {\n !currentFeedbackValue && (\n <Form.CheckboxSet\n className=\"mb-3\"\n name=\"reasons\"\n onChange={handleReasonChange}\n value={reasonValues}\n data-testid=\"feedback-details-modal-reasons-checkboxes\"\n >\n {reasonList.map((reason) => (\n <Form.Checkbox\n key={reason.code}\n value={reason.code}\n data-testid={`feedback-details-modal-reason-checkbox-${reason.code}`}\n >\n {reason.name}\n </Form.Checkbox>\n ))}\n </Form.CheckboxSet>\n )\n }\n <Form.Control\n as=\"textarea\"\n onChange={handleDetailsChange}\n placeholder={formatMessage(messages.feedbackDetailsModalPlaceholder)}\n rows=\"5\"\n maxlength=\"1000\"\n data-testid=\"feedback-details-modal-details\"\n />\n <p className=\"text-right small mr-2\">\n {feedbackDetails.length} / 1000\n </p>\n </div>\n <Form.Checkbox\n data-testid=\"feedback-details-modal-email-me-checkbox\"\n checked={emailMeCheckboxValue}\n onChange={handleEmailMeChange}\n >\n {formatMessage(messages.feedbackDetailsModalEmailMeText)}\n </Form.Checkbox>\n </StandardModal>\n );\n};\n\nFeedbackDetailsModal.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n close: PropTypes.func.isRequired,\n currentFeedbackValue: PropTypes.bool.isRequired,\n onSendPositiveFeedback: PropTypes.func.isRequired,\n onSendNegativeFeedback: PropTypes.func.isRequired,\n};\n\nexport default FeedbackDetailsModal;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,163 @@
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 _frontendPlatform = require("@edx/frontend-platform");
12
+ var _paragon = require("@openedx/paragon");
13
+ var _icons = require("@openedx/paragon/icons");
14
+ require("./index.scss");
15
+ var _messages = _interopRequireDefault(require("./messages"));
16
+ var _FeedbackDetailsModal = _interopRequireDefault(require("./FeedbackDetailsModal"));
17
+ var _useFeedbackWidget2 = _interopRequireDefault(require("./useFeedbackWidget"));
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
22
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
23
+ 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."); }
24
+ 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); }
25
+ 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; }
26
+ 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; } }
27
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
28
+ var FeedbackWidget = function FeedbackWidget(_ref) {
29
+ var courseId = _ref.courseId,
30
+ courseLanguage = _ref.courseLanguage,
31
+ translationLanguage = _ref.translationLanguage,
32
+ unitId = _ref.unitId,
33
+ userId = _ref.userId;
34
+ var _useIntl = (0, _i18n.useIntl)(),
35
+ formatMessage = _useIntl.formatMessage;
36
+ var ref = (0, _react.useRef)(null);
37
+ var _useState = (0, _react.useState)(false),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ elemReady = _useState2[0],
40
+ setElemReady = _useState2[1];
41
+ var _useState3 = (0, _react.useState)(false),
42
+ _useState4 = _slicedToArray(_useState3, 2),
43
+ isFeedbackDetailsModalOpen = _useState4[0],
44
+ setIsFeedbackDetailsModalOpen = _useState4[1];
45
+ var _useState5 = (0, _react.useState)(null),
46
+ _useState6 = _slicedToArray(_useState5, 2),
47
+ currentFeedbackValue = _useState6[0],
48
+ setCurrentFeedbackValue = _useState6[1];
49
+ var _useFeedbackWidget = (0, _useFeedbackWidget2["default"])({
50
+ courseId: courseId,
51
+ courseLanguage: courseLanguage,
52
+ translationLanguage: translationLanguage,
53
+ unitId: unitId,
54
+ userId: userId
55
+ }),
56
+ closeFeedbackWidget = _useFeedbackWidget.closeFeedbackWidget,
57
+ isLoading = _useFeedbackWidget.isLoading,
58
+ showFeedbackWidget = _useFeedbackWidget.showFeedbackWidget,
59
+ showGratitudeText = _useFeedbackWidget.showGratitudeText,
60
+ onSendPositiveFeedback = _useFeedbackWidget.onSendPositiveFeedback,
61
+ onSendNegativeFeedback = _useFeedbackWidget.onSendNegativeFeedback;
62
+ (0, _react.useEffect)(function () {
63
+ var domNode = document.getElementById('whole-course-translation-feedback-widget');
64
+ if (ref.current && domNode) {
65
+ while (domNode.firstChild) {
66
+ domNode.removeChild(domNode.lastChild);
67
+ }
68
+ domNode.appendChild(ref.current);
69
+ setElemReady(true);
70
+ }
71
+ }, [ref.current]);
72
+ if (!(0, _frontendPlatform.getConfig)().AI_TRANSLATIONS_URL) {
73
+ return null;
74
+ }
75
+ var onThumbsUpClick = function onThumbsUpClick() {
76
+ setCurrentFeedbackValue(true);
77
+ setIsFeedbackDetailsModalOpen(true);
78
+ };
79
+ var onThumbsDownClick = function onThumbsDownClick() {
80
+ setCurrentFeedbackValue(false);
81
+ setIsFeedbackDetailsModalOpen(true);
82
+ };
83
+ var onCloseFeedbackDetailsModal = function onCloseFeedbackDetailsModal() {
84
+ setIsFeedbackDetailsModalOpen(false);
85
+ };
86
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
87
+ ref: ref,
88
+ className: elemReady ? 'sequence-container d-inline-flex flex-row w-100' : 'd-none',
89
+ children: showFeedbackWidget || showGratitudeText || isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
90
+ className: "sequence w-100",
91
+ children: [showFeedbackWidget && (isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
92
+ className: "mt-1 mb-1",
93
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow, {
94
+ className: "m-2 justify-content-center",
95
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Spinner, {
96
+ animation: "border",
97
+ variant: "primary",
98
+ className: "mr-3",
99
+ screenReaderText: "loading"
100
+ })
101
+ })
102
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
103
+ className: "ml-4 mr-2",
104
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.ActionRow, {
105
+ children: [formatMessage(_messages["default"].rateTranslationText), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow.Spacer, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
106
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButton, {
107
+ src: _icons.ThumbUpOutline,
108
+ iconAs: _paragon.Icon,
109
+ alt: "positive-feedback",
110
+ onClick: onThumbsUpClick,
111
+ variant: "secondary",
112
+ className: "m-1",
113
+ id: "positive-feedback-button"
114
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButton, {
115
+ src: _icons.ThumbDownOffAlt,
116
+ iconAs: _paragon.Icon,
117
+ alt: "negative-feedback",
118
+ onClick: onThumbsDownClick,
119
+ variant: "secondary",
120
+ className: "mr-2",
121
+ id: "negative-feedback-button"
122
+ })]
123
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
124
+ className: "mb-1 text-light action-row-divider",
125
+ children: "|"
126
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
127
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButton, {
128
+ src: _icons.Close,
129
+ iconAs: _paragon.Icon,
130
+ alt: "close-feedback",
131
+ onClick: closeFeedbackWidget,
132
+ variant: "secondary",
133
+ className: "ml-1 mr-2 float-right",
134
+ id: "close-feedback-button"
135
+ })
136
+ })]
137
+ })
138
+ })), showGratitudeText && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
139
+ className: "ml-4 mr-4",
140
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow, {
141
+ className: "m-2 justify-content-center",
142
+ children: formatMessage(_messages["default"].gratitudeText)
143
+ })
144
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FeedbackDetailsModal["default"], {
145
+ isOpen: isFeedbackDetailsModalOpen,
146
+ close: onCloseFeedbackDetailsModal,
147
+ currentFeedbackValue: currentFeedbackValue,
148
+ onSendPositiveFeedback: onSendPositiveFeedback,
149
+ onSendNegativeFeedback: onSendNegativeFeedback
150
+ })]
151
+ }) : null
152
+ });
153
+ };
154
+ FeedbackWidget.propTypes = {
155
+ courseId: _propTypes["default"].string.isRequired,
156
+ courseLanguage: _propTypes["default"].string.isRequired,
157
+ translationLanguage: _propTypes["default"].string.isRequired,
158
+ userId: _propTypes["default"].string.isRequired,
159
+ unitId: _propTypes["default"].string.isRequired
160
+ };
161
+ FeedbackWidget.defaultProps = {};
162
+ var _default = exports["default"] = FeedbackWidget;
163
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_i18n","_frontendPlatform","_paragon","_icons","_messages","_FeedbackDetailsModal","_useFeedbackWidget2","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","e","WeakMap","r","t","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","Array","from","test","len","length","arr2","l","Symbol","iterator","f","next","done","push","value","isArray","FeedbackWidget","_ref","courseId","courseLanguage","translationLanguage","unitId","userId","_useIntl","useIntl","formatMessage","ref","useRef","_useState","useState","_useState2","elemReady","setElemReady","_useState3","_useState4","isFeedbackDetailsModalOpen","setIsFeedbackDetailsModalOpen","_useState5","_useState6","currentFeedbackValue","setCurrentFeedbackValue","_useFeedbackWidget","useFeedbackWidget","closeFeedbackWidget","isLoading","showFeedbackWidget","showGratitudeText","onSendPositiveFeedback","onSendNegativeFeedback","useEffect","domNode","document","getElementById","current","firstChild","removeChild","lastChild","appendChild","getConfig","AI_TRANSLATIONS_URL","onThumbsUpClick","onThumbsDownClick","onCloseFeedbackDetailsModal","jsx","className","children","jsxs","ActionRow","Spinner","animation","variant","screenReaderText","messages","rateTranslationText","Spacer","IconButton","src","ThumbUpOutline","iconAs","Icon","alt","onClick","id","ThumbDownOffAlt","Close","gratitudeText","isOpen","close","propTypes","PropTypes","string","isRequired","defaultProps","_default","exports"],"sources":["../../../src/translation-button/feedback-widget/index.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { getConfig } from '@edx/frontend-platform';\n\nimport {\n ActionRow,\n IconButton,\n Icon,\n Spinner,\n} from '@openedx/paragon';\nimport { Close, ThumbUpOutline, ThumbDownOffAlt } from '@openedx/paragon/icons';\n\nimport './index.scss';\nimport messages from './messages';\nimport FeedbackDetailsModal from './FeedbackDetailsModal';\nimport useFeedbackWidget from './useFeedbackWidget';\n\nconst FeedbackWidget = ({\n courseId, courseLanguage, translationLanguage, unitId, userId,\n}) => {\n const { formatMessage } = useIntl();\n const ref = useRef(null);\n const [elemReady, setElemReady] = useState(false);\n const [isFeedbackDetailsModalOpen, setIsFeedbackDetailsModalOpen] = useState(false);\n const [currentFeedbackValue, setCurrentFeedbackValue] = useState(null);\n const {\n closeFeedbackWidget,\n isLoading,\n showFeedbackWidget,\n showGratitudeText,\n onSendPositiveFeedback,\n onSendNegativeFeedback,\n } = useFeedbackWidget({\n courseId,\n courseLanguage,\n translationLanguage,\n unitId,\n userId,\n });\n\n useEffect(() => {\n const domNode = document.getElementById(\n 'whole-course-translation-feedback-widget',\n );\n if (ref.current && domNode) {\n while (domNode.firstChild) {\n domNode.removeChild(domNode.lastChild);\n }\n domNode.appendChild(ref.current);\n setElemReady(true);\n }\n }, [ref.current]);\n\n if (!getConfig().AI_TRANSLATIONS_URL) {\n return null;\n }\n\n const onThumbsUpClick = () => {\n setCurrentFeedbackValue(true);\n setIsFeedbackDetailsModalOpen(true);\n };\n\n const onThumbsDownClick = () => {\n setCurrentFeedbackValue(false);\n setIsFeedbackDetailsModalOpen(true);\n };\n\n const onCloseFeedbackDetailsModal = () => {\n setIsFeedbackDetailsModalOpen(false);\n };\n\n return (\n <div\n ref={ref}\n className={\n elemReady ? 'sequence-container d-inline-flex flex-row w-100' : 'd-none'\n }\n >\n {showFeedbackWidget || showGratitudeText || isLoading ? (\n <div className=\"sequence w-100\">\n {showFeedbackWidget && (\n isLoading ? (\n <div className=\"mt-1 mb-1\">\n <ActionRow className=\"m-2 justify-content-center\">\n <Spinner animation=\"border\" variant=\"primary\" className=\"mr-3\" screenReaderText=\"loading\" />\n </ActionRow>\n </div>\n ) : (\n <div className=\"ml-4 mr-2\">\n <ActionRow>\n {formatMessage(messages.rateTranslationText)}\n <ActionRow.Spacer />\n <div>\n <IconButton\n src={ThumbUpOutline}\n iconAs={Icon}\n alt=\"positive-feedback\"\n onClick={onThumbsUpClick}\n variant=\"secondary\"\n className=\"m-1\"\n id=\"positive-feedback-button\"\n />\n <IconButton\n src={ThumbDownOffAlt}\n iconAs={Icon}\n alt=\"negative-feedback\"\n onClick={onThumbsDownClick}\n variant=\"secondary\"\n className=\"mr-2\"\n id=\"negative-feedback-button\"\n />\n </div>\n <div className=\"mb-1 text-light action-row-divider\">|</div>\n <div>\n <IconButton\n src={Close}\n iconAs={Icon}\n alt=\"close-feedback\"\n onClick={closeFeedbackWidget}\n variant=\"secondary\"\n className=\"ml-1 mr-2 float-right\"\n id=\"close-feedback-button\"\n />\n </div>\n </ActionRow>\n </div>\n )\n )}\n {showGratitudeText && (\n <div className=\"ml-4 mr-4\">\n <ActionRow className=\"m-2 justify-content-center\">\n {formatMessage(messages.gratitudeText)}\n </ActionRow>\n </div>\n )}\n <FeedbackDetailsModal\n isOpen={isFeedbackDetailsModalOpen}\n close={onCloseFeedbackDetailsModal}\n currentFeedbackValue={currentFeedbackValue}\n onSendPositiveFeedback={onSendPositiveFeedback}\n onSendNegativeFeedback={onSendNegativeFeedback}\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nFeedbackWidget.propTypes = {\n courseId: PropTypes.string.isRequired,\n courseLanguage: PropTypes.string.isRequired,\n translationLanguage: PropTypes.string.isRequired,\n userId: PropTypes.string.isRequired,\n unitId: PropTypes.string.isRequired,\n};\n\nFeedbackWidget.defaultProps = {};\n\nexport default FeedbackWidget;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ .action-row-divider {
2
+ font-size: 31px;
3
+ font-weight: 100;
4
+ }
@@ -0,0 +1,61 @@
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
+ rateTranslationText: {
10
+ id: 'unit-translation-selector-plugin.feedbackWidget.rateTranslationText',
11
+ defaultMessage: 'Rate this page translation',
12
+ description: 'Title for the feedback widget action row.'
13
+ },
14
+ gratitudeText: {
15
+ id: 'unit-translation-selector-plugin.feedbackWidget.gratitudeText',
16
+ defaultMessage: 'Thank you! Your feedback matters.',
17
+ description: 'Title for secondary action row.'
18
+ },
19
+ feedbackDetailsModalTitle: {
20
+ id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.title',
21
+ defaultMessage: 'Share Feedback',
22
+ description: 'Title for feedback details modal.'
23
+ },
24
+ feedbackDetailsModalSubmitText: {
25
+ id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.submit',
26
+ defaultMessage: 'Submit Feedback',
27
+ description: 'Submit button text for feedback details modal.'
28
+ },
29
+ feedbackDetailsModalPlaceholder: {
30
+ id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.placeholder',
31
+ defaultMessage: 'Optional: enter aditional feedback',
32
+ description: 'Placeholder for feedback details modal textarea'
33
+ },
34
+ feedbackDetailsModalCheckboxBroken: {
35
+ id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.reason.broken',
36
+ defaultMessage: 'Something is broken',
37
+ description: 'Checkbox text for reason: broken'
38
+ },
39
+ feedbackDetailsModalCheckboxHarmful: {
40
+ id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.reason.harmful',
41
+ defaultMessage: 'This is harmful or unsafe',
42
+ description: 'Checkbox text for reason: harmful'
43
+ },
44
+ feedbackDetailsModalCheckboxNotAccurate: {
45
+ id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.reason.notaccurate',
46
+ defaultMessage: 'This is not accurate/helpful',
47
+ description: 'Checkbox text for reason: notaccurate'
48
+ },
49
+ feedbackDetailsModalCheckboxElse: {
50
+ id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.reason.else',
51
+ defaultMessage: 'Something else',
52
+ description: 'Checkbox text for reason: else'
53
+ },
54
+ feedbackDetailsModalEmailMeText: {
55
+ id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.emailme',
56
+ defaultMessage: 'It’s ok to email me about my response',
57
+ description: 'Text for email me checkbox'
58
+ }
59
+ });
60
+ var _default = exports["default"] = messages;
61
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","rateTranslationText","id","defaultMessage","description","gratitudeText","feedbackDetailsModalTitle","feedbackDetailsModalSubmitText","feedbackDetailsModalPlaceholder","feedbackDetailsModalCheckboxBroken","feedbackDetailsModalCheckboxHarmful","feedbackDetailsModalCheckboxNotAccurate","feedbackDetailsModalCheckboxElse","feedbackDetailsModalEmailMeText","_default","exports"],"sources":["../../../src/translation-button/feedback-widget/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n rateTranslationText: {\n id: 'unit-translation-selector-plugin.feedbackWidget.rateTranslationText',\n defaultMessage: 'Rate this page translation',\n description: 'Title for the feedback widget action row.',\n },\n gratitudeText: {\n id: 'unit-translation-selector-plugin.feedbackWidget.gratitudeText',\n defaultMessage: 'Thank you! Your feedback matters.',\n description: 'Title for secondary action row.',\n },\n feedbackDetailsModalTitle: {\n id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.title',\n defaultMessage: 'Share Feedback',\n description: 'Title for feedback details modal.',\n },\n feedbackDetailsModalSubmitText: {\n id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.submit',\n defaultMessage: 'Submit Feedback',\n description: 'Submit button text for feedback details modal.',\n },\n feedbackDetailsModalPlaceholder: {\n id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.placeholder',\n defaultMessage: 'Optional: enter aditional feedback',\n description: 'Placeholder for feedback details modal textarea',\n },\n feedbackDetailsModalCheckboxBroken: {\n id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.reason.broken',\n defaultMessage: 'Something is broken',\n description: 'Checkbox text for reason: broken',\n },\n feedbackDetailsModalCheckboxHarmful: {\n id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.reason.harmful',\n defaultMessage: 'This is harmful or unsafe',\n description: 'Checkbox text for reason: harmful',\n },\n feedbackDetailsModalCheckboxNotAccurate: {\n id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.reason.notaccurate',\n defaultMessage: 'This is not accurate/helpful',\n description: 'Checkbox text for reason: notaccurate',\n },\n feedbackDetailsModalCheckboxElse: {\n id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.reason.else',\n defaultMessage: 'Something else',\n description: 'Checkbox text for reason: else',\n },\n feedbackDetailsModalEmailMeText: {\n id: 'unit-translation-selector-plugin.feedbackWidget.feedbackDetailsModal.emailme',\n defaultMessage: 'It’s ok to email me about my response',\n description: 'Text for email me checkbox',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9BC,mBAAmB,EAAE;IACnBC,EAAE,EAAE,qEAAqE;IACzEC,cAAc,EAAE,4BAA4B;IAC5CC,WAAW,EAAE;EACf,CAAC;EACDC,aAAa,EAAE;IACbH,EAAE,EAAE,+DAA+D;IACnEC,cAAc,EAAE,mCAAmC;IACnDC,WAAW,EAAE;EACf,CAAC;EACDE,yBAAyB,EAAE;IACzBJ,EAAE,EAAE,4EAA4E;IAChFC,cAAc,EAAE,gBAAgB;IAChCC,WAAW,EAAE;EACf,CAAC;EACDG,8BAA8B,EAAE;IAC9BL,EAAE,EAAE,6EAA6E;IACjFC,cAAc,EAAE,iBAAiB;IACjCC,WAAW,EAAE;EACf,CAAC;EACDI,+BAA+B,EAAE;IAC/BN,EAAE,EAAE,kFAAkF;IACtFC,cAAc,EAAE,oCAAoC;IACpDC,WAAW,EAAE;EACf,CAAC;EACDK,kCAAkC,EAAE;IAClCP,EAAE,EAAE,oFAAoF;IACxFC,cAAc,EAAE,qBAAqB;IACrCC,WAAW,EAAE;EACf,CAAC;EACDM,mCAAmC,EAAE;IACnCR,EAAE,EAAE,qFAAqF;IACzFC,cAAc,EAAE,2BAA2B;IAC3CC,WAAW,EAAE;EACf,CAAC;EACDO,uCAAuC,EAAE;IACvCT,EAAE,EAAE,yFAAyF;IAC7FC,cAAc,EAAE,8BAA8B;IAC9CC,WAAW,EAAE;EACf,CAAC;EACDQ,gCAAgC,EAAE;IAChCV,EAAE,EAAE,kFAAkF;IACtFC,cAAc,EAAE,gBAAgB;IAChCC,WAAW,EAAE;EACf,CAAC;EACDS,+BAA+B,EAAE;IAC/BX,EAAE,EAAE,8EAA8E;IAClFC,cAAc,EAAE,uCAAuC;IACvDC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,IAAAU,QAAA,GAAAC,OAAA,cAEYhB,QAAQ","ignoreList":[]}
@@ -0,0 +1,134 @@
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 useFeedbackWidget = function useFeedbackWidget(_ref) {
20
+ var courseId = _ref.courseId,
21
+ courseLanguage = _ref.courseLanguage,
22
+ translationLanguage = _ref.translationLanguage,
23
+ unitId = _ref.unitId,
24
+ userId = _ref.userId;
25
+ var _useState = (0, _react.useState)(false),
26
+ _useState2 = _slicedToArray(_useState, 2),
27
+ isLoading = _useState2[0],
28
+ setIsLoading = _useState2[1];
29
+ var _useState3 = (0, _react.useState)(false),
30
+ _useState4 = _slicedToArray(_useState3, 2),
31
+ showFeedbackWidget = _useState4[0],
32
+ setShowFeedbackWidget = _useState4[1];
33
+ var _useState5 = (0, _react.useState)(false),
34
+ _useState6 = _slicedToArray(_useState5, 2),
35
+ showGratitudeText = _useState6[0],
36
+ setShowGratitudeText = _useState6[1];
37
+ var closeFeedbackWidget = (0, _react.useCallback)(function () {
38
+ setShowFeedbackWidget(false);
39
+ }, [setShowFeedbackWidget]);
40
+ var openFeedbackWidget = (0, _react.useCallback)(function () {
41
+ setShowFeedbackWidget(true);
42
+ }, [setShowFeedbackWidget]);
43
+ (0, _react.useEffect)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
44
+ var showWidget, translationFeedback;
45
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
46
+ while (1) switch (_context.prev = _context.next) {
47
+ case 0:
48
+ showWidget = false;
49
+ if (!(courseLanguage !== translationLanguage)) {
50
+ _context.next = 6;
51
+ break;
52
+ }
53
+ _context.next = 4;
54
+ return (0, _api.getTranslationFeedback)({
55
+ courseId: courseId,
56
+ translationLanguage: translationLanguage,
57
+ unitId: unitId,
58
+ userId: userId
59
+ });
60
+ case 4:
61
+ translationFeedback = _context.sent;
62
+ showWidget = !translationFeedback;
63
+ case 6:
64
+ setShowFeedbackWidget(showWidget);
65
+ case 7:
66
+ case "end":
67
+ return _context.stop();
68
+ }
69
+ }, _callee);
70
+ })), [courseId, courseLanguage, translationLanguage, unitId, userId]);
71
+ var openGratitudeText = (0, _react.useCallback)(function () {
72
+ setShowGratitudeText(true);
73
+ setTimeout(function () {
74
+ setShowGratitudeText(false);
75
+ }, 3000);
76
+ }, [setShowGratitudeText]);
77
+ var sendFeedback = (0, _react.useCallback)( /*#__PURE__*/function () {
78
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(feedbackValue) {
79
+ var feedbackDetails,
80
+ emailMe,
81
+ reasonList,
82
+ _args2 = arguments;
83
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
84
+ while (1) switch (_context2.prev = _context2.next) {
85
+ case 0:
86
+ feedbackDetails = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : '';
87
+ emailMe = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : true;
88
+ reasonList = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : [];
89
+ setIsLoading(true);
90
+ _context2.next = 6;
91
+ return (0, _api.createTranslationFeedback)({
92
+ courseId: courseId,
93
+ translationLanguage: translationLanguage,
94
+ unitId: unitId,
95
+ userId: userId,
96
+ feedbackValue: feedbackValue,
97
+ feedbackDetails: feedbackDetails,
98
+ emailMe: emailMe,
99
+ reasonList: reasonList
100
+ });
101
+ case 6:
102
+ setIsLoading(false);
103
+ closeFeedbackWidget();
104
+ openGratitudeText();
105
+ case 9:
106
+ case "end":
107
+ return _context2.stop();
108
+ }
109
+ }, _callee2);
110
+ }));
111
+ return function (_x) {
112
+ return _ref3.apply(this, arguments);
113
+ };
114
+ }(), [courseId, translationLanguage, unitId, userId, closeFeedbackWidget, openGratitudeText]);
115
+ var onSendPositiveFeedback = (0, _react.useCallback)(function (feedbackDetails, emailMe) {
116
+ sendFeedback(true, feedbackDetails, emailMe);
117
+ }, [sendFeedback]);
118
+ var onSendNegativeFeedback = (0, _react.useCallback)(function (reasonList, feedbackDetails, emailMe) {
119
+ sendFeedback(false, feedbackDetails, emailMe, reasonList);
120
+ }, [sendFeedback]);
121
+ return {
122
+ closeFeedbackWidget: closeFeedbackWidget,
123
+ isLoading: isLoading,
124
+ openFeedbackWidget: openFeedbackWidget,
125
+ openGratitudeText: openGratitudeText,
126
+ sendFeedback: sendFeedback,
127
+ showFeedbackWidget: showFeedbackWidget,
128
+ showGratitudeText: showGratitudeText,
129
+ onSendPositiveFeedback: onSendPositiveFeedback,
130
+ onSendNegativeFeedback: onSendNegativeFeedback
131
+ };
132
+ };
133
+ var _default = exports["default"] = useFeedbackWidget;
134
+ //# sourceMappingURL=useFeedbackWidget.js.map