@instructure/quiz-core 17.48.1-rc.2 → 17.48.1-rc.4

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.
@@ -1,290 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.RceConfigProvider = exports.RceConfigProviderComponent = void 0;
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
-
16
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
-
20
- var _react = _interopRequireWildcard(require("react"));
21
-
22
- var _propTypes = _interopRequireDefault(require("prop-types"));
23
-
24
- var _reactRedux = require("../../react-redux.js");
25
-
26
- var _reduxStore = _interopRequireDefault(require("../../../reduxStore.js"));
27
-
28
- var _rce = require("../../actions/rce.js");
29
-
30
- var _rceChecker = require("../../util/rceChecker.js");
31
-
32
- var _Spinner = require("../shared/spinner/Spinner.js");
33
-
34
- var _index = require("../shared/Card/index.js");
35
-
36
- var _quizCommon = require("@instructure/quiz-common");
37
-
38
- var _alerts = require("../../actions/alerts.js");
39
-
40
- var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
41
-
42
- var _quizInteractions = require("@instructure/quiz-interactions");
43
-
44
- var _windowChecks = require("../../util/windowChecks.js");
45
-
46
- var _ref4 = /*#__PURE__*/_react.default.createElement(_index.Card, {
47
- wrapped: true
48
- }, /*#__PURE__*/_react.default.createElement(_Spinner.QuizzesSpinner, null));
49
-
50
- var RceConfigProviderComponent = function RceConfigProviderComponent(props) {
51
- var _useState = (0, _react.useState)(props.rcsJwt),
52
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
53
- jwt = _useState2[0],
54
- setJwt = _useState2[1];
55
-
56
- var _useState3 = (0, _react.useState)(null),
57
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
58
- canvasConfig = _useState4[0],
59
- setCanvasConfig = _useState4[1];
60
-
61
- var _useState5 = (0, _react.useState)(true),
62
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
63
- canvasConfigLoading = _useState6[0],
64
- setCanvasConfigLoading = _useState6[1];
65
-
66
- var hasAllPropsForRcs = function hasAllPropsForRcs() {
67
- return !!(props.contextId && props.contextType && props.canvasUserId && props.rcsHost && props.rcsJwtRefreshFn && props.rcsJwt);
68
- };
69
-
70
- var isRce5Disabled = function isRce5Disabled() {
71
- return !props.isNewRCEEnabled && !props.isNewRCERendererEnabled;
72
- };
73
-
74
- var refreshToken = /*#__PURE__*/function () {
75
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(setTokenFn, questionStem) {
76
- var _response$json;
77
-
78
- var response, refreshedToken, normalizedStem, extractedText;
79
- return _regenerator.default.wrap(function _callee$(_context) {
80
- while (1) {
81
- switch (_context.prev = _context.next) {
82
- case 0:
83
- if (hasAllPropsForRcs()) {
84
- _context.next = 2;
85
- break;
86
- }
87
-
88
- return _context.abrupt("return");
89
-
90
- case 2:
91
- _context.next = 4;
92
- return props.rcsJwtRefreshFn(jwt);
93
-
94
- case 4:
95
- response = _context.sent;
96
- refreshedToken = response === null || response === void 0 ? void 0 : (_response$json = response.json) === null || _response$json === void 0 ? void 0 : _response$json.token; // inst-redux-service-middleware response structure
97
-
98
- if (refreshedToken) {
99
- _context.next = 11;
100
- break;
101
- }
102
-
103
- normalizedStem = questionStem !== null && questionStem !== void 0 ? questionStem : 'Unknown stem';
104
- extractedText = (0, _quizInteractions.extractTextFromHtml)(normalizedStem);
105
- handleError((0, _formatMessage.default)('Error while answering "{stem}": Full functionality of the Rich Content Editor may not have been available to the user.', {
106
- stem: extractedText
107
- }));
108
- return _context.abrupt("return");
109
-
110
- case 11:
111
- setJwt(refreshedToken);
112
- setTokenFn(refreshedToken);
113
-
114
- case 13:
115
- case "end":
116
- return _context.stop();
117
- }
118
- }
119
- }, _callee);
120
- }));
121
-
122
- return function refreshToken(_x, _x2) {
123
- return _ref.apply(this, arguments);
124
- };
125
- }();
126
-
127
- var handleError = function handleError(quizLogMessage) {
128
- if (shouldAlertUser()) {
129
- alertTheUser(alertMessage());
130
- }
131
-
132
- if (shouldsetEventToQuizLog()) {
133
- setEventToQuizLog(quizLogMessage);
134
- }
135
- };
136
-
137
- var alertTheUser = function alertTheUser(message) {
138
- _reduxStore.default.dispatch((0, _alerts.addError)(message));
139
- };
140
-
141
- var setEventToQuizLog = function setEventToQuizLog(message) {
142
- props.setEventToQuizLog(message);
143
- };
144
-
145
- var alertMessage = function alertMessage() {
146
- return (0, _windowChecks.isQuizTaking)() ? (0, _formatMessage.default)('The Rich Content Editor has encountered an issue. ' + 'It has been logged for your instructor to review. Please refresh and try again.') : (0, _formatMessage.default)('The Rich Content Editor has encountered an issue. Please refresh and try again.');
147
- };
148
-
149
- var shouldAlertUser = function shouldAlertUser() {
150
- return (0, _windowChecks.isQuizTaking)() || (0, _windowChecks.isQuizBuilding)();
151
- };
152
-
153
- var shouldsetEventToQuizLog = function shouldsetEventToQuizLog() {
154
- return (0, _windowChecks.isQuizTaking)();
155
- };
156
-
157
- var getConfig = function getConfig() {
158
- var _featureFlags, _ref2;
159
-
160
- return {
161
- featureFlags: (_featureFlags = {}, (0, _defineProperty2.default)(_featureFlags, _quizCommon.RceConfigKeys.isNewRCEEnabled, props.isNewRCEEnabled), (0, _defineProperty2.default)(_featureFlags, _quizCommon.RceConfigKeys.isNewRCERendererEnabled, props.isNewRCERendererEnabled), (0, _defineProperty2.default)(_featureFlags, _quizCommon.RceConfigKeys.isNewRCEAppsEnabled, props.isNewRCEAppsEnabled), _featureFlags),
162
- rcs: hasAllPropsForRcs() && canvasConfig ? (_ref2 = {}, (0, _defineProperty2.default)(_ref2, _quizCommon.RceConfigKeys.canvasUserId, props.canvasUserId), (0, _defineProperty2.default)(_ref2, _quizCommon.RceConfigKeys.contextId, props.contextId), (0, _defineProperty2.default)(_ref2, _quizCommon.RceConfigKeys.contextType, props.contextType), (0, _defineProperty2.default)(_ref2, _quizCommon.RceConfigKeys.rcsHost, props.rcsHost), (0, _defineProperty2.default)(_ref2, _quizCommon.RceConfigKeys.rcsJwt, jwt), (0, _defineProperty2.default)(_ref2, _quizCommon.RceConfigKeys.rcsJwtRefreshFn, refreshToken), (0, _defineProperty2.default)(_ref2, _quizCommon.RceConfigKeys.canvasConfig, canvasConfig), _ref2) : null,
163
- rendererEnhancement: (0, _defineProperty2.default)({}, _quizCommon.RceConfigKeys.canvasOrigin, props.canvasOrigin)
164
- };
165
- };
166
-
167
- (0, _react.useEffect)(function () {
168
- (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
169
- var host, base, url, response, json;
170
- return _regenerator.default.wrap(function _callee2$(_context2) {
171
- while (1) {
172
- switch (_context2.prev = _context2.next) {
173
- case 0:
174
- if (!isRce5Disabled()) {
175
- _context2.next = 2;
176
- break;
177
- }
178
-
179
- return _context2.abrupt("return");
180
-
181
- case 2:
182
- _context2.prev = 2;
183
-
184
- if (hasAllPropsForRcs()) {
185
- _context2.next = 6;
186
- break;
187
- }
188
-
189
- handleError((0, _formatMessage.default)('Error: Full functionality of the Rich Content Editor may not have been available to the user.'));
190
- return _context2.abrupt("return");
191
-
192
- case 6:
193
- host = props.rcsHost;
194
- base = host.match(/^https?:\/\//) ? host : "".concat(window.location.protocol, "//").concat(host);
195
- url = new URL('/api/rceConfig', base);
196
- url.searchParams.append('contextType', props.contextType);
197
- url.searchParams.append('contextId', props.contextId);
198
- _context2.next = 13;
199
- return fetch(url.href, {
200
- headers: {
201
- 'Authorization': "Bearer ".concat(props.rcsJwt)
202
- }
203
- });
204
-
205
- case 13:
206
- response = _context2.sent;
207
- _context2.next = 16;
208
- return response.json();
209
-
210
- case 16:
211
- json = _context2.sent;
212
- setCanvasConfig(json);
213
- setEventToQuizLog(null);
214
- _context2.next = 25;
215
- break;
216
-
217
- case 21:
218
- _context2.prev = 21;
219
- _context2.t0 = _context2["catch"](2);
220
- setCanvasConfig(null);
221
- handleError((0, _formatMessage.default)('Error: Full functionality of the Rich Content Editor including accessibility features may not have been available to the user.'));
222
-
223
- case 25:
224
- _context2.prev = 25;
225
- setCanvasConfigLoading(false);
226
- return _context2.finish(25);
227
-
228
- case 28:
229
- case "end":
230
- return _context2.stop();
231
- }
232
- }
233
- }, _callee2, null, [[2, 21, 25, 28]]);
234
- }))();
235
- }, [props.isNewRCEEnabled, props.isNewRCERendererEnabled]);
236
-
237
- if (isRce5Disabled()) {
238
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.children);
239
- }
240
-
241
- if (!canvasConfigLoading) {
242
- return /*#__PURE__*/_react.default.createElement(_quizCommon.RceConfigContext.Provider, {
243
- value: getConfig()
244
- }, props.children);
245
- } else {
246
- return _ref4;
247
- }
248
- };
249
-
250
- exports.RceConfigProviderComponent = RceConfigProviderComponent;
251
- RceConfigProviderComponent.propTypes = {
252
- children: _propTypes.default.node.isRequired,
253
- isNewRCEEnabled: _propTypes.default.bool.isRequired,
254
- isNewRCERendererEnabled: _propTypes.default.bool.isRequired,
255
- isNewRCEAppsEnabled: _propTypes.default.bool,
256
- setEventToQuizLog: _propTypes.default.func.isRequired,
257
- contextId: _propTypes.default.string,
258
- contextType: _propTypes.default.string,
259
- canvasUserId: _propTypes.default.string,
260
- rcsHost: _propTypes.default.string,
261
- rcsJwt: _propTypes.default.string,
262
- rcsJwtRefreshFn: _propTypes.default.func,
263
- canvasOrigin: _propTypes.default.string
264
- };
265
- RceConfigProviderComponent.defaultProps = {
266
- contextId: null,
267
- contextType: null,
268
- canvasUserId: null,
269
- rcsHost: null,
270
- rcsJwt: null,
271
- rcsJwtRefreshFn: null,
272
- canvasOrigin: null,
273
- isNewRCEEnabled: false,
274
- isNewRCERendererEnabled: false,
275
- isNewRCEAppsEnabled: false
276
- };
277
-
278
- var mapStateToProps = function mapStateToProps() {
279
- return {
280
- isNewRCEEnabled: (0, _rceChecker.isNewRCEEnabled)(),
281
- isNewRCERendererEnabled: (0, _rceChecker.isNewRCERendererEnabled)(),
282
- isNewRCEAppsEnabled: (0, _rceChecker.isNewRCEAppsEnabled)()
283
- };
284
- };
285
-
286
- var mapDispatchToProps = {
287
- setEventToQuizLog: _rce.setRCEError
288
- };
289
- var RceConfigProvider = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(RceConfigProviderComponent);
290
- exports.RceConfigProvider = RceConfigProvider;