@instructure/quiz-core 17.63.0 → 17.63.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.
@@ -8,16 +8,16 @@ var _dec, _class, _class2, _temp;
8
8
  import { Heading } from '@instructure/ui-heading';
9
9
  import React, { Component } from 'react';
10
10
  var styles = {
11
- componentId: 'ePPpE',
11
+ componentId: 'bnEXV',
12
12
  template: function template(theme) {
13
- return "\n\n.ePPpE_eDnN{display:flex;justify-content:space-between;padding-bottom:".concat(theme.headingPadding || 'inherit', "}\n\n.ePPpE_eKXQ{padding:").concat(theme.cardWrapperPadding || 'inherit', ";position:relative}\n\n.ePPpE_crZr{padding-top:").concat(theme.metricGroupPaddingTop || 'inherit', "}\n\n.ePPpE_bTHH{position:absolute;right:").concat(theme.viewPadding || 'inherit', ";top:").concat(theme.viewPadding || 'inherit', "}\n\n.ePPpE_dPzc,.ePPpE_cpZE{column-gap:").concat(theme.metricsColumnGap || 'inherit', ";display:flex;flex-wrap:wrap;justify-content:flex-start;row-gap:1.5rem}\n\n.ePPpE_dPzc{margin-left:-8px}");
13
+ return "\n\n.bnEXV_eDnN{display:flex;justify-content:space-between;padding-bottom:".concat(theme.headingPadding || 'inherit', "}\n\n.bnEXV_eKXQ{padding:").concat(theme.cardWrapperPadding || 'inherit', ";position:relative}\n\n.bnEXV_crZr{padding-top:").concat(theme.metricGroupPaddingTop || 'inherit', "}\n\n.bnEXV_bTHH{position:absolute;right:").concat(theme.viewPadding || 'inherit', ";top:").concat(theme.viewPadding || 'inherit', "}\n\n.bnEXV_dPzc,.bnEXV_cpZE{column-gap:").concat(theme.metricsColumnGap || 'inherit', ";display:flex;flex-wrap:wrap;justify-content:flex-start;row-gap:1.5rem}");
14
14
  },
15
- 'heading': 'ePPpE_eDnN',
16
- 'cardWrapper': 'ePPpE_eKXQ',
17
- 'container': 'ePPpE_crZr',
18
- 'expandButtonContainer': 'ePPpE_bTHH',
19
- 'metricGroup': 'ePPpE_dPzc',
20
- 'metricsWrapper': 'ePPpE_cpZE'
15
+ 'heading': 'bnEXV_eDnN',
16
+ 'cardWrapper': 'bnEXV_eKXQ',
17
+ 'container': 'bnEXV_crZr',
18
+ 'expandButtonContainer': 'bnEXV_bTHH',
19
+ 'metricGroup': 'bnEXV_dPzc',
20
+ 'metricsWrapper': 'bnEXV_cpZE'
21
21
  };
22
22
  import t from '@instructure/quiz-i18n/es/format-message';
23
23
  import ExpandButton from "../../../../../common/components/shared/ExpandButton/index.js";
@@ -72,12 +72,7 @@ export var NewQuizAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
72
72
  className: styles.container
