@instructure/quiz-core 20.16.1-rc.5 → 20.16.1-rc.7
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/actions/alerts.js +8 -4
- package/es/common/components/alerts/index.js +4 -2
- package/es/common/records/Alert.js +2 -1
- package/es/common/util/renderAlerts.js +14 -2
- package/es/taking/api/taking.js +2 -2
- package/lib/common/actions/alerts.js +7 -3
- package/lib/common/components/alerts/index.js +4 -2
- package/lib/common/records/Alert.js +2 -1
- package/lib/common/util/renderAlerts.js +13 -1
- package/lib/taking/api/taking.js +1 -1
- package/package.json +9 -9
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { v4 as uuid } from 'uuid';
|
|
2
|
-
import { ADD_ALERT, REMOVE_ALERT, DEFAULT_ALERT_TIME } from '@instructure/quiz-common';
|
|
2
|
+
import { ADD_ALERT, REMOVE_ALERT, DEFAULT_ALERT_TIME, ASSERTIVE } from '@instructure/quiz-common';
|
|
3
3
|
export function addAlert(_ref) {
|
|
4
4
|
var message = _ref.message,
|
|
5
5
|
variant = _ref.variant,
|
|
6
6
|
_ref$removeIn = _ref.removeIn,
|
|
7
7
|
removeIn = _ref$removeIn === void 0 ? DEFAULT_ALERT_TIME : _ref$removeIn,
|
|
8
8
|
_ref$guid = _ref.guid,
|
|
9
|
-
guid = _ref$guid === void 0 ? uuid() : _ref$guid
|
|
9
|
+
guid = _ref$guid === void 0 ? uuid() : _ref$guid,
|
|
10
|
+
politeness = _ref.politeness;
|
|
10
11
|
return {
|
|
11
12
|
type: ADD_ALERT,
|
|
12
13
|
payload: {
|
|
13
14
|
message: message,
|
|
14
15
|
removeIn: removeIn,
|
|
15
16
|
uuid: guid,
|
|
16
|
-
variant: variant
|
|
17
|
+
variant: variant,
|
|
18
|
+
politeness: politeness
|
|
17
19
|
}
|
|
18
20
|
};
|
|
19
21
|
}
|
|
@@ -45,10 +47,12 @@ export function addInfo(message) {
|
|
|
45
47
|
});
|
|
46
48
|
}
|
|
47
49
|
export function screenreaderNotification(message) {
|
|
50
|
+
var politeness = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ASSERTIVE;
|
|
48
51
|
return addAlert({
|
|
49
52
|
message: message,
|
|
50
53
|
variant: 'screenreader',
|
|
51
|
-
removeIn: 2000
|
|
54
|
+
removeIn: 2000,
|
|
55
|
+
politeness: politeness
|
|
52
56
|
});
|
|
53
57
|
}
|
|
54
58
|
export function removeAlert(uuid) {
|
|
@@ -4,12 +4,14 @@ import { removeAlert } from "../../actions/alerts.js";
|
|
|
4
4
|
import Alert from "../../records/Alert.js";
|
|
5
5
|
import Alerts from "./presenter.js";
|
|
6
6
|
|
|
7
|
-
var mapStateToProps = function mapStateToProps(state) {
|
|
7
|
+
var mapStateToProps = function mapStateToProps(state, props) {
|
|
8
8
|
var alerts = state.get('alerts', Map());
|
|
9
9
|
return {
|
|
10
10
|
alerts: alerts.map(function (data) {
|
|
11
11
|
return new Alert(data);
|
|
12
|
-
}).valueSeq().toList()
|
|
12
|
+
}).valueSeq().toList().filter(function (alert) {
|
|
13
|
+
return props.politeness === alert.politeness;
|
|
14
|
+
})
|
|
13
15
|
};
|
|
14
16
|
};
|
|
15
17
|
|
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import ReactDOM from 'react-dom';
|
|
3
|
-
import { liveRegion } from '@instructure/quiz-common';
|
|
3
|
+
import { liveRegion, politeLiveRegion, POLITE, ASSERTIVE } from '@instructure/quiz-common';
|
|
4
4
|
import { Provider } from "../react-redux.js";
|
|
5
5
|
import Alerts from "../components/alerts/index.js"; // alert has to be in the html on render in
|
|
6
6
|
// order for screenreaders to pick up on role="alert",
|
|
7
7
|
// so we're rendering a sub-app into it so that so that
|
|
8
8
|
// we dont accidentally remove it with react
|
|
9
9
|
|
|
10
|
-
var _ref = /*#__PURE__*/React.createElement(Alerts,
|
|
10
|
+
var _ref = /*#__PURE__*/React.createElement(Alerts, {
|
|
11
|
+
politeness: ASSERTIVE
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
var _ref2 = /*#__PURE__*/React.createElement(Alerts, {
|
|
15
|
+
politeness: POLITE
|
|
16
|
+
});
|
|
11
17
|
|
|
12
18
|
export function renderAlerts(store) {
|
|
13
19
|
ReactDOM.render( /*#__PURE__*/React.createElement(Provider, {
|
|
14
20
|
store: store
|
|
15
21
|
}, _ref), liveRegion());
|
|
22
|
+
|
|
23
|
+
if (politeLiveRegion()) {
|
|
24
|
+
ReactDOM.render( /*#__PURE__*/React.createElement(Provider, {
|
|
25
|
+
store: store
|
|
26
|
+
}, _ref2), politeLiveRegion());
|
|
27
|
+
}
|
|
16
28
|
}
|
|
17
29
|
export default renderAlerts;
|
package/es/taking/api/taking.js
CHANGED
|
@@ -15,7 +15,7 @@ import { screenreaderNotification } from "../../common/actions/alerts.js";
|
|
|
15
15
|
import Item from "../../common/records/Item.js";
|
|
16
16
|
import { featureOn } from "../../common/util/featureCheck.js";
|
|
17
17
|
import { fetchLogger } from "../../common/kinesis/QuizEventsLogger.js";
|
|
18
|
-
import { STUDENT_ACCESS_CODE_STATUS } from '@instructure/quiz-common';
|
|
18
|
+
import { POLITE, STUDENT_ACCESS_CODE_STATUS } from '@instructure/quiz-common';
|
|
19
19
|
import * as uiActions from "../../common/actions/ui.js";
|
|
20
20
|
import { fetchQuizSession, fetchResumeData, fetchTime, recordTime, singleResponseSubmit, submitQuizSession, submitStudentAccessCode as submitStudentAccessCodeApi, takeQuizSession } from "../../common/api/quizSessions.js";
|
|
21
21
|
import { getSessionItems, handleQuizSessionFetch } from "../../common/actions/quizSessions.js";
|
|
@@ -58,7 +58,7 @@ export var submitStudentAccessCode = function submitStudentAccessCode(quizSessio
|
|
|
58
58
|
dispatch(uiActions.set(STUDENT_ACCESS_CODE_STATUS, sessionData.accepted_student_access_code));
|
|
59
59
|
|
|
60
60
|
if (sessionData.accepted_student_access_code) {
|
|
61
|
-
dispatch(screenreaderNotification(t('Access code successful. You may now begin this assessment')));
|
|
61
|
+
dispatch(screenreaderNotification(t('Access code successful. You may now begin this assessment'), POLITE));
|
|
62
62
|
} else {
|
|
63
63
|
dispatch(screenreaderNotification(t('Invalid access code')));
|
|
64
64
|
}
|
|
@@ -21,14 +21,16 @@ function addAlert(_ref) {
|
|
|
21
21
|
_ref$removeIn = _ref.removeIn,
|
|
22
22
|
removeIn = _ref$removeIn === void 0 ? _quizCommon.DEFAULT_ALERT_TIME : _ref$removeIn,
|
|
23
23
|
_ref$guid = _ref.guid,
|
|
24
|
-
guid = _ref$guid === void 0 ? (0, _uuid.v4)() : _ref$guid
|
|
24
|
+
guid = _ref$guid === void 0 ? (0, _uuid.v4)() : _ref$guid,
|
|
25
|
+
politeness = _ref.politeness;
|
|
25
26
|
return {
|
|
26
27
|
type: _quizCommon.ADD_ALERT,
|
|
27
28
|
payload: {
|
|
28
29
|
message: message,
|
|
29
30
|
removeIn: removeIn,
|
|
30
31
|
uuid: guid,
|
|
31
|
-
variant: variant
|
|
32
|
+
variant: variant,
|
|
33
|
+
politeness: politeness
|
|
32
34
|
}
|
|
33
35
|
};
|
|
34
36
|
}
|
|
@@ -65,10 +67,12 @@ function addInfo(message) {
|
|
|
65
67
|
}
|
|
66
68
|
|
|
67
69
|
function screenreaderNotification(message) {
|
|
70
|
+
var politeness = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _quizCommon.ASSERTIVE;
|
|
68
71
|
return addAlert({
|
|
69
72
|
message: message,
|
|
70
73
|
variant: 'screenreader',
|
|
71
|
-
removeIn: 2000
|
|
74
|
+
removeIn: 2000,
|
|
75
|
+
politeness: politeness
|
|
72
76
|
});
|
|
73
77
|
}
|
|
74
78
|
|
|
@@ -17,12 +17,14 @@ var _Alert = _interopRequireDefault(require("../../records/Alert.js"));
|
|
|
17
17
|
|
|
18
18
|
var _presenter = _interopRequireDefault(require("./presenter.js"));
|
|
19
19
|
|
|
20
|
-
var mapStateToProps = function mapStateToProps(state) {
|
|
20
|
+
var mapStateToProps = function mapStateToProps(state, props) {
|
|
21
21
|
var alerts = state.get('alerts', (0, _immutable.Map)());
|
|
22
22
|
return {
|
|
23
23
|
alerts: alerts.map(function (data) {
|
|
24
24
|
return new _Alert.default(data);
|
|
25
|
-
}).valueSeq().toList()
|
|
25
|
+
}).valueSeq().toList().filter(function (alert) {
|
|
26
|
+
return props.politeness === alert.politeness;
|
|
27
|
+
})
|
|
26
28
|
};
|
|
27
29
|
};
|
|
28
30
|
|
|
@@ -18,7 +18,13 @@ var _reactRedux = require("../react-redux.js");
|
|
|
18
18
|
|
|
19
19
|
var _index = _interopRequireDefault(require("../components/alerts/index.js"));
|
|
20
20
|
|
|
21
|
-
var _ref = /*#__PURE__*/_react.default.createElement(_index.default,
|
|
21
|
+
var _ref = /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
22
|
+
politeness: _quizCommon.ASSERTIVE
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
var _ref2 = /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
26
|
+
politeness: _quizCommon.POLITE
|
|
27
|
+
});
|
|
22
28
|
|
|
23
29
|
// alert has to be in the html on render in
|
|
24
30
|
// order for screenreaders to pick up on role="alert",
|
|
@@ -28,6 +34,12 @@ function renderAlerts(store) {
|
|
|
28
34
|
_reactDom.default.render( /*#__PURE__*/_react.default.createElement(_reactRedux.Provider, {
|
|
29
35
|
store: store
|
|
30
36
|
}, _ref), (0, _quizCommon.liveRegion)());
|
|
37
|
+
|
|
38
|
+
if ((0, _quizCommon.politeLiveRegion)()) {
|
|
39
|
+
_reactDom.default.render( /*#__PURE__*/_react.default.createElement(_reactRedux.Provider, {
|
|
40
|
+
store: store
|
|
41
|
+
}, _ref2), (0, _quizCommon.politeLiveRegion)());
|
|
42
|
+
}
|
|
31
43
|
}
|
|
32
44
|
|
|
33
45
|
var _default = renderAlerts;
|
package/lib/taking/api/taking.js
CHANGED
|
@@ -100,7 +100,7 @@ var submitStudentAccessCode = function submitStudentAccessCode(quizSessionId, ac
|
|
|
100
100
|
dispatch(uiActions.set(_quizCommon.STUDENT_ACCESS_CODE_STATUS, sessionData.accepted_student_access_code));
|
|
101
101
|
|
|
102
102
|
if (sessionData.accepted_student_access_code) {
|
|
103
|
-
dispatch((0, _alerts.screenreaderNotification)((0, _formatMessage.default)('Access code successful. You may now begin this assessment')));
|
|
103
|
+
dispatch((0, _alerts.screenreaderNotification)((0, _formatMessage.default)('Access code successful. You may now begin this assessment'), _quizCommon.POLITE));
|
|
104
104
|
} else {
|
|
105
105
|
dispatch((0, _alerts.screenreaderNotification)((0, _formatMessage.default)('Invalid access code')));
|
|
106
106
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/quiz-core",
|
|
3
|
-
"version": "20.16.1-rc.
|
|
3
|
+
"version": "20.16.1-rc.7+16f4c9eaa",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "The Quiz React SDK by Instructure Inc.",
|
|
6
6
|
"author": "Instructure, Inc. Engineering and Product Design",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
"@instructure/emotion": "^8.51.0",
|
|
45
45
|
"@instructure/grading-utils": "^1.0.0",
|
|
46
46
|
"@instructure/outcomes-ui": "^3.2.2",
|
|
47
|
-
"@instructure/quiz-common": "20.16.1-rc.
|
|
48
|
-
"@instructure/quiz-i18n": "20.16.1-rc.
|
|
49
|
-
"@instructure/quiz-interactions": "20.16.1-rc.
|
|
50
|
-
"@instructure/quiz-number-input": "20.16.1-rc.
|
|
51
|
-
"@instructure/quiz-rce": "20.16.1-rc.
|
|
47
|
+
"@instructure/quiz-common": "20.16.1-rc.7+16f4c9eaa",
|
|
48
|
+
"@instructure/quiz-i18n": "20.16.1-rc.7+16f4c9eaa",
|
|
49
|
+
"@instructure/quiz-interactions": "20.16.1-rc.7+16f4c9eaa",
|
|
50
|
+
"@instructure/quiz-number-input": "20.16.1-rc.7+16f4c9eaa",
|
|
51
|
+
"@instructure/quiz-rce": "20.16.1-rc.7+16f4c9eaa",
|
|
52
52
|
"@instructure/ui-a11y-content": "^8.51.0",
|
|
53
53
|
"@instructure/ui-alerts": "^8.51.0",
|
|
54
54
|
"@instructure/ui-avatar": "^8.51.0",
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
"file-saver": "~2.0.5",
|
|
112
112
|
"humps": "^2.0.0",
|
|
113
113
|
"immutable": "^3.8.1",
|
|
114
|
-
"instructure-validations": "20.16.1-rc.
|
|
114
|
+
"instructure-validations": "20.16.1-rc.7+16f4c9eaa",
|
|
115
115
|
"ipaddr.js": "^1.5.4",
|
|
116
116
|
"isomorphic-fetch": "^2.2.0",
|
|
117
117
|
"isuuid": "^0.1.0",
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
"jquery": "^2.2.3",
|
|
164
164
|
"karma-junit-reporter": "^2.0.1",
|
|
165
165
|
"most-subject": "^5.3.0",
|
|
166
|
-
"quiz-presets": "20.16.1-rc.
|
|
166
|
+
"quiz-presets": "20.16.1-rc.7+16f4c9eaa",
|
|
167
167
|
"react": "^16.8.6",
|
|
168
168
|
"react-addons-test-utils": "^15.6.2",
|
|
169
169
|
"react-dom": "^16.8.6",
|
|
@@ -179,5 +179,5 @@
|
|
|
179
179
|
"publishConfig": {
|
|
180
180
|
"access": "public"
|
|
181
181
|
},
|
|
182
|
-
"gitHead": "
|
|
182
|
+
"gitHead": "16f4c9eaacdcb4f53aeb94b4acce383ded3fe00a"
|
|
183
183
|
}
|