@instructure/quiz-core 18.1.2-rc.4 → 18.1.2-rc.5

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,9 +1,15 @@
1
- import { RCE_EVENT, SET_RCE_ERROR } from '@instructure/quiz-common';
1
+ import { RCE_EVENT, SET_RCE_ERROR, SET_RCE_CONFIG } from '@instructure/quiz-common';
2
2
  export var setRCEError = function setRCEError(rceError) {
3
3
  return {
4
4
  type: SET_RCE_ERROR,
5
5
  payload: rceError
6
6
  };
7
+ };
8
+ export var setStoredRCEConfig = function setStoredRCEConfig(rceConfig) {
9
+ return {
10
+ type: SET_RCE_CONFIG,
11
+ payload: rceConfig
12
+ };
7
13
  }; // This is not consumed by its reducer
8
14
  // Instead it is processed by the eventLoggerMiddleware
9
15
 
@@ -1,14 +1,20 @@
1
1
  import { isNewRCEEnabled, isNewRCEAppsEnabled, isNewRCERendererEnabled } from "../../util/rceChecker.js";
2
2
  import { connect } from "../../react-redux.js";
3
3
  import RceConfigProviderComponent from "./presenter.js";
4
+ import { getRCEConfig } from "../../selectors/rce.js";
5
+ import { setStoredRCEConfig } from "../../actions/rce.js";
4
6
 
5
- var mapStateToProps = function mapStateToProps() {
7
+ var mapStateToProps = function mapStateToProps(state, ownProps) {
6
8
  return {
7
9
  isNewRCEEnabled: isNewRCEEnabled(),
8
10
  isNewRCERendererEnabled: isNewRCERendererEnabled(),
9
- isNewRCEAppsEnabled: isNewRCEAppsEnabled()
11
+ isNewRCEAppsEnabled: isNewRCEAppsEnabled(),
12
+ storedRCEConfig: getRCEConfig(state)
10
13
  };
11
14
  };
12
15
 
13
- var RceConfigProvider = connect(mapStateToProps)(RceConfigProviderComponent);
16
+ var mapDispatchToProps = {
17
+ setStoredRCEConfig: setStoredRCEConfig
18
+ };
19
+ var RceConfigProvider = connect(mapStateToProps, mapDispatchToProps)(RceConfigProviderComponent);
14
20
  export default RceConfigProvider;
@@ -72,19 +72,23 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(_ref2) {
72
72
  rcsHost = _ref2.rcsHost,
73
73
  rcsJwt = _ref2.rcsJwt,
74
74
  rcsJwtRefreshFn = _ref2.rcsJwtRefreshFn,
75
- canvasOrigin = _ref2.canvasOrigin;
75
+ canvasOrigin = _ref2.canvasOrigin,
76
+ storedRCEConfig = _ref2.storedRCEConfig,
77
+ setStoredRCEConfig = _ref2.setStoredRCEConfig;
76
78
 
77
79
  var _useState = useState(rcsJwt),
78
80
  _useState2 = _slicedToArray(_useState, 2),
79
81
  jwt = _useState2[0],
80
82
  setJwt = _useState2[1];
81
83
 
82
- var _useState3 = useState(null),
84
+ var _useState3 = useState(storedRCEConfig),
83
85
  _useState4 = _slicedToArray(_useState3, 2),
84
86
  canvasConfig = _useState4[0],
85
87
  setCanvasConfig = _useState4[1];
86
88
 
87
- var _useState5 = useState(true),
89
+ var rceConfigAvailable = storedRCEConfig ? false : true;
90
+
91
+ var _useState5 = useState(rceConfigAvailable),
88
92
  _useState6 = _slicedToArray(_useState5, 2),
89
93
  canvasConfigLoading = _useState6[0],
90
94
  setCanvasConfigLoading = _useState6[1];
@@ -135,35 +139,48 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(_ref2) {
135
139
  return _context2.abrupt("return");
136
140
 
137
141
  case 6:
138
- _context2.next = 8;
142
+ if (!storedRCEConfig) {
143
+ _context2.next = 10;
144
+ break;
145
+ }
146
+
147
+ setCanvasConfig(storedRCEConfig);
148
+ _context2.next = 16;
149
+ break;
150
+
151
+ case 10:
152
+ _context2.next = 12;
139
153
  return fetchRceConfig(rcsHost, contextType, contextId, jwt);
140
154
 
141
- case 8:
155
+ case 12:
142
156
  json = _context2.sent;
157
+ setStoredRCEConfig(json);
143
158
  setCanvasConfig(json);
144
159
  setEventToQuizLog(null);
145
- _context2.next = 17;
160
+
161
+ case 16:
162
+ _context2.next = 22;
146
163
  break;
147
164
 
148
- case 13:
149
- _context2.prev = 13;
165
+ case 18:
166
+ _context2.prev = 18;
150
167
  _context2.t0 = _context2["catch"](2);
151
168
  setCanvasConfig(null);
152
169
  handleError(quizLogMsgFailedConfigFetch());
153
170
 
154
- case 17:
155
- _context2.prev = 17;
171
+ case 22:
172
+ _context2.prev = 22;
156
173
  setCanvasConfigLoading(false);
157
- return _context2.finish(17);
174
+ return _context2.finish(22);
158
175
 
159
- case 20:
176
+ case 25:
160
177
  case "end":
161
178
  return _context2.stop();
162
179
  }
163
180
  }
164
- }, _callee2, null, [[2, 13, 17, 20]]);
181
+ }, _callee2, null, [[2, 18, 22, 25]]);
165
182
  }))();