73
73
  }, /*#__PURE__*/React.createElement("div", {
74
74
  className: styles.metricGroup
75
- }, /*#__PURE__*/React.createElement(AnalysisMetric, {
76
- metricKey: "median_percentage",
77
- label: t('Median Score'),
78
- value: t.number(scores === null || scores === void 0 ? void 0 : scores.median_percentage),
79
- suffix: "%"
80
- }), /*#__PURE__*/React.createElement(AnalysisPopoverMetric, {
75
+ }, /*#__PURE__*/React.createElement(AnalysisPopoverMetric, {
81
76
  metricKey: "stddev",
82
77
  value: t.number(scores === null || scores === void 0 ? void 0 : scores.stddev),
83
78
  label: t('Standard Deviation'),
@@ -130,9 +125,10 @@ export var NewQuizAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
130
125
  })), /*#__PURE__*/React.createElement("div", {
131
126
  className: styles.metricsWrapper
132
127
  }, /*#__PURE__*/React.createElement(AnalysisMetric, {
133
- metricKey: "average_attempts",
134
- label: t('average attempts'),
135
- value: t.number(attempts === null || attempts === void 0 ? void 0 : attempts.average_attempts)
128
+ metricKey: "median_percentage",
129
+ label: t('Median Score'),
130
+ value: t.number(scores === null || scores === void 0 ? void 0 : scores.median_percentage),
131
+ suffix: "%"
136
132
  }), /*#__PURE__*/React.createElement(AnalysisMetric, {
137
133
  metricKey: "mean_elapsed_sec",
138
134
  label: t('mean elapsed time'),
@@ -0,0 +1,7 @@
1
+ import t from '@instructure/quiz-i18n/es/format-message';
2
+ export var getFailedToFetchReports = function getFailedToFetchReports() {
3
+ return t('An error has occurred while loading this report. Please try again.');
4
+ };
5
+ export var getLastReportGenerationFailed = function getLastReportGenerationFailed() {
6
+ return t('Report generation failed. Please try again.');
7
+ };
@@ -0,0 +1,56 @@
1
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
+ import { getFailedToFetchReports, getLastReportGenerationFailed } from "./errorMessages.js";
5
+ export var fetchReports = /*#__PURE__*/function () {
6
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
7
+ var activeQuizId, setFetchInProgress, setQuizAnalysis, setItemAnalyses, setAnalysisError, setGenerationInProgress, addError, fetchQuizAnalysis, fetchItemAnalyses, _yield$Promise$all, _yield$Promise$all2, quizAnalysis, itemAnalyses;
8
+
9
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
10
+ while (1) {
11
+ switch (_context.prev = _context.next) {
12
+ case 0:
13
+ activeQuizId = _ref.activeQuizId, setFetchInProgress = _ref.setFetchInProgress, setQuizAnalysis = _ref.setQuizAnalysis, setItemAnalyses = _ref.setItemAnalyses, setAnalysisError = _ref.setAnalysisError, setGenerationInProgress = _ref.setGenerationInProgress, addError = _ref.addError, fetchQuizAnalysis = _ref.fetchQuizAnalysis, fetchItemAnalyses = _ref.fetchItemAnalyses;
14
+ _context.prev = 1;
15
+ setFetchInProgress(true);
16
+ _context.next = 5;
17
+ return Promise.all([fetchQuizAnalysis(activeQuizId), fetchItemAnalyses(activeQuizId)]);
18
+
19
+ case 5:
20
+ _yield$Promise$all = _context.sent;
21
+ _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);
22
+ quizAnalysis = _yield$Promise$all2[0];
23
+ itemAnalyses = _yield$Promise$all2[1];
24
+ setQuizAnalysis(quizAnalysis.last_successful_analysis);
25
+ setItemAnalyses(itemAnalyses.last_successful_analysis);
26
+ setGenerationInProgress(quizAnalysis.new_analysis_in_progress || itemAnalyses.new_analysis_in_progress);
27
+
28
+ if (quizAnalysis.last_analysis_failed || itemAnalyses.last_analysis_failed) {
29
+ setAnalysisError(getLastReportGenerationFailed());
30
+ }
31
+
32
+ _context.next = 18;
33
+ break;
34
+
35
+ case 15:
36
+ _context.prev = 15;
37
+ _context.t0 = _context["catch"](1);
38
+ addError(getFailedToFetchReports());
39
+
40
+ case 18:
41
+ _context.prev = 18;
42
+ setFetchInProgress(false);
43
+ return _context.finish(18);
44
+
45
+ case 21:
46
+ case "end":
47
+ return _context.stop();
48
+ }
49
+ }
50
+ }, _callee, null, [[1, 15, 18, 21]]);
51
+ }));
52
+
53
+ return function fetchReports(_x) {
54
+ return _ref2.apply(this, arguments);
55
+ };
56
+ }();
@@ -29,7 +29,7 @@ export var itemAnalysisPropType = PropTypes.shape({
29
29
  metadata: PropTypes.shape({
30
30
  interaction_type: PropTypes.string,
31
31
  item_body: PropTypes.string,
32
- item_id: PropTypes.string,
32
+ item_id: PropTypes.number,
33
33
  item_title: PropTypes.string
34
34
  }),
35
35
  scores: PropTypes.shape({
@@ -1,17 +1,20 @@
1
1
  import { withAnalysisStatePresenter } from "./withAnalysisStatePresenter.js";
2
2
  import { getQuizAnalysis, getItemAnalyses, getFetchInProgress, getGenerationInProgress, getAnalysisError } from "../../../../common/selectors/analyses.js";
3
3
  import { setQuizAnalysis, setItemAnalyses, setFetchInProgress, setGenerationInProgress, setAnalysisError } from "../../../../common/actions/analyses.js";
4
- import { getQuizAnalysis as fetchQuizAnalysis } from "../../../api/newQuizAnalysis.js";
5
- import { getItemAnalyses as fetchItemAnalyses } from "../../../api/newItemAnalyses.js";
4
+ import { getQuizAnalysis as fetchQuizAnalysis } from "../../../api/getQuizAnalysis.js";
5
+ import { getItemAnalyses as fetchItemAnalyses } from "../../../api/getItemAnalyses.js";
6
6
  import { connect } from "../../../../common/react-redux.js";
7
7
  import { compose } from 'redux';
8
- export function mapStateToProps(state) {
8
+ import { getActiveQuizId } from "../../../../common/selectors/quizzes.js";
9
+ import { addError } from "../../../../common/actions/alerts.js";
10
+ export function mapStateToProps(state, ownProps) {
9
11
  return {
10
12
  quizAnalysis: getQuizAnalysis(state),
11
13
  itemAnalyses: getItemAnalyses(state),
12
14
  fetchInProgress: getFetchInProgress(state),
13
15
  generationInProgress: getGenerationInProgress(state),
14
16
  analysisError: getAnalysisError(state),
17
+ activeQuizId: ownProps.activeQuizId || getActiveQuizId(state),
15
18
  fetchQuizAnalysis: fetchQuizAnalysis,
16
19
  fetchItemAnalyses: fetchItemAnalyses
17
20
  };
@@ -21,7 +24,8 @@ var mapDispatchToProps = {
21
24
  setItemAnalyses: setItemAnalyses,
22
25
  setFetchInProgress: setFetchInProgress,
23
26
  setGenerationInProgress: setGenerationInProgress,
24
- setAnalysisError: setAnalysisError
27
+ setAnalysisError: setAnalysisError,
28
+ addError: addError
25
29
  };
26
30
  export var withAnalysisState = compose(connect(mapStateToProps, mapDispatchToProps), withAnalysisStatePresenter);
27
31
  export default withAnalysisState;
@@ -4,6 +4,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
4
4
  import React, { useEffect } from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { itemAnalysisPropType, quizAnalysisPropType } from "./propTypes.js";
7
+ import { fetchReports } from "./fetchReports.js";
7
8
  export var withAnalysisStatePresenter = function withAnalysisStatePresenter(OriginalComponent) {
8
9
  var WithAnalysisStatePresenter = function WithAnalysisStatePresenter(_ref) {
9
10
  var quizAnalysis = _ref.quizAnalysis,
@@ -12,123 +13,46 @@ export var withAnalysisStatePresenter = function withAnalysisStatePresenter(Orig
12
13
  generationInProgress = _ref.generationInProgress,
13
14
  analysisError = _ref.analysisError,
14
15
  setQuizAnalysis = _ref.setQuizAnalysis,
16
+ addError = _ref.addError,
15
17
  setItemAnalyses = _ref.setItemAnalyses,
16
18
  setFetchInProgress = _ref.setFetchInProgress,
17
19
  setGenerationInProgress = _ref.setGenerationInProgress,
18
20
  setAnalysisError = _ref.setAnalysisError,
19
21
  activeQuizId = _ref.activeQuizId,
22
+ generateReport = _ref.generateReport,
20
23
  fetchQuizAnalysis = _ref.fetchQuizAnalysis,
21
24
  fetchItemAnalyses = _ref.fetchItemAnalyses,
22
- generateReport = _ref.generateReport,
23
- passThroughProps = _objectWithoutProperties(_ref, ["quizAnalysis", "itemAnalyses", "fetchInProgress", "generationInProgress", "analysisError", "setQuizAnalysis", "setItemAnalyses", "setFetchInProgress", "setGenerationInProgress", "setAnalysisError", "activeQuizId", "fetchQuizAnalysis", "fetchItemAnalyses", "generateReport"]);
25
+ passThroughProps = _objectWithoutProperties(_ref, ["quizAnalysis", "itemAnalyses", "fetchInProgress", "generationInProgress", "analysisError", "setQuizAnalysis", "addError", "setItemAnalyses", "setFetchInProgress", "setGenerationInProgress", "setAnalysisError", "activeQuizId", "generateReport", "fetchQuizAnalysis", "fetchItemAnalyses"]);
24
26
 
25
27
  WithAnalysisStatePresenter.displayName = "WithAnalysisStatePresenter(".concat(OriginalComponent.displayName || OriginalComponent.name, ")");
28
+ var reportFetchingConfig = {
29
+ activeQuizId: activeQuizId,
30
+ addError: addError,
31
+ fetchQuizAnalysis: fetchQuizAnalysis,
32
+ fetchItemAnalyses: fetchItemAnalyses,
33
+ setAnalysisError: setAnalysisError,
34
+ setItemAnalyses: setItemAnalyses,
35
+ setGenerationInProgress: setGenerationInProgress,
36
+ setFetchInProgress: setFetchInProgress,
37
+ setQuizAnalysis: setQuizAnalysis
38
+ };
26
39
 
27
- function fetchReports() {
28
- return _fetchReports.apply(this, arguments);
40
+ function generateReports() {
41
+ return _generateReports.apply(this, arguments);
29
42
  }
30
43
 
31
- function _fetchReports() {
32
- _fetchReports = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
44
+ function _generateReports() {
45
+ _generateReports = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
33
46
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
34
47
  while (1) {
35
48
  switch (_context2.prev = _context2.next) {
36
49
  case 0:
37
- _context2.next = 2;
38
- return queryQuizAnalysis();
39
-
40
- case 2:
41
- _context2.next = 4;
42
- return queryItemAnalyses();
43
-
44
- case 4:
45
50
  case "end":
46
51
  return _context2.stop();
47
52
  }
48
53
  }
49
54
  }, _callee2);
50
55
  }));
51
- return _fetchReports.apply(this, arguments);
52
- }
53
-
54
- function queryQuizAnalysis() {
55
- return _queryQuizAnalysis.apply(this, arguments);
56
- }
57
-
58
- function _queryQuizAnalysis() {
59
- _queryQuizAnalysis = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
60
- var response;
61
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
62
- while (1) {
63
- switch (_context3.prev = _context3.next) {
64
- case 0:
65
- _context3.next = 2;
66
- return fetchQuizAnalysis(activeQuizId);
67
-
68
- case 2:
69
- response = _context3.sent;
70
-
71
- if (response) {
72
- setQuizAnalysis(response.last_successful_analysis);
73
- }
74
-
75
- case 4:
76
- case "end":
77
- return _context3.stop();
78
- }
79
- }
80
- }, _callee3);
81
- }));
82
- return _queryQuizAnalysis.apply(this, arguments);
83
- }
84
-
85
- function queryItemAnalyses() {
86
- return _queryItemAnalyses.apply(this, arguments);
87
- }
88
-
89
- function _queryItemAnalyses() {
90
- _queryItemAnalyses = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
91
- var response;
92
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
93
- while (1) {
94
- switch (_context4.prev = _context4.next) {
95
- case 0:
96
- _context4.next = 2;
97
- return fetchItemAnalyses(activeQuizId);
98
-
99
- case 2:
100
- response = _context4.sent;
101
-
102
- if (response) {
103
- setItemAnalyses(response.last_successful_analysis);
104
- }
105
-
106
- case 4:
107
- case "end":
108
- return _context4.stop();
109
- }
110
- }
111
- }, _callee4);
112
- }));
113
- return _queryItemAnalyses.apply(this, arguments);
114
- }
115
-
116
- function generateReports() {
117
- return _generateReports.apply(this, arguments);
118
- }
119
-
120
- function _generateReports() {
121
- _generateReports = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
122
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
123
- while (1) {
124
- switch (_context5.prev = _context5.next) {
125
- case 0:
126
- case "end":
127
- return _context5.stop();
128
- }
129
- }
130
- }, _callee5);
131
- }));
132
56
  return _generateReports.apply(this, arguments);
