@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.
- package/LICENSE +661 -0
- package/README.md +73 -0
- package/dist/BookmarkButton.js +68 -0
- package/dist/BookmarkButton.js.map +1 -0
- package/dist/LegacyUnitTitle.js +61 -0
- package/dist/LegacyUnitTitle.js.map +1 -0
- package/dist/UnitTitle.js +65 -0
- package/dist/UnitTitle.js.map +1 -0
- package/dist/__factories__/courseHomeMeta.factory.js +20 -0
- package/dist/__factories__/courseHomeMeta.factory.js.map +1 -0
- package/dist/__factories__/coursewareMeta.factory.js +7 -0
- package/dist/__factories__/coursewareMeta.factory.js.map +1 -0
- package/dist/__factories__/index.js +5 -0
- package/dist/__factories__/index.js.map +1 -0
- package/dist/i18n/index.js +47 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/messages/ar.json +14 -0
- package/dist/i18n/messages/ca.json +14 -0
- package/dist/i18n/messages/es_419.json +14 -0
- package/dist/i18n/messages/es_AR.json +14 -0
- package/dist/i18n/messages/es_ES.json +14 -0
- package/dist/i18n/messages/fr.json +14 -0
- package/dist/i18n/messages/he.json +14 -0
- package/dist/i18n/messages/id.json +14 -0
- package/dist/i18n/messages/it_IT.json +14 -0
- package/dist/i18n/messages/ko_KR.json +14 -0
- package/dist/i18n/messages/pl.json +14 -0
- package/dist/i18n/messages/pt_BR.json +14 -0
- package/dist/i18n/messages/pt_PT.json +14 -0
- package/dist/i18n/messages/ru.json +14 -0
- package/dist/i18n/messages/th.json +14 -0
- package/dist/i18n/messages/tr_TR.json +14 -0
- package/dist/i18n/messages/uk.json +14 -0
- package/dist/i18n/messages/zh_CN.json +14 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/translation-button/assets/google-translate-logo.png +0 -0
- package/dist/translation-button/data/__factories__/courseHomeMeta.factory.js +20 -0
- package/dist/translation-button/data/__factories__/courseHomeMeta.factory.js.map +1 -0
- package/dist/translation-button/data/__factories__/coursewareMeta.factory.js +7 -0
- package/dist/translation-button/data/__factories__/coursewareMeta.factory.js.map +1 -0
- package/dist/translation-button/data/__factories__/index.js +5 -0
- package/dist/translation-button/data/__factories__/index.js.map +1 -0
- package/dist/translation-button/data/api.js +185 -0
- package/dist/translation-button/data/api.js.map +1 -0
- package/dist/translation-button/feedback-widget/FeedbackDetailsModal.js +138 -0
- package/dist/translation-button/feedback-widget/FeedbackDetailsModal.js.map +1 -0
- package/dist/translation-button/feedback-widget/index.js +163 -0
- package/dist/translation-button/feedback-widget/index.js.map +1 -0
- package/dist/translation-button/feedback-widget/index.scss +4 -0
- package/dist/translation-button/feedback-widget/messages.js +61 -0
- package/dist/translation-button/feedback-widget/messages.js.map +1 -0
- package/dist/translation-button/feedback-widget/useFeedbackWidget.js +134 -0
- package/dist/translation-button/feedback-widget/useFeedbackWidget.js.map +1 -0
- package/dist/translation-button/index.js +117 -0
- package/dist/translation-button/index.js.map +1 -0
- package/dist/translation-button/translation-selection/index.js +169 -0
- package/dist/translation-button/translation-selection/index.js.map +1 -0
- package/dist/translation-button/translation-selection/index.scss +26 -0
- package/dist/translation-button/translation-selection/messages.js +36 -0
- package/dist/translation-button/translation-selection/messages.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/GoogleDisclaimer.js +77 -0
- package/dist/translation-button/translation-selection/translation-modal/GoogleDisclaimer.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/LanguageSelector.js +68 -0
- package/dist/translation-button/translation-selection/translation-modal/LanguageSelector.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/LanguageSelector.scss +18 -0
- package/dist/translation-button/translation-selection/translation-modal/LockedLanguages.js +53 -0
- package/dist/translation-button/translation-selection/translation-modal/LockedLanguages.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/ModalFooter.js +36 -0
- package/dist/translation-button/translation-selection/translation-modal/ModalFooter.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/NewLanguageFeedback.js +36 -0
- package/dist/translation-button/translation-selection/translation-modal/NewLanguageFeedback.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/PaidModalBody.js +33 -0
- package/dist/translation-button/translation-selection/translation-modal/PaidModalBody.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/TranslationModal.js +101 -0
- package/dist/translation-button/translation-selection/translation-modal/TranslationModal.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/TranslationModal.scss +12 -0
- package/dist/translation-button/translation-selection/translation-modal/UpgradeBenefits.js +34 -0
- package/dist/translation-button/translation-selection/translation-modal/UpgradeBenefits.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/UpgradeModalBody.js +64 -0
- package/dist/translation-button/translation-selection/translation-modal/UpgradeModalBody.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/index.js +10 -0
- package/dist/translation-button/translation-selection/translation-modal/index.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/messages.js +106 -0
- package/dist/translation-button/translation-selection/translation-modal/messages.js.map +1 -0
- package/dist/translation-button/translation-selection/translation-modal/useTranslationModal.js +124 -0
- package/dist/translation-button/translation-selection/translation-modal/useTranslationModal.js.map +1 -0
- package/dist/translation-button/translation-selection/useSelectLanguage.js +44 -0
- package/dist/translation-button/translation-selection/useSelectLanguage.js.map +1 -0
- package/dist/translation-button/translation-selection/useTranslationTour.js +76 -0
- package/dist/translation-button/translation-selection/useTranslationTour.js.map +1 -0
- package/dist/translation-button/translation-selection/useUnitTitle.js +100 -0
- package/dist/translation-button/translation-selection/useUnitTitle.js.map +1 -0
- package/dist/translation-button/translations-loader/SVGLoader.js +83 -0
- package/dist/translation-button/translations-loader/SVGLoader.js.map +1 -0
- package/dist/translation-button/translations-loader/index.js +63 -0
- package/dist/translation-button/translations-loader/index.js.map +1 -0
- package/dist/translation-button/translations-loader/index.scss +43 -0
- package/dist/translation-button/translations-loader/messages.js +16 -0
- package/dist/translation-button/translations-loader/messages.js.map +1 -0
- 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,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
|