@instructure/quiz-core 17.47.0 → 17.47.1-rc.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/es/common/components/ApiFeatureFlagInitializer/index.js +36 -0
- package/es/common/{util → components/RceConfigProvider}/RceConfigProvider.js +32 -31
- package/es/common/components/SDKApp/index.js +4 -5
- package/es/common/util/rceChecker.js +3 -3
- package/lib/common/components/ApiFeatureFlagInitializer/index.js +53 -0
- package/lib/common/{util → components/RceConfigProvider}/RceConfigProvider.js +32 -31
- package/lib/common/components/SDKApp/index.js +8 -9
- package/lib/common/util/rceChecker.js +4 -4
- package/package.json +10 -10
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import { connect } from "../../react-redux.js";
|
|
3
|
+
import { bool, node, func } from 'prop-types';
|
|
4
|
+
import { getFeatures } from "../../api/features.js";
|
|
5
|
+
import { QuizzesSpinner as Spinner } from "../shared/spinner/Spinner.js";
|
|
6
|
+
import { Card } from "../shared/Card/index.js";
|
|
7
|
+
|
|
8
|
+
var _ref = /*#__PURE__*/React.createElement(Card, {
|
|
9
|
+
wrapped: true
|
|
10
|
+
}, /*#__PURE__*/React.createElement(Spinner, null));
|
|
11
|
+
|
|
12
|
+
export var ApiFeatureFlagInitializerComponent = function ApiFeatureFlagInitializerComponent(props) {
|
|
13
|
+
useEffect(function () {
|
|
14
|
+
!props.loadedApiFeatures && props.getFeatures();
|
|
15
|
+
}, []);
|
|
16
|
+
return props.loadedApiFeatures ? props.children : _ref;
|
|
17
|
+
};
|
|
18
|
+
ApiFeatureFlagInitializerComponent.propTypes = {
|
|
19
|
+
children: node.isRequired,
|
|
20
|
+
getFeatures: func.isRequired,
|
|
21
|
+
loadedApiFeatures: bool
|
|
22
|
+
};
|
|
23
|
+
ApiFeatureFlagInitializerComponent.defaultProps = {
|
|
24
|
+
loadedApiFeatures: false
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
var mapStateToProps = function mapStateToProps(state, ownProps) {
|
|
28
|
+
return {
|
|
29
|
+
loadedApiFeatures: state.getIn(['ui', 'loadedApiFeatures']) || ownProps.loadedApiFeatures
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
var mapDispatchToProps = {
|
|
34
|
+
getFeatures: getFeatures
|
|
35
|
+
};
|
|
36
|
+
export var ApiFeatureFlagInitializer = connect(mapStateToProps, mapDispatchToProps)(ApiFeatureFlagInitializerComponent);
|
|
@@ -4,17 +4,17 @@ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
|
4
4
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
5
5
|
import React, { useEffect, useState } from 'react';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
|
-
import { connect } from "../../
|
|
8
|
-
import store from "
|
|
9
|
-
import { setRCEError } from "
|
|
10
|
-
import { isNewRCEEnabled, isNewRCEAppsEnabled,
|
|
11
|
-
import { QuizzesSpinner as Spinner } from "../
|
|
12
|
-
import { Card } from "../
|
|
7
|
+
import { connect } from "../../react-redux.js";
|
|
8
|
+
import store from "../../../reduxStore.js";
|
|
9
|
+
import { setRCEError } from "../../actions/rce.js";
|
|
10
|
+
import { isNewRCEEnabled, isNewRCEAppsEnabled, isNewRCERendererEnabled } from "../../util/rceChecker.js";
|
|
11
|
+
import { QuizzesSpinner as Spinner } from "../shared/spinner/Spinner.js";
|
|
12
|
+
import { Card } from "../shared/Card/index.js";
|
|
13
13
|
import { RceConfigContext, RceConfigKeys } from '@instructure/quiz-common';
|
|
14
|
-
import { addError } from "
|
|
14
|
+
import { addError } from "../../actions/alerts.js";
|
|
15
15
|
import t from '@instructure/quiz-i18n/es/format-message';
|
|
16
16
|
import { extractTextFromHtml } from '@instructure/quiz-interactions';
|
|
17
|
-
import { isQuizTaking, isQuizBuilding } from "
|
|
17
|
+
import { isQuizTaking, isQuizBuilding } from "../../util/windowChecks.js";
|
|
18
18
|
|
|
19
19
|
var _ref4 = /*#__PURE__*/React.createElement(Card, {
|
|
20
20
|
wrapped: true
|
|
@@ -40,6 +40,10 @@ export var RceConfigProviderComponent = function RceConfigProviderComponent(prop
|
|
|
40
40
|
return !!(props.contextId && props.contextType && props.canvasUserId && props.rcsHost && props.rcsJwtRefreshFn && props.rcsJwt);
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
+
var isRce5Disabled = function isRce5Disabled() {
|
|
44
|
+
return !props.isNewRCEEnabled && !props.isNewRCERendererEnabled;
|
|
45
|
+
};
|
|
46
|
+
|
|
43
47
|
var refreshToken = /*#__PURE__*/function () {
|
|
44
48
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(setTokenFn, questionStem) {
|
|
45
49
|
var _response$json;
|
|
@@ -127,7 +131,7 @@ export var RceConfigProviderComponent = function RceConfigProviderComponent(prop
|
|
|
127
131
|
var _featureFlags, _ref2;
|
|
128
132
|
|
|
129
133
|
return {
|
|
130
|
-
featureFlags: (_featureFlags = {}, _defineProperty(_featureFlags, RceConfigKeys.isNewRCEEnabled, props.isNewRCEEnabled), _defineProperty(_featureFlags, RceConfigKeys.
|
|
134
|
+
featureFlags: (_featureFlags = {}, _defineProperty(_featureFlags, RceConfigKeys.isNewRCEEnabled, props.isNewRCEEnabled), _defineProperty(_featureFlags, RceConfigKeys.isNewRCERendererEnabled, props.isNewRCERendererEnabled), _defineProperty(_featureFlags, RceConfigKeys.isNewRCEAppsEnabled, props.isNewRCEAppsEnabled), _featureFlags),
|
|
131
135
|
rcs: hasAllPropsForRcs() && canvasConfig ? (_ref2 = {}, _defineProperty(_ref2, RceConfigKeys.canvasUserId, props.canvasUserId), _defineProperty(_ref2, RceConfigKeys.contextId, props.contextId), _defineProperty(_ref2, RceConfigKeys.contextType, props.contextType), _defineProperty(_ref2, RceConfigKeys.rcsHost, props.rcsHost), _defineProperty(_ref2, RceConfigKeys.rcsJwt, jwt), _defineProperty(_ref2, RceConfigKeys.rcsJwtRefreshFn, refreshToken), _defineProperty(_ref2, RceConfigKeys.canvasConfig, canvasConfig), _ref2) : null,
|
|
132
136
|
rendererEnhancement: _defineProperty({}, RceConfigKeys.canvasOrigin, props.canvasOrigin)
|
|
133
137
|
};
|
|
@@ -140,7 +144,7 @@ export var RceConfigProviderComponent = function RceConfigProviderComponent(prop
|
|
|
140
144
|
while (1) {
|
|
141
145
|
switch (_context2.prev = _context2.next) {
|
|
142
146
|
case 0:
|
|
143
|
-
if (!(
|
|
147
|
+
if (!isRce5Disabled()) {
|
|
144
148
|
_context2.next = 2;
|
|
145
149
|
break;
|
|
146
150
|
}
|
|
@@ -201,26 +205,24 @@ export var RceConfigProviderComponent = function RceConfigProviderComponent(prop
|
|
|
201
205
|
}
|
|
202
206
|
}, _callee2, null, [[2, 21, 25, 28]]);
|
|
203
207
|
}))();
|
|
204
|
-
}, [props.isNewRCEEnabled, props.
|
|
205
|
-
|
|
206
|
-
if (
|
|
207
|
-
|
|
208
|
-
if (!canvasConfigLoading) {
|
|
209
|
-
return /*#__PURE__*/React.createElement(RceConfigContext.Provider, {
|
|
210
|
-
value: getConfig()
|
|
211
|
-
}, props.children);
|
|
212
|
-
}
|
|
213
|
-
} else {
|
|
214
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, props.children);
|
|
215
|
-
}
|
|
208
|
+
}, [props.isNewRCEEnabled, props.isNewRCERendererEnabled]);
|
|
209
|
+
|
|
210
|
+
if (isRce5Disabled()) {
|
|
211
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, props.children);
|
|
216
212
|
}
|
|
217
213
|
|
|
218
|
-
|
|
214
|
+
if (!canvasConfigLoading) {
|
|
215
|
+
return /*#__PURE__*/React.createElement(RceConfigContext.Provider, {
|
|
216
|
+
value: getConfig()
|
|
217
|
+
}, props.children);
|
|
218
|
+
} else {
|
|
219
|
+
return _ref4;
|
|
220
|
+
}
|
|
219
221
|
};
|
|
220
222
|
RceConfigProviderComponent.propTypes = {
|
|
221
223
|
children: PropTypes.node.isRequired,
|
|
222
224
|
isNewRCEEnabled: PropTypes.bool.isRequired,
|
|
223
|
-
|
|
225
|
+
isNewRCERendererEnabled: PropTypes.bool.isRequired,
|
|
224
226
|
isNewRCEAppsEnabled: PropTypes.bool,
|
|
225
227
|
setEventToQuizLog: PropTypes.func.isRequired,
|
|
226
228
|
contextId: PropTypes.string,
|
|
@@ -229,8 +231,7 @@ RceConfigProviderComponent.propTypes = {
|
|
|
229
231
|
rcsHost: PropTypes.string,
|
|
230
232
|
rcsJwt: PropTypes.string,
|
|
231
233
|
rcsJwtRefreshFn: PropTypes.func,
|
|
232
|
-
canvasOrigin: PropTypes.string
|
|
233
|
-
loadedApiFeatures: PropTypes.bool
|
|
234
|
+
canvasOrigin: PropTypes.string
|
|
234
235
|
};
|
|
235
236
|
RceConfigProviderComponent.defaultProps = {
|
|
236
237
|
contextId: null,
|
|
@@ -240,16 +241,16 @@ RceConfigProviderComponent.defaultProps = {
|
|
|
240
241
|
rcsJwt: null,
|
|
241
242
|
rcsJwtRefreshFn: null,
|
|
242
243
|
canvasOrigin: null,
|
|
243
|
-
|
|
244
|
+
isNewRCEEnabled: false,
|
|
245
|
+
isNewRCERendererEnabled: false,
|
|
244
246
|
isNewRCEAppsEnabled: false
|
|
245
247
|
};
|
|
246
248
|
|
|
247
|
-
var mapStateToProps = function mapStateToProps(
|
|
249
|
+
var mapStateToProps = function mapStateToProps() {
|
|
248
250
|
return {
|
|
249
251
|
isNewRCEEnabled: isNewRCEEnabled(),
|
|
250
|
-
|
|
251
|
-
isNewRCEAppsEnabled: isNewRCEAppsEnabled()
|
|
252
|
-
loadedApiFeatures: state.getIn(['ui', 'loadedApiFeatures']) || ownProps.loadedApiFeatures
|
|
252
|
+
isNewRCERendererEnabled: isNewRCERendererEnabled(),
|
|
253
|
+
isNewRCEAppsEnabled: isNewRCEAppsEnabled()
|
|
253
254
|
};
|
|
254
255
|
};
|
|
255
256
|
|
|
@@ -17,7 +17,6 @@ import { ApplyLocale } from '@instructure/ui-i18n';
|
|
|
17
17
|
import { Provider } from "../../react-redux.js";
|
|
18
18
|
import store from "../../../reduxStore.js";
|
|
19
19
|
import { getLocale } from '@instructure/quiz-common';
|
|
20
|
-
import { getFeatures } from "../../api/features.js";
|
|
21
20
|
import { set } from "../../actions/ui.js";
|
|
22
21
|
import { setAPIEndpoint, setCanvasOrigin, setUserToken } from "../../actions/config.js";
|
|
23
22
|
import { setContextUuid, setOutcomesEndpoint, setOutcomesToken } from "../../actions/outcomes.js";
|
|
@@ -34,7 +33,8 @@ import theme from "./theme.js";
|
|
|
34
33
|
import CustomPropTypes from "../../../common/util/CustomPropTypes.js";
|
|
35
34
|
import ConfirmationModal from "../ConfirmationModal/index.js";
|
|
36
35
|
import setupFormatMessage from '@instructure/quiz-i18n/es/util/setupFormatMessage';
|
|
37
|
-
import { RceConfigProvider } from "
|
|
36
|
+
import { RceConfigProvider } from "../RceConfigProvider/RceConfigProvider.js";
|
|
37
|
+
import { ApiFeatureFlagInitializer } from "../ApiFeatureFlagInitializer/index.js";
|
|
38
38
|
|
|
39
39
|
var _ref = /*#__PURE__*/React.createElement(ConfirmationModal, null);
|
|
40
40
|
|
|
@@ -81,7 +81,6 @@ export var SDKApp = (_dec = themeable(theme, styles), _dec(_class = (_temp = _cl
|
|
|
81
81
|
var _this$props$rceConfig;
|
|
82
82
|
|
|
83
83
|
this.store.dispatch([setAPIEndpoint(this.props.apiEndpoint), setCanvasOrigin((_this$props$rceConfig = this.props.rceConfig) === null || _this$props$rceConfig === void 0 ? void 0 : _this$props$rceConfig.canvasOrigin), this.setAppContainer(this.props.appContainer), setUserToken(this.props.userToken), setOutcomesEndpoint(this.props.outcomesEndpoint), setOutcomesToken(this.props.outcomesToken), setContextUuid(this.props.contextUuid)]);
|
|
84
|
-
this.store.dispatch(getFeatures());
|
|
85
84
|
|
|
86
85
|
if (this.props.itemBankSharingEnabled) {
|
|
87
86
|
this.store.dispatch(addFeatures('item_bank_sharing'));
|
|
@@ -140,13 +139,13 @@ export var SDKApp = (_dec = themeable(theme, styles), _dec(_class = (_temp = _cl
|
|
|
140
139
|
context = this.context;
|
|
141
140
|
return /*#__PURE__*/React.createElement(Provider, {
|
|
142
141
|
store: store
|
|
143
|
-
}, /*#__PURE__*/React.createElement(RceConfigProvider, this.props.rceConfig, /*#__PURE__*/React.createElement(ApplyLocale, {
|
|
142
|
+
}, /*#__PURE__*/React.createElement(ApiFeatureFlagInitializer, null, /*#__PURE__*/React.createElement(RceConfigProvider, this.props.rceConfig, /*#__PURE__*/React.createElement(ApplyLocale, {
|
|
144
143
|
locale: getLocale(props, context),
|
|
145
144
|
timezone: props.timeZone
|
|
146
145
|
}, /*#__PURE__*/React.createElement("div", {
|
|
147
146
|
className: styles.sdk,
|
|
148
147
|
"data-automation": "sdk-app"
|
|
149
|
-
}, _ref, props.children))));
|
|
148
|
+
}, _ref, props.children)))));
|
|
150
149
|
}
|
|
151
150
|
}]);
|
|
152
151
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { featureOn } from "./featureCheck.js";
|
|
2
2
|
var newRCEFeatureName = 'use_new_rce';
|
|
3
3
|
var newRCEAppsFeatureName = 'rce5_apps';
|
|
4
|
-
var
|
|
4
|
+
var newRCERendererFeatureName = 'rce5_renderer';
|
|
5
5
|
export function isNewRCEEnabled() {
|
|
6
6
|
return featureOn(newRCEFeatureName);
|
|
7
7
|
}
|
|
8
8
|
export function isNewRCEAppsEnabled() {
|
|
9
9
|
return featureOn(newRCEAppsFeatureName);
|
|
10
10
|
}
|
|
11
|
-
export function
|
|
12
|
-
return featureOn(
|
|
11
|
+
export function isNewRCERendererEnabled() {
|
|
12
|
+
return featureOn(newRCERendererFeatureName);
|
|
13
13
|
}
|
|
14
14
|
export default isNewRCEEnabled;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ApiFeatureFlagInitializer = exports.ApiFeatureFlagInitializerComponent = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _reactRedux = require("../../react-redux.js");
|
|
13
|
+
|
|
14
|
+
var _propTypes = require("prop-types");
|
|
15
|
+
|
|
16
|
+
var _features = require("../../api/features.js");
|
|
17
|
+
|
|
18
|
+
var _Spinner = require("../shared/spinner/Spinner.js");
|
|
19
|
+
|
|
20
|
+
var _index = require("../shared/Card/index.js");
|
|
21
|
+
|
|
22
|
+
var _ref = /*#__PURE__*/_react.default.createElement(_index.Card, {
|
|
23
|
+
wrapped: true
|
|
24
|
+
}, /*#__PURE__*/_react.default.createElement(_Spinner.QuizzesSpinner, null));
|
|
25
|
+
|
|
26
|
+
var ApiFeatureFlagInitializerComponent = function ApiFeatureFlagInitializerComponent(props) {
|
|
27
|
+
(0, _react.useEffect)(function () {
|
|
28
|
+
!props.loadedApiFeatures && props.getFeatures();
|
|
29
|
+
}, []);
|
|
30
|
+
return props.loadedApiFeatures ? props.children : _ref;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
exports.ApiFeatureFlagInitializerComponent = ApiFeatureFlagInitializerComponent;
|
|
34
|
+
ApiFeatureFlagInitializerComponent.propTypes = {
|
|
35
|
+
children: _propTypes.node.isRequired,
|
|
36
|
+
getFeatures: _propTypes.func.isRequired,
|
|
37
|
+
loadedApiFeatures: _propTypes.bool
|
|
38
|
+
};
|
|
39
|
+
ApiFeatureFlagInitializerComponent.defaultProps = {
|
|
40
|
+
loadedApiFeatures: false
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
var mapStateToProps = function mapStateToProps(state, ownProps) {
|
|
44
|
+
return {
|
|
45
|
+
loadedApiFeatures: state.getIn(['ui', 'loadedApiFeatures']) || ownProps.loadedApiFeatures
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
var mapDispatchToProps = {
|
|
50
|
+
getFeatures: _features.getFeatures
|
|
51
|
+
};
|
|
52
|
+
var ApiFeatureFlagInitializer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ApiFeatureFlagInitializerComponent);
|
|
53
|
+
exports.ApiFeatureFlagInitializer = ApiFeatureFlagInitializer;
|
|
@@ -21,27 +21,27 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
21
21
|
|
|
22
22
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
23
23
|
|
|
24
|
-
var _reactRedux = require("../../
|
|
24
|
+
var _reactRedux = require("../../react-redux.js");
|
|
25
25
|
|
|
26
|
-
var _reduxStore = _interopRequireDefault(require("
|
|
26
|
+
var _reduxStore = _interopRequireDefault(require("../../../reduxStore.js"));
|
|
27
27
|
|
|
28
|
-
var _rce = require("
|
|
28
|
+
var _rce = require("../../actions/rce.js");
|
|
29
29
|
|
|
30
|
-
var _rceChecker = require("
|
|
30
|
+
var _rceChecker = require("../../util/rceChecker.js");
|
|
31
31
|
|
|
32
|
-
var _Spinner = require("../
|
|
32
|
+
var _Spinner = require("../shared/spinner/Spinner.js");
|
|
33
33
|
|
|
34
|
-
var _index = require("../
|
|
34
|
+
var _index = require("../shared/Card/index.js");
|
|
35
35
|
|
|
36
36
|
var _quizCommon = require("@instructure/quiz-common");
|
|
37
37
|
|
|
38
|
-
var _alerts = require("
|
|
38
|
+
var _alerts = require("../../actions/alerts.js");
|
|
39
39
|
|
|
40
40
|
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
41
41
|
|
|
42
42
|
var _quizInteractions = require("@instructure/quiz-interactions");
|
|
43
43
|
|
|
44
|
-
var _windowChecks = require("
|
|
44
|
+
var _windowChecks = require("../../util/windowChecks.js");
|
|
45
45
|
|
|
46
46
|
var _ref4 = /*#__PURE__*/_react.default.createElement(_index.Card, {
|
|
47
47
|
wrapped: true
|
|
@@ -67,6 +67,10 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(props) {
|
|
|
67
67
|
return !!(props.contextId && props.contextType && props.canvasUserId && props.rcsHost && props.rcsJwtRefreshFn && props.rcsJwt);
|
|
68
68
|
};
|
|
69
69
|
|
|
70
|
+
var isRce5Disabled = function isRce5Disabled() {
|
|
71
|
+
return !props.isNewRCEEnabled && !props.isNewRCERendererEnabled;
|
|
72
|
+
};
|
|
73
|
+
|
|
70
74
|
var refreshToken = /*#__PURE__*/function () {
|
|
71
75
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(setTokenFn, questionStem) {
|
|
72
76
|
var _response$json;
|
|
@@ -154,7 +158,7 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(props) {
|
|
|
154
158
|
var _featureFlags, _ref2;
|
|
155
159
|
|
|
156
160
|
return {
|
|
157
|
-
featureFlags: (_featureFlags = {}, (0, _defineProperty2.default)(_featureFlags, _quizCommon.RceConfigKeys.isNewRCEEnabled, props.isNewRCEEnabled), (0, _defineProperty2.default)(_featureFlags, _quizCommon.RceConfigKeys.
|
|
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),
|
|
158
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,
|
|
159
163
|
rendererEnhancement: (0, _defineProperty2.default)({}, _quizCommon.RceConfigKeys.canvasOrigin, props.canvasOrigin)
|
|
160
164
|
};
|
|
@@ -167,7 +171,7 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(props) {
|
|
|
167
171
|
while (1) {
|
|
168
172
|
switch (_context2.prev = _context2.next) {
|
|
169
173
|
case 0:
|
|
170
|
-
if (!(
|
|
174
|
+
if (!isRce5Disabled()) {
|
|
171
175
|
_context2.next = 2;
|
|
172
176
|
break;
|
|
173
177
|
}
|
|
@@ -228,28 +232,26 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(props) {
|
|
|
228
232
|
}
|
|
229
233
|
}, _callee2, null, [[2, 21, 25, 28]]);
|
|
230
234
|
}))();
|
|
231
|
-
}, [props.isNewRCEEnabled, props.
|
|
232
|
-
|
|
233
|
-
if (
|
|
234
|
-
|
|
235
|
-
if (!canvasConfigLoading) {
|
|
236
|
-
return /*#__PURE__*/_react.default.createElement(_quizCommon.RceConfigContext.Provider, {
|
|
237
|
-
value: getConfig()
|
|
238
|
-
}, props.children);
|
|
239
|
-
}
|
|
240
|
-
} else {
|
|
241
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.children);
|
|
242
|
-
}
|
|
235
|
+
}, [props.isNewRCEEnabled, props.isNewRCERendererEnabled]);
|
|
236
|
+
|
|
237
|
+
if (isRce5Disabled()) {
|
|
238
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.children);
|
|
243
239
|
}
|
|
244
240
|
|
|
245
|
-
|
|
241
|
+
if (!canvasConfigLoading) {
|
|
242
|
+
return /*#__PURE__*/_react.default.createElement(_quizCommon.RceConfigContext.Provider, {
|
|
243
|
+
value: getConfig()
|
|
244
|
+
}, props.children);
|
|
245
|
+
} else {
|
|
246
|
+
return _ref4;
|
|
247
|
+
}
|
|
246
248
|
};
|
|
247
249
|
|
|
248
250
|
exports.RceConfigProviderComponent = RceConfigProviderComponent;
|
|
249
251
|
RceConfigProviderComponent.propTypes = {
|
|
250
252
|
children: _propTypes.default.node.isRequired,
|
|
251
253
|
isNewRCEEnabled: _propTypes.default.bool.isRequired,
|
|
252
|
-
|
|
254
|
+
isNewRCERendererEnabled: _propTypes.default.bool.isRequired,
|
|
253
255
|
isNewRCEAppsEnabled: _propTypes.default.bool,
|
|
254
256
|
setEventToQuizLog: _propTypes.default.func.isRequired,
|
|
255
257
|
contextId: _propTypes.default.string,
|
|
@@ -258,8 +260,7 @@ RceConfigProviderComponent.propTypes = {
|
|
|
258
260
|
rcsHost: _propTypes.default.string,
|
|
259
261
|
rcsJwt: _propTypes.default.string,
|
|
260
262
|
rcsJwtRefreshFn: _propTypes.default.func,
|
|
261
|
-
canvasOrigin: _propTypes.default.string
|
|
262
|
-
loadedApiFeatures: _propTypes.default.bool
|
|
263
|
+
canvasOrigin: _propTypes.default.string
|
|
263
264
|
};
|
|
264
265
|
RceConfigProviderComponent.defaultProps = {
|
|
265
266
|
contextId: null,
|
|
@@ -269,16 +270,16 @@ RceConfigProviderComponent.defaultProps = {
|
|
|
269
270
|
rcsJwt: null,
|
|
270
271
|
rcsJwtRefreshFn: null,
|
|
271
272
|
canvasOrigin: null,
|
|
272
|
-
|
|
273
|
+
isNewRCEEnabled: false,
|
|
274
|
+
isNewRCERendererEnabled: false,
|
|
273
275
|
isNewRCEAppsEnabled: false
|
|
274
276
|
};
|
|
275
277
|
|
|
276
|
-
var mapStateToProps = function mapStateToProps(
|
|
278
|
+
var mapStateToProps = function mapStateToProps() {
|
|
277
279
|
return {
|
|
278
280
|
isNewRCEEnabled: (0, _rceChecker.isNewRCEEnabled)(),
|
|
279
|
-
|
|
280
|
-
isNewRCEAppsEnabled: (0, _rceChecker.isNewRCEAppsEnabled)()
|
|
281
|
-
loadedApiFeatures: state.getIn(['ui', 'loadedApiFeatures']) || ownProps.loadedApiFeatures
|
|
281
|
+
isNewRCERendererEnabled: (0, _rceChecker.isNewRCERendererEnabled)(),
|
|
282
|
+
isNewRCEAppsEnabled: (0, _rceChecker.isNewRCEAppsEnabled)()
|
|
282
283
|
};
|
|
283
284
|
};
|
|
284
285
|
|
|
@@ -35,15 +35,13 @@ var _reduxStore = _interopRequireDefault(require("../../../reduxStore.js"));
|
|
|
35
35
|
|
|
36
36
|
var _quizCommon = require("@instructure/quiz-common");
|
|
37
37
|
|
|
38
|
-
var _features = require("../../api/features.js");
|
|
39
|
-
|
|
40
38
|
var _ui = require("../../actions/ui.js");
|
|
41
39
|
|
|
42
40
|
var _config = require("../../actions/config.js");
|
|
43
41
|
|
|
44
42
|
var _outcomes = require("../../actions/outcomes.js");
|
|
45
43
|
|
|
46
|
-
var
|
|
44
|
+
var _features = require("../../actions/features.js");
|
|
47
45
|
|
|
48
46
|
var _renderAlerts = _interopRequireDefault(require("../../util/renderAlerts.js"));
|
|
49
47
|
|
|
@@ -55,7 +53,9 @@ var _index = _interopRequireDefault(require("../ConfirmationModal/index.js"));
|
|
|
55
53
|
|
|
56
54
|
var _setupFormatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/util/setupFormatMessage"));
|
|
57
55
|
|
|
58
|
-
var _RceConfigProvider = require("
|
|
56
|
+
var _RceConfigProvider = require("../RceConfigProvider/RceConfigProvider.js");
|
|
57
|
+
|
|
58
|
+
var _index2 = require("../ApiFeatureFlagInitializer/index.js");
|
|
59
59
|
|
|
60
60
|
var _dec, _class, _class2, _temp;
|
|
61
61
|
|
|
@@ -111,10 +111,9 @@ var SDKApp = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_
|
|
|
111
111
|
var _this$props$rceConfig;
|
|
112
112
|
|
|
113
113
|
this.store.dispatch([(0, _config.setAPIEndpoint)(this.props.apiEndpoint), (0, _config.setCanvasOrigin)((_this$props$rceConfig = this.props.rceConfig) === null || _this$props$rceConfig === void 0 ? void 0 : _this$props$rceConfig.canvasOrigin), this.setAppContainer(this.props.appContainer), (0, _config.setUserToken)(this.props.userToken), (0, _outcomes.setOutcomesEndpoint)(this.props.outcomesEndpoint), (0, _outcomes.setOutcomesToken)(this.props.outcomesToken), (0, _outcomes.setContextUuid)(this.props.contextUuid)]);
|
|
114
|
-
this.store.dispatch((0, _features.getFeatures)());
|
|
115
114
|
|
|
116
115
|
if (this.props.itemBankSharingEnabled) {
|
|
117
|
-
this.store.dispatch((0,
|
|
116
|
+
this.store.dispatch((0, _features.addFeatures)('item_bank_sharing'));
|
|
118
117
|
}
|
|
119
118
|
}
|
|
120
119
|
}, {
|
|
@@ -158,7 +157,7 @@ var SDKApp = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_
|
|
|
158
157
|
}
|
|
159
158
|
|
|
160
159
|
if (newProps.itemBankSharingEnabled !== this.props.itemBankSharingEnabled) {
|
|
161
|
-
var toggleFeature = newProps.itemBankSharingEnabled ?
|
|
160
|
+
var toggleFeature = newProps.itemBankSharingEnabled ? _features.addFeatures : _features.removeFeatures;
|
|
162
161
|
this.store.dispatch(toggleFeature('item_bank_sharing'));
|
|
163
162
|
}
|
|
164
163
|
}
|
|
@@ -170,13 +169,13 @@ var SDKApp = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_
|
|
|
170
169
|
context = this.context;
|
|
171
170
|
return /*#__PURE__*/_react.default.createElement(_reactRedux.Provider, {
|
|
172
171
|
store: store
|
|
173
|
-
}, /*#__PURE__*/_react.default.createElement(_RceConfigProvider.RceConfigProvider, this.props.rceConfig, /*#__PURE__*/_react.default.createElement(_uiI18n.ApplyLocale, {
|
|
172
|
+
}, /*#__PURE__*/_react.default.createElement(_index2.ApiFeatureFlagInitializer, null, /*#__PURE__*/_react.default.createElement(_RceConfigProvider.RceConfigProvider, this.props.rceConfig, /*#__PURE__*/_react.default.createElement(_uiI18n.ApplyLocale, {
|
|
174
173
|
locale: (0, _quizCommon.getLocale)(props, context),
|
|
175
174
|
timezone: props.timeZone
|
|
176
175
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
177
176
|
className: styles.sdk,
|
|
178
177
|
"data-automation": "sdk-app"
|
|
179
|
-
}, _ref, props.children))));
|
|
178
|
+
}, _ref, props.children)))));
|
|
180
179
|
}
|
|
181
180
|
}]);
|
|
182
181
|
SDKApp.displayName = "SDKApp";
|
|
@@ -5,14 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.isNewRCEEnabled = isNewRCEEnabled;
|
|
7
7
|
exports.isNewRCEAppsEnabled = isNewRCEAppsEnabled;
|
|
8
|
-
exports.
|
|
8
|
+
exports.isNewRCERendererEnabled = isNewRCERendererEnabled;
|
|
9
9
|
exports.default = void 0;
|
|
10
10
|
|
|
11
11
|
var _featureCheck = require("./featureCheck.js");
|
|
12
12
|
|
|
13
13
|
var newRCEFeatureName = 'use_new_rce';
|
|
14
14
|
var newRCEAppsFeatureName = 'rce5_apps';
|
|
15
|
-
var
|
|
15
|
+
var newRCERendererFeatureName = 'rce5_renderer';
|
|
16
16
|
|
|
17
17
|
function isNewRCEEnabled() {
|
|
18
18
|
return (0, _featureCheck.featureOn)(newRCEFeatureName);
|
|
@@ -22,8 +22,8 @@ function isNewRCEAppsEnabled() {
|
|
|
22
22
|
return (0, _featureCheck.featureOn)(newRCEAppsFeatureName);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
function
|
|
26
|
-
return (0, _featureCheck.featureOn)(
|
|
25
|
+
function isNewRCERendererEnabled() {
|
|
26
|
+
return (0, _featureCheck.featureOn)(newRCERendererFeatureName);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
var _default = isNewRCEEnabled;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/quiz-core",
|
|
3
|
-
"version": "17.47.
|
|
3
|
+
"version": "17.47.1-rc.1+db2fa1c0c",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "The Quiz React SDK by Instructure Inc.",
|
|
6
6
|
"author": "Instructure, Inc. Engineering and Product Design",
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
],
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@instructure/outcomes-ui": "^2.1.2",
|
|
44
|
-
"@instructure/quiz-common": "
|
|
45
|
-
"@instructure/quiz-i18n": "
|
|
46
|
-
"@instructure/quiz-interactions": "
|
|
47
|
-
"@instructure/quiz-number-input": "
|
|
48
|
-
"@instructure/quiz-rce": "
|
|
44
|
+
"@instructure/quiz-common": "17.47.1-rc.1+db2fa1c0c",
|
|
45
|
+
"@instructure/quiz-i18n": "17.47.1-rc.1+db2fa1c0c",
|
|
46
|
+
"@instructure/quiz-interactions": "17.47.1-rc.1+db2fa1c0c",
|
|
47
|
+
"@instructure/quiz-number-input": "17.47.1-rc.1+db2fa1c0c",
|
|
48
|
+
"@instructure/quiz-rce": "17.47.1-rc.1+db2fa1c0c",
|
|
49
49
|
"@instructure/ui-a11y-content": "^7.20.0",
|
|
50
50
|
"@instructure/ui-alerts": "^7.20.0",
|
|
51
51
|
"@instructure/ui-avatar": "^7.20.0",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"eventemitter3": "^3.1.0",
|
|
107
107
|
"humps": "^2.0.0",
|
|
108
108
|
"immutable": "^3.8.1",
|
|
109
|
-
"instructure-validations": "
|
|
109
|
+
"instructure-validations": "17.47.1-rc.1+db2fa1c0c",
|
|
110
110
|
"ipaddr.js": "^1.5.4",
|
|
111
111
|
"isomorphic-fetch": "^2.2.0",
|
|
112
112
|
"isuuid": "^0.1.0",
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"uuid": "^3.2.1"
|
|
138
138
|
},
|
|
139
139
|
"devDependencies": {
|
|
140
|
-
"@instructure/quiz-scripts": "
|
|
140
|
+
"@instructure/quiz-scripts": "17.47.0",
|
|
141
141
|
"@instructure/ui-axe-check": "^7.20.0",
|
|
142
142
|
"@instructure/ui-babel-preset": "^7.20.0",
|
|
143
143
|
"@instructure/ui-karma-config": "^7.20.0",
|
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
"intl": "^1.2.4",
|
|
157
157
|
"jquery": "^2.2.3",
|
|
158
158
|
"most-subject": "^5.3.0",
|
|
159
|
-
"quiz-presets": "
|
|
159
|
+
"quiz-presets": "17.47.1-rc.1+db2fa1c0c",
|
|
160
160
|
"react": "^16.8.6",
|
|
161
161
|
"react-addons-test-utils": "^15.6.2",
|
|
162
162
|
"react-dom": "^16.8.6",
|
|
@@ -172,5 +172,5 @@
|
|
|
172
172
|
"publishConfig": {
|
|
173
173
|
"access": "public"
|
|
174
174
|
},
|
|
175
|
-
"gitHead": "
|
|
175
|
+
"gitHead": "db2fa1c0c286aba20e61c2bb43432eac11a29f29"
|
|
176
176
|
}
|