133
57
  }
134
58
 
@@ -148,7 +72,7 @@ export var withAnalysisStatePresenter = function withAnalysisStatePresenter(Orig
148
72
  }
149
73
 
150
74
  _context.next = 4;
151
- return fetchReports();
75
+ return fetchReports(reportFetchingConfig);
152
76
 
153
77
  case 4:
154
78
  case "end":
@@ -189,6 +113,7 @@ export var withAnalysisStatePresenter = function withAnalysisStatePresenter(Orig
189
113
  activeQuizId: PropTypes.string.isRequired,
190
114
  fetchQuizAnalysis: PropTypes.func.isRequired,
191
115
  fetchItemAnalyses: PropTypes.func.isRequired,
116
+ addError: PropTypes.func.isRequired,
192
117
  // can be required after passed from LTI
193
118
  generateReport: PropTypes.func
194
119
  };
@@ -44,16 +44,16 @@ var _propTypes = require("../propTypes.js");
44
44
  var _dec, _class, _class2, _temp;
45
45
 
46
46
  var styles = {
47
- componentId: 'ePPpE',
47
+ componentId: 'bnEXV',
48
48
  template: function template(theme) {
49
- return "\n\n.ePPpE_eDnN{display:flex;justify-content:space-between;padding-bottom:".concat(theme.headingPadding || 'inherit', "}\n\n.ePPpE_eKXQ{padding:").concat(theme.cardWrapperPadding || 'inherit', ";position:relative}\n\n.ePPpE_crZr{padding-top:").concat(theme.metricGroupPaddingTop || 'inherit', "}\n\n.ePPpE_bTHH{position:absolute;right:").concat(theme.viewPadding || 'inherit', ";top:").concat(theme.viewPadding || 'inherit', "}\n\n.ePPpE_dPzc,.ePPpE_cpZE{column-gap:").concat(theme.metricsColumnGap || 'inherit', ";display:flex;flex-wrap:wrap;justify-content:flex-start;row-gap:1.5rem}\n\n.ePPpE_dPzc{margin-left:-8px}");
49
+ return "\n\n.bnEXV_eDnN{display:flex;justify-content:space-between;padding-bottom:".concat(theme.headingPadding || 'inherit', "}\n\n.bnEXV_eKXQ{padding:").concat(theme.cardWrapperPadding || 'inherit', ";position:relative}\n\n.bnEXV_crZr{padding-top:").concat(theme.metricGroupPaddingTop || 'inherit', "}\n\n.bnEXV_bTHH{position:absolute;right:").concat(theme.viewPadding || 'inherit', ";top:").concat(theme.viewPadding || 'inherit', "}\n\n.bnEXV_dPzc,.bnEXV_cpZE{column-gap:").concat(theme.metricsColumnGap || 'inherit', ";display:flex;flex-wrap:wrap;justify-content:flex-start;row-gap:1.5rem}");
50
50
  },
51
- 'heading': 'ePPpE_eDnN',
52
- 'cardWrapper': 'ePPpE_eKXQ',
53
- 'container': 'ePPpE_crZr',
54
- 'expandButtonContainer': 'ePPpE_bTHH',
55
- 'metricGroup': 'ePPpE_dPzc',
56
- 'metricsWrapper': 'ePPpE_cpZE'
51
+ 'heading': 'bnEXV_eDnN',
52
+ 'cardWrapper': 'bnEXV_eKXQ',
53
+ 'container': 'bnEXV_crZr',
54
+ 'expandButtonContainer': 'bnEXV_bTHH',
55
+ 'metricGroup': 'bnEXV_dPzc',
56
+ 'metricsWrapper': 'bnEXV_cpZE'
57
57
  };