166
- }, [isNewRCEEnabled, isNewRCERendererEnabled]);
183
+ }, [isNewRCEEnabled, isNewRCERendererEnabled, storedRCEConfig]);
167
184
  useEffect(function () {
168
185
  if (isRce5Disabled(flags)) {
169
186
  return;
@@ -201,7 +218,18 @@ RceConfigProviderComponent.propTypes = {
201
218
  rcsHost: PropTypes.string,
202
219
  rcsJwt: PropTypes.string,
203
220
  rcsJwtRefreshFn: PropTypes.func,
204
- canvasOrigin: PropTypes.string
221
+ canvasOrigin: PropTypes.string,
222
+ storedRCEConfig: PropTypes.shape({
223
+ contextId: PropTypes.string,
224
+ contextType: PropTypes.string,
225
+ canvasOrigin: PropTypes.string,
226
+ canvasUserId: PropTypes.string,
227
+ canvasToolId: PropTypes.string,
228
+ rcsHost: PropTypes.string,
229
+ rcsJwt: PropTypes.string,
230
+ rcsJwtRefreshFn: PropTypes.func
231
+ }),
232
+ setStoredRCEConfig: PropTypes.func.isRequired
205
233
  };
206
234
  RceConfigProviderComponent.defaultProps = {
207
235
  contextId: null,
@@ -214,6 +242,8 @@ RceConfigProviderComponent.defaultProps = {
214
242
  canvasOrigin: null,
215
243
  isNewRCEEnabled: false,
216
244
  isNewRCERendererEnabled: false,
217
- isNewRCEAppsEnabled: false
245
+ isNewRCEAppsEnabled: false,
246
+ storedRCEConfig: null,
247
+ setStoredRCEConfig: null
218
248
  };
219
249
  export default RceConfigProviderComponent;
@@ -1,10 +1,14 @@
1
1
  import { Map } from 'immutable';
2
- import { SET_RCE_ERROR } from '@instructure/quiz-common';
2
+ import { SET_RCE_ERROR, SET_RCE_CONFIG } from '@instructure/quiz-common';
3
3
 
4
4
  var setRceError = function setRceError(state, payload) {
5
5
  return state.set('rceError', payload);
6
6
  };
7
7
 
8
+ var setStoredRCEConfig = function setStoredRCEConfig(state, payload) {
9
+ return state.set('rceConfig', payload);
10
+ };
11
+
8
12
  export default (function () {
9
13
  var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Map();
10
14
  var action = arguments.length > 1 ? arguments[1] : void 0;
@@ -13,6 +17,9 @@ export default (function () {
13
17
  case SET_RCE_ERROR:
14
18
  return setRceError(state, action.payload);
15
19
 
20
+ case SET_RCE_CONFIG:
21
+ return setStoredRCEConfig(state, action.payload);
22
+
16
23
  default:
17
24
  return state;
18
25
  }
@@ -1,3 +1,6 @@
1
1
  export var getRCEError = function getRCEError(state) {
2
2
  return state.getIn(['rce', 'rceError'], null);
3
+ };
4
+ export var getRCEConfig = function getRCEConfig(state) {
5
+ return state.getIn(['rce', 'rceConfig'], null);
3
6
  };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.reportRCEEvent = exports.setRCEError = void 0;
6
+ exports.reportRCEEvent = exports.setStoredRCEConfig = exports.setRCEError = void 0;
7
7
 
8
8
  var _quizCommon = require("@instructure/quiz-common");
9
9
 
@@ -12,11 +12,20 @@ var setRCEError = function setRCEError(rceError) {
12
12
  type: _quizCommon.SET_RCE_ERROR,
13
13
  payload: rceError
14
14
  };
15
+ };
16
+
17
+ exports.setRCEError = setRCEError;
18
+
19
+ var setStoredRCEConfig = function setStoredRCEConfig(rceConfig) {
20
+ return {
21
+ type: _quizCommon.SET_RCE_CONFIG,
22
+ payload: rceConfig
23
+ };
15
24
  }; // This is not consumed by its reducer
16
25
  // Instead it is processed by the eventLoggerMiddleware
17
26
 
18
27
 
19
- exports.setRCEError = setRCEError;
28
+ exports.setStoredRCEConfig = setStoredRCEConfig;
20
29
 
21
30
  var reportRCEEvent = function reportRCEEvent(eventMessage) {
22
31
  return {
@@ -13,14 +13,22 @@ var _reactRedux = require("../../react-redux.js");
13
13
 
14
14
  var _presenter = _interopRequireDefault(require("./presenter.js"));
15
15
 
16
- var mapStateToProps = function mapStateToProps() {
16
+ var _rce = require("../../selectors/rce.js");
17
+
18
+ var _rce2 = require("../../actions/rce.js");
19
+
20
+ var mapStateToProps = function mapStateToProps(state, ownProps) {
17
21
  return {
18
22
  isNewRCEEnabled: (0, _rceChecker.isNewRCEEnabled)(),
19
23
  isNewRCERendererEnabled: (0, _rceChecker.isNewRCERendererEnabled)(),
20
- isNewRCEAppsEnabled: (0, _rceChecker.isNewRCEAppsEnabled)()
24
+ isNewRCEAppsEnabled: (0, _rceChecker.isNewRCEAppsEnabled)(),
25
+ storedRCEConfig: (0, _rce.getRCEConfig)(state)
21
26
  };
22
27
  };
23
28
 
24
- var RceConfigProvider = (0, _reactRedux.connect)(mapStateToProps)(_presenter.default);
29
+ var mapDispatchToProps = {
30
+ setStoredRCEConfig: _rce2.setStoredRCEConfig
31
+ };
32
+ var RceConfigProvider = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_presenter.default);
25
33
  var _default = RceConfigProvider;
26
34
  exports.default = _default;
@@ -96,19 +96,23 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(_ref2) {
96
96
  rcsHost = _ref2.rcsHost,
97
97
  rcsJwt = _ref2.rcsJwt,
98
98
  rcsJwtRefreshFn = _ref2.rcsJwtRefreshFn,
99
- canvasOrigin = _ref2.canvasOrigin;
99
+ canvasOrigin = _ref2.canvasOrigin,
100
+ storedRCEConfig = _ref2.storedRCEConfig,
101
+ setStoredRCEConfig = _ref2.setStoredRCEConfig;
100
102
 
101
103
  var _useState = (0, _react.useState)(rcsJwt),
102
104
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
103
105
  jwt = _useState2[0],
104
106
  setJwt = _useState2[1];
105
107
 
106
- var _useState3 = (0, _react.useState)(null),
108
+ var _useState3 = (0, _react.useState)(storedRCEConfig),
107
109
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
108
110
  canvasConfig = _useState4[0],
109
111
  setCanvasConfig = _useState4[1];
110
112
 
111
- var _useState5 = (0, _react.useState)(true),
113
+ var rceConfigAvailable = storedRCEConfig ? false : true;
114
+
115
+ var _useState5 = (0, _react.useState)(rceConfigAvailable),
112
116
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
113
117
  canvasConfigLoading = _useState6[0],
114
118
  setCanvasConfigLoading = _useState6[1];
@@ -159,35 +163,48 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(_ref2) {
159
163
  return _context2.abrupt("return");
160
164
 
161
165
  case 6:
162
- _context2.next = 8;
166
+ if (!storedRCEConfig) {
167
+ _context2.next = 10;
168
+ break;
169
+ }
170
+
171
+ setCanvasConfig(storedRCEConfig);
172
+ _context2.next = 16;
173
+ break;
174
+
175
+ case 10:
176
+ _context2.next = 12;
163
177
  return (0, _rceConfigFetcher.fetchRceConfig)(rcsHost, contextType, contextId, jwt);
164
178
 
165
- case 8:
179
+ case 12:
166
180
  json = _context2.sent;
181
+ setStoredRCEConfig(json);
167
182
  setCanvasConfig(json);
168
183
  (0, _rceConfigErrorHandler.setEventToQuizLog)(null);
169
- _context2.next = 17;
184
+
185
+ case 16:
186
+ _context2.next = 22;
170
187
  break;
171
188
 
172
- case 13:
173
- _context2.prev = 13;
189
+ case 18:
190
+ _context2.prev = 18;
174
191
  _context2.t0 = _context2["catch"](2);
175
192
  setCanvasConfig(null);
176
193
  (0, _rceConfigErrorHandler.handleError)((0, _rceConfigErrorMessages.quizLogMsgFailedConfigFetch)());
177
194
 
178
- case 17:
179
- _context2.prev = 17;
195
+ case 22:
196
+ _context2.prev = 22;
180
197
  setCanvasConfigLoading(false);
181
- return _context2.finish(17);
198
+ return _context2.finish(22);
182
199
 
183
- case 20:
200
+ case 25:
184
201
  case "end":
185
202
  return _context2.stop();
186
203
  }
187
204
  }
188
- }, _callee2, null, [[2, 13, 17, 20]]);
205
+ }, _callee2, null, [[2, 18, 22, 25]]);
189
206
  }))();
190
- }, [isNewRCEEnabled, isNewRCERendererEnabled]);
207
+ }, [isNewRCEEnabled, isNewRCERendererEnabled, storedRCEConfig]);
191
208
  (0, _react.useEffect)(function () {
192
209
  if ((0, _rceConfigUtils.isRce5Disabled)(flags)) {
193
210
  return;
@@ -225,7 +242,18 @@ RceConfigProviderComponent.propTypes = {
225
242
  rcsHost: _propTypes.default.string,
226
243
  rcsJwt: _propTypes.default.string,
227
244
  rcsJwtRefreshFn: _propTypes.default.func,
228
- canvasOrigin: _propTypes.default.string
245
+ canvasOrigin: _propTypes.default.string,
246
+ storedRCEConfig: _propTypes.default.shape({
247
+ contextId: _propTypes.default.string,
248
+ contextType: _propTypes.default.string,
249
+ canvasOrigin: _propTypes.default.string,
250
+ canvasUserId: _propTypes.default.string,
251
+ canvasToolId: _propTypes.default.string,
252
+ rcsHost: _propTypes.default.string,
253
+ rcsJwt: _propTypes.default.string,
254
+ rcsJwtRefreshFn: _propTypes.default.func
255
+ }),
256
+ setStoredRCEConfig: _propTypes.default.func.isRequired
229
257
  };
230
258
  RceConfigProviderComponent.defaultProps = {
231
259
  contextId: null,
@@ -238,7 +266,9 @@ RceConfigProviderComponent.defaultProps = {
238
266
  canvasOrigin: null,
239
267
  isNewRCEEnabled: false,
240
268
  isNewRCERendererEnabled: false,
241
- isNewRCEAppsEnabled: false
269
+ isNewRCEAppsEnabled: false,
270
+ storedRCEConfig: null,
271
+ setStoredRCEConfig: null
242
272
  };
243
273
  var _default = RceConfigProviderComponent;
244
274
  exports.default = _default;
@@ -13,6 +13,10 @@ var setRceError = function setRceError(state, payload) {
13
13
  return state.set('rceError', payload);
14
14
  };
15
15
 
16
+ var setStoredRCEConfig = function setStoredRCEConfig(state, payload) {
17
+ return state.set('rceConfig', payload);
18
+ };
19
+
16
20
  var _default = function _default() {
17
21
  var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : (0, _immutable.Map)();
18
22
  var action = arguments.length > 1 ? arguments[1] : void 0;
@@ -21,6 +25,9 @@ var _default = function _default() {
21
25
  case _quizCommon.SET_RCE_ERROR:
22
26
  return setRceError(state, action.payload);
23
27
 
28
+ case _quizCommon.SET_RCE_CONFIG:
29
+ return setStoredRCEConfig(state, action.payload);
30
+
24
31
  default:
25
32
  return state;
26
33
  }
@@ -3,10 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getRCEError = void 0;
6
+ exports.getRCEConfig = exports.getRCEError = void 0;
7
7
 
8
8
  var getRCEError = function getRCEError(state) {
9
9
  return state.getIn(['rce', 'rceError'], null);
10
10
  };
11
11
 
12
- exports.getRCEError = getRCEError;
12
+ exports.getRCEError = getRCEError;
13
+
14
+ var getRCEConfig = function getRCEConfig(state) {
15
+ return state.getIn(['rce', 'rceConfig'], null);
16
+ };
17
+
18
+ exports.getRCEConfig = getRCEConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/quiz-core",
3
- "version": "18.1.2-rc.4+638d1525f",
3
+ "version": "18.1.2-rc.5+c2d444eff",
4
4
  "license": "MIT",
5
5
  "description": "The Quiz React SDK by Instructure Inc.",
6
6
  "author": "Instructure, Inc. Engineering and Product Design",
@@ -42,11 +42,11 @@
42
42
  "dependencies": {
43
43
  "@instructure/grading-utils": "^1.0.0",
44
44
  "@instructure/outcomes-ui": "^2.1.9",
45
- "@instructure/quiz-common": "18.1.2-rc.4+638d1525f",
46
- "@instructure/quiz-i18n": "18.1.2-rc.4+638d1525f",
47
- "@instructure/quiz-interactions": "18.1.2-rc.4+638d1525f",
48
- "@instructure/quiz-number-input": "18.1.2-rc.4+638d1525f",
49
- "@instructure/quiz-rce": "18.1.2-rc.4+638d1525f",
45
+ "@instructure/quiz-common": "18.1.2-rc.5+c2d444eff",
46
+ "@instructure/quiz-i18n": "18.1.2-rc.5+c2d444eff",
47
+ "@instructure/quiz-interactions": "18.1.2-rc.5+c2d444eff",
48
+ "@instructure/quiz-number-input": "18.1.2-rc.5+c2d444eff",
49
+ "@instructure/quiz-rce": "18.1.2-rc.5+c2d444eff",
50
50
  "@instructure/ui-a11y-content": "^7.20.0",
51
51
  "@instructure/ui-alerts": "^7.20.0",
52
52
  "@instructure/ui-avatar": "^7.20.0",
@@ -107,7 +107,7 @@
107
107
  "eventemitter3": "^3.1.0",
108
108
  "humps": "^2.0.0",
109
109
  "immutable": "^3.8.1",
110
- "instructure-validations": "18.1.2-rc.4+638d1525f",
110
+ "instructure-validations": "18.1.2-rc.5+c2d444eff",
111
111
  "ipaddr.js": "^1.5.4",
112
112
  "isomorphic-fetch": "^2.2.0",
113
113
  "isuuid": "^0.1.0",
@@ -158,7 +158,7 @@
158
158
  "intl": "^1.2.4",
159
159
  "jquery": "^2.2.3",
160
160
  "most-subject": "^5.3.0",
161
- "quiz-presets": "18.1.2-rc.4+638d1525f",
161
+ "quiz-presets": "18.1.2-rc.5+c2d444eff",
162
162
  "react": "^16.8.6",
163
163
  "react-addons-test-utils": "^15.6.2",
164
164
  "react-dom": "^16.8.6",
@@ -174,5 +174,5 @@
174
174
  "publishConfig": {
175
175
  "access": "public"
176
176
  },
177
- "gitHead": "638d1525f2ad2da245bc7a34992273ee8851779d"
177
+ "gitHead": "c2d444effa119968b746267dafd99495edf9cbca"
178
178
  }