58
58
  var stdDevPopoverTexts = {
59
59
  title: 'Lorem ipsum ',
@@ -98,12 +98,7 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
98
98
  className: styles.container
99
99
  }, /*#__PURE__*/_react.default.createElement("div", {
100
100
  className: styles.metricGroup
101
- }, /*#__PURE__*/_react.default.createElement(_index4.default, {
102
- metricKey: "median_percentage",
103
- label: (0, _formatMessage.default)('Median Score'),
104
- value: _formatMessage.default.number(scores === null || scores === void 0 ? void 0 : scores.median_percentage),
105
- suffix: "%"
106
- }), /*#__PURE__*/_react.default.createElement(_index3.default, {
101
+ }, /*#__PURE__*/_react.default.createElement(_index3.default, {
107
102
  metricKey: "stddev",
108
103
  value: _formatMessage.default.number(scores === null || scores === void 0 ? void 0 : scores.stddev),
109
104
  label: (0, _formatMessage.default)('Standard Deviation'),
@@ -156,9 +151,10 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
156
151
  })), /*#__PURE__*/_react.default.createElement("div", {
157
152
  className: styles.metricsWrapper
158
153
  }, /*#__PURE__*/_react.default.createElement(_index4.default, {
159
- metricKey: "average_attempts",
160
- label: (0, _formatMessage.default)('average attempts'),
161
- value: _formatMessage.default.number(attempts === null || attempts === void 0 ? void 0 : attempts.average_attempts)
154
+ metricKey: "median_percentage",
155
+ label: (0, _formatMessage.default)('Median Score'),
156
+ value: _formatMessage.default.number(scores === null || scores === void 0 ? void 0 : scores.median_percentage),
157
+ suffix: "%"
162
158
  }), /*#__PURE__*/_react.default.createElement(_index4.default, {
163
159
  metricKey: "mean_elapsed_sec",
164
160
  label: (0, _formatMessage.default)('mean elapsed time'),
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getLastReportGenerationFailed = exports.getFailedToFetchReports = void 0;
9
+
10
+ var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
11
+
12
+ var getFailedToFetchReports = function getFailedToFetchReports() {
13
+ return (0, _formatMessage.default)('An error has occurred while loading this report. Please try again.');
14
+ };
15
+
16
+ exports.getFailedToFetchReports = getFailedToFetchReports;
17
+
18
+ var getLastReportGenerationFailed = function getLastReportGenerationFailed() {
19
+ return (0, _formatMessage.default)('Report generation failed. Please try again.');
20
+ };
21
+
22
+ exports.getLastReportGenerationFailed = getLastReportGenerationFailed;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.fetchReports = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
16
+ var _errorMessages = require("./errorMessages.js");
17
+
18
+ var fetchReports = /*#__PURE__*/function () {
19
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {
20
+ var activeQuizId, setFetchInProgress, setQuizAnalysis, setItemAnalyses, setAnalysisError, setGenerationInProgress, addError, fetchQuizAnalysis, fetchItemAnalyses, _yield$Promise$all, _yield$Promise$all2, quizAnalysis, itemAnalyses;
21
+
22
+ return _regenerator.default.wrap(function _callee$(_context) {
23
+ while (1) {
24
+ switch (_context.prev = _context.next) {
25
+ case 0:
26
+ activeQuizId = _ref.activeQuizId, setFetchInProgress = _ref.setFetchInProgress, setQuizAnalysis = _ref.setQuizAnalysis, setItemAnalyses = _ref.setItemAnalyses, setAnalysisError = _ref.setAnalysisError, setGenerationInProgress = _ref.setGenerationInProgress, addError = _ref.addError, fetchQuizAnalysis = _ref.fetchQuizAnalysis, fetchItemAnalyses = _ref.fetchItemAnalyses;
27
+ _context.prev = 1;
28
+ setFetchInProgress(true);
29
+ _context.next = 5;
30
+ return Promise.all([fetchQuizAnalysis(activeQuizId), fetchItemAnalyses(activeQuizId)]);
31
+
32
+ case 5:
33
+ _yield$Promise$all = _context.sent;
34
+ _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 2);
35
+ quizAnalysis = _yield$Promise$all2[0];
36
+ itemAnalyses = _yield$Promise$all2[1];
37
+ setQuizAnalysis(quizAnalysis.last_successful_analysis);
38
+ setItemAnalyses(itemAnalyses.last_successful_analysis);
39
+ setGenerationInProgress(quizAnalysis.new_analysis_in_progress || itemAnalyses.new_analysis_in_progress);
40
+
41
+ if (quizAnalysis.last_analysis_failed || itemAnalyses.last_analysis_failed) {
42
+ setAnalysisError((0, _errorMessages.getLastReportGenerationFailed)());
43
+ }
44
+
45
+ _context.next = 18;
46
+ break;
47
+
48
+ case 15:
49
+ _context.prev = 15;
50
+ _context.t0 = _context["catch"](1);
51
+ addError((0, _errorMessages.getFailedToFetchReports)());
52
+
53
+ case 18:
54
+ _context.prev = 18;
55
+ setFetchInProgress(false);
56
+ return _context.finish(18);
57
+
58
+ case 21:
59
+ case "end":
60
+ return _context.stop();
61
+ }
62
+ }
63
+ }, _callee, null, [[1, 15, 18, 21]]);
64
+ }));
65
+
66
+ return function fetchReports(_x) {
67
+ return _ref2.apply(this, arguments);
68
+ };
69
+ }();
70
+
71
+ exports.fetchReports = fetchReports;
@@ -42,7 +42,7 @@ var itemAnalysisPropType = _propTypes.default.shape({
42
42
  metadata: _propTypes.default.shape({
43
43
  interaction_type: _propTypes.default.string,
44
44
  item_body: _propTypes.default.string,
45
- item_id: _propTypes.default.string,
45
+ item_id: _propTypes.default.number,
46
46
  item_title: _propTypes.default.string
47
47
  }),
48
48
  scores: _propTypes.default.shape({
@@ -12,23 +12,28 @@ var _analyses = require("../../../../common/selectors/analyses.js");
12
12
 
13
13
  var _analyses2 = require("../../../../common/actions/analyses.js");
14
14
 
15
- var _newQuizAnalysis = require("../../../api/newQuizAnalysis.js");
15
+ var _getQuizAnalysis = require("../../../api/getQuizAnalysis.js");
16
16
 
17
- var _newItemAnalyses = require("../../../api/newItemAnalyses.js");
17
+ var _getItemAnalyses = require("../../../api/getItemAnalyses.js");
18
18
 
19
19
  var _reactRedux = require("../../../../common/react-redux.js");
20
20
 
21
21
  var _redux = require("redux");
22
22
 
23
- function mapStateToProps(state) {
23
+ var _quizzes = require("../../../../common/selectors/quizzes.js");
24
+
25
+ var _alerts = require("../../../../common/actions/alerts.js");
26
+
27
+ function mapStateToProps(state, ownProps) {
24
28
  return {
25
29
  quizAnalysis: (0, _analyses.getQuizAnalysis)(state),
26
30
  itemAnalyses: (0, _analyses.getItemAnalyses)(state),
27
31
  fetchInProgress: (0, _analyses.getFetchInProgress)(state),
28
32
  generationInProgress: (0, _analyses.getGenerationInProgress)(state),
29
33
  analysisError: (0, _analyses.getAnalysisError)(state),
30
- fetchQuizAnalysis: _newQuizAnalysis.getQuizAnalysis,
31
- fetchItemAnalyses: _newItemAnalyses.getItemAnalyses
34
+ activeQuizId: ownProps.activeQuizId || (0, _quizzes.getActiveQuizId)(state),
35
+ fetchQuizAnalysis: _getQuizAnalysis.getQuizAnalysis,
36
+ fetchItemAnalyses: _getItemAnalyses.getItemAnalyses
32
37
  };
33
38
  }
34
39
 
@@ -37,7 +42,8 @@ var mapDispatchToProps = {
37
42
  setItemAnalyses: _analyses2.setItemAnalyses,
38
43
  setFetchInProgress: _analyses2.setFetchInProgress,
39
44
  setGenerationInProgress: _analyses2.setGenerationInProgress,
40
- setAnalysisError: _analyses2.setAnalysisError
45
+ setAnalysisError: _analyses2.setAnalysisError,
46
+ addError: _alerts.addError
41
47
  };
42
48
  var withAnalysisState = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), _withAnalysisStatePresenter.withAnalysisStatePresenter);
43
49
  exports.withAnalysisState = withAnalysisState;
@@ -21,6 +21,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
21
21
 
22
22
  var _propTypes2 = require("./propTypes.js");
23
23
 
24
+ var _fetchReports = require("./fetchReports.js");
25
+
24
26
  var withAnalysisStatePresenter = function withAnalysisStatePresenter(OriginalComponent) {
25
27
  var WithAnalysisStatePresenter = function WithAnalysisStatePresenter(_ref) {
26
28
  var quizAnalysis = _ref.quizAnalysis,
@@ -29,122 +31,45 @@ var withAnalysisStatePresenter = function withAnalysisStatePresenter(OriginalCom
29
31
  generationInProgress = _ref.generationInProgress,
30
32
  analysisError = _ref.analysisError,
31
33
  setQuizAnalysis = _ref.setQuizAnalysis,
34
+ addError = _ref.addError,
32
35
  setItemAnalyses = _ref.setItemAnalyses,
33
36
  setFetchInProgress = _ref.setFetchInProgress,
34
37
  setGenerationInProgress = _ref.setGenerationInProgress,
35
38
  setAnalysisError = _ref.setAnalysisError,
36
39
  activeQuizId = _ref.activeQuizId,
40
+ generateReport = _ref.generateReport,
37
41
  fetchQuizAnalysis = _ref.fetchQuizAnalysis,
38
42
  fetchItemAnalyses = _ref.fetchItemAnalyses,
39
- generateReport = _ref.generateReport,
40
- passThroughProps = (0, _objectWithoutProperties2.default)(_ref, ["quizAnalysis", "itemAnalyses", "fetchInProgress", "generationInProgress", "analysisError", "setQuizAnalysis", "setItemAnalyses", "setFetchInProgress", "setGenerationInProgress", "setAnalysisError", "activeQuizId", "fetchQuizAnalysis", "fetchItemAnalyses", "generateReport"]);
43
+ passThroughProps = (0, _objectWithoutProperties2.default)(_ref, ["quizAnalysis", "itemAnalyses", "fetchInProgress", "generationInProgress", "analysisError", "setQuizAnalysis", "addError", "setItemAnalyses", "setFetchInProgress", "setGenerationInProgress", "setAnalysisError", "activeQuizId", "generateReport", "fetchQuizAnalysis", "fetchItemAnalyses"]);
41
44
  WithAnalysisStatePresenter.displayName = "WithAnalysisStatePresenter(".concat(OriginalComponent.displayName || OriginalComponent.name, ")");
45
+ var reportFetchingConfig = {
46
+ activeQuizId: activeQuizId,
47
+ addError: addError,
48
+ fetchQuizAnalysis: fetchQuizAnalysis,
49
+ fetchItemAnalyses: fetchItemAnalyses,
50
+ setAnalysisError: setAnalysisError,
51
+ setItemAnalyses: setItemAnalyses,
52
+ setGenerationInProgress: setGenerationInProgress,
53
+ setFetchInProgress: setFetchInProgress,
54
+ setQuizAnalysis: setQuizAnalysis
55
+ };
42
56
 
43
- function fetchReports() {
44
- return _fetchReports.apply(this, arguments);
57
+ function generateReports() {
58
+ return _generateReports.apply(this, arguments);
45
59
  }
46
60
 
47
- function _fetchReports() {
48
- _fetchReports = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
61
+ function _generateReports() {
62
+ _generateReports = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
49
63
  return _regenerator.default.wrap(function _callee2$(_context2) {
50
64
  while (1) {
51
65
  switch (_context2.prev = _context2.next) {
52
66
  case 0:
53
- _context2.next = 2;
54
- return queryQuizAnalysis();
55
-
56
- case 2:
57
- _context2.next = 4;
58
- return queryItemAnalyses();
59
-
60
- case 4:
61
67
  case "end":
62
68
  return _context2.stop();
63
69
  }
64
70
  }
65
71
  }, _callee2);
66
72
  }));
67
- return _fetchReports.apply(this, arguments);
68
- }
69
-
70
- function queryQuizAnalysis() {
71
- return _queryQuizAnalysis.apply(this, arguments);
72
- }
73
-
74
- function _queryQuizAnalysis() {
75
- _queryQuizAnalysis = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
76
- var response;
77
- return _regenerator.default.wrap(function _callee3$(_context3) {
78
- while (1) {
79
- switch (_context3.prev = _context3.next) {
80
- case 0:
81
- _context3.next = 2;
82
- return fetchQuizAnalysis(activeQuizId);
83
-
84
- case 2:
85
- response = _context3.sent;
86
-
87
- if (response) {
88
- setQuizAnalysis(response.last_successful_analysis);
89
- }
90
-
91
- case 4:
92
- case "end":
93
- return _context3.stop();
94
- }
95
- }
96
- }, _callee3);
97
- }));
98
- return _queryQuizAnalysis.apply(this, arguments);
99
- }
100
-
101
- function queryItemAnalyses() {
102
- return _queryItemAnalyses.apply(this, arguments);
103
- }
104
-
105
- function _queryItemAnalyses() {
106
- _queryItemAnalyses = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
107
- var response;
108
- return _regenerator.default.wrap(function _callee4$(_context4) {
109
- while (1) {
110
- switch (_context4.prev = _context4.next) {
111
- case 0:
112
- _context4.next = 2;
113
- return fetchItemAnalyses(activeQuizId);
114
-
115
- case 2:
116
- response = _context4.sent;
117
-
118
- if (response) {
119
- setItemAnalyses(response.last_successful_analysis);
120
- }
121
-
122
- case 4:
123
- case "end":
124
- return _context4.stop();
125
- }
126
- }
127
- }, _callee4);
128
- }));
129
- return _queryItemAnalyses.apply(this, arguments);
130
- }
131
-
132
- function generateReports() {
133
- return _generateReports.apply(this, arguments);
134
- }
135
-
136
- function _generateReports() {
137
- _generateReports = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
138
- return _regenerator.default.wrap(function _callee5$(_context5) {
139
- while (1) {
140
- switch (_context5.prev = _context5.next) {
141
- case 0:
142
- case "end":
143
- return _context5.stop();
144
- }
145
- }
146
- }, _callee5);
147
- }));
148
73
  return _generateReports.apply(this, arguments);
149
74
  }
150
75
 
@@ -164,7 +89,7 @@ var withAnalysisStatePresenter = function withAnalysisStatePresenter(OriginalCom
164
89
  }
165
90
 
166
91
  _context.next = 4;
167
- return fetchReports();
92
+ return (0, _fetchReports.fetchReports)(reportFetchingConfig);
168
93
 
169
94
  case 4:
170
95
  case "end":
@@ -205,6 +130,7 @@ var withAnalysisStatePresenter = function withAnalysisStatePresenter(OriginalCom
205
130
  activeQuizId: _propTypes.default.string.isRequired,
206
131
  fetchQuizAnalysis: _propTypes.default.func.isRequired,
207
132
  fetchItemAnalyses: _propTypes.default.func.isRequired,
133
+ addError: _propTypes.default.func.isRequired,
208
134
  // can be required after passed from LTI
209
135
  generateReport: _propTypes.default.func
210
136
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/quiz-core",
3
- "version": "17.63.0",
3
+ "version": "17.63.1-rc.1+70beebd5f",
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.9",
44
- "@instructure/quiz-common": "^17.63.0",
45
- "@instructure/quiz-i18n": "^17.63.0",
46
- "@instructure/quiz-interactions": "^17.63.0",
47
- "@instructure/quiz-number-input": "^17.63.0",
48
- "@instructure/quiz-rce": "^17.63.0",
44
+ "@instructure/quiz-common": "17.63.1-rc.1+70beebd5f",
45
+ "@instructure/quiz-i18n": "17.63.1-rc.1+70beebd5f",
46
+ "@instructure/quiz-interactions": "17.63.1-rc.1+70beebd5f",
47
+ "@instructure/quiz-number-input": "17.63.1-rc.1+70beebd5f",
48
+ "@instructure/quiz-rce": "17.63.1-rc.1+70beebd5f",
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": "^17.63.0",
109
+ "instructure-validations": "17.63.1-rc.1+70beebd5f",
110
110
  "ipaddr.js": "^1.5.4",
111
111
  "isomorphic-fetch": "^2.2.0",
112
112
  "isuuid": "^0.1.0",
@@ -138,7 +138,7 @@
138
138
  "uuid": "^3.2.1"
139
139
  },
140
140
  "devDependencies": {
141
- "@instructure/quiz-scripts": "^17.63.0",
141
+ "@instructure/quiz-scripts": "17.63.0",
142
142
  "@instructure/ui-axe-check": "^7.20.0",
143
143
  "@instructure/ui-babel-preset": "^7.20.0",
144
144
  "@instructure/ui-karma-config": "^7.20.0",
@@ -157,7 +157,7 @@
157
157
  "intl": "^1.2.4",
158
158
  "jquery": "^2.2.3",
159
159
  "most-subject": "^5.3.0",
160
- "quiz-presets": "^17.63.0",
160
+ "quiz-presets": "17.63.1-rc.1+70beebd5f",
161
161
  "react": "^16.8.6",
162
162
  "react-addons-test-utils": "^15.6.2",
163
163
  "react-dom": "^16.8.6",
@@ -173,5 +173,5 @@
173
173
  "publishConfig": {
174
174
  "access": "public"
175
175
  },
176
- "gitHead": "7ce65d5c565e9c6352dbf22c9c2107f99741e82b"
176
+ "gitHead": "70beebd5f9c207e03df9942938452b5389ef3881"
177
177
  }