@elice/material-quiz 1.250514.0 → 1.250521.0
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/cjs/components/material-quiz/MaterialQuizImage.js +102 -30
- package/cjs/components/material-quiz/MaterialQuizSelectMultiple.js +160 -72
- package/cjs/components/material-quiz/MaterialQuizSelectMultipleOrder.js +235 -143
- package/cjs/components/material-quiz/MaterialQuizSelectOne.js +154 -66
- package/cjs/components/material-quiz/MaterialQuizText.js +154 -63
- package/cjs/components/material-quiz/context/MaterialQuizContext.d.ts +1 -0
- package/cjs/components/material-quiz/context/MaterialQuizContext.js +33 -26
- package/cjs/components/material-quiz/locales/en.json.js +1 -1
- package/cjs/components/material-quiz/locales/ja.json.js +1 -1
- package/cjs/components/material-quiz/locales/ko.json.js +1 -1
- package/cjs/components/material-quiz/locales/th.json.js +1 -1
- package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +125 -35
- package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.d.ts +1 -1
- package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.d.ts +1 -1
- package/cjs/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +3 -3
- package/es/components/material-quiz/MaterialQuizImage.js +103 -31
- package/es/components/material-quiz/MaterialQuizSelectMultiple.js +161 -73
- package/es/components/material-quiz/MaterialQuizSelectMultipleOrder.js +236 -144
- package/es/components/material-quiz/MaterialQuizSelectOne.js +155 -67
- package/es/components/material-quiz/MaterialQuizText.js +155 -64
- package/es/components/material-quiz/context/MaterialQuizContext.d.ts +1 -0
- package/es/components/material-quiz/context/MaterialQuizContext.js +33 -26
- package/es/components/material-quiz/locales/en.json.js +1 -1
- package/es/components/material-quiz/locales/ja.json.js +1 -1
- package/es/components/material-quiz/locales/ko.json.js +1 -1
- package/es/components/material-quiz/locales/th.json.js +1 -1
- package/es/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +126 -36
- package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.d.ts +1 -1
- package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.d.ts +1 -1
- package/es/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +3 -3
- package/package.json +3 -3
|
@@ -10,6 +10,7 @@ var apiClient = require('@elice/api-client');
|
|
|
10
10
|
var designTokens = require('@elice/design-tokens');
|
|
11
11
|
var fileClient = require('@elice/file-client');
|
|
12
12
|
var intl = require('@elice/intl');
|
|
13
|
+
var types = require('@elice/types');
|
|
13
14
|
var material = require('@mui/material');
|
|
14
15
|
var reactQuery = require('@tanstack/react-query');
|
|
15
16
|
var index = require('../../helpers/index.js');
|
|
@@ -43,7 +44,8 @@ var MaterialQuizImage = function MaterialQuizImage(_ref) {
|
|
|
43
44
|
var _useMaterialQuizState = MaterialQuizContext.useMaterialQuizState(),
|
|
44
45
|
lecture = _useMaterialQuizState.lecture,
|
|
45
46
|
materialQuiz = _useMaterialQuizState.materialQuiz,
|
|
46
|
-
userId = _useMaterialQuizState.userId
|
|
47
|
+
userId = _useMaterialQuizState.userId,
|
|
48
|
+
userRole = _useMaterialQuizState.userRole;
|
|
47
49
|
var _useMaterialQuizDispa = MaterialQuizContext.useMaterialQuizDispatch(),
|
|
48
50
|
onSubmit = _useMaterialQuizDispa.onSubmit,
|
|
49
51
|
onNext = _useMaterialQuizDispa.onNext,
|
|
@@ -203,20 +205,6 @@ var MaterialQuizImage = function MaterialQuizImage(_ref) {
|
|
|
203
205
|
return _ref3.apply(this, arguments);
|
|
204
206
|
};
|
|
205
207
|
}();
|
|
206
|
-
//
|
|
207
|
-
//
|
|
208
|
-
//
|
|
209
|
-
reactUse.useMount(function () {
|
|
210
|
-
setIsInitialLoading(false);
|
|
211
|
-
});
|
|
212
|
-
//
|
|
213
|
-
//
|
|
214
|
-
//
|
|
215
|
-
React__default.default.useEffect(function () {
|
|
216
|
-
if (materialQuizResponse === null || materialQuizResponse === void 0 ? void 0 : materialQuizResponse.resourceId) {
|
|
217
|
-
setUploadResourceId(materialQuizResponse === null || materialQuizResponse === void 0 ? void 0 : materialQuizResponse.resourceId);
|
|
218
|
-
}
|
|
219
|
-
}, [materialQuizResponse === null || materialQuizResponse === void 0 ? void 0 : materialQuizResponse.resourceId]);
|
|
220
208
|
/**
|
|
221
209
|
*
|
|
222
210
|
*/
|
|
@@ -267,6 +255,104 @@ var MaterialQuizImage = function MaterialQuizImage(_ref) {
|
|
|
267
255
|
}
|
|
268
256
|
return renderResourceIdController();
|
|
269
257
|
};
|
|
258
|
+
/**
|
|
259
|
+
*
|
|
260
|
+
*/
|
|
261
|
+
var handleReset = /*#__PURE__*/function () {
|
|
262
|
+
var _ref4 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee3() {
|
|
263
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
264
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
265
|
+
case 0:
|
|
266
|
+
if (materialQuiz) {
|
|
267
|
+
_context3.next = 2;
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
return _context3.abrupt("return");
|
|
271
|
+
case 2:
|
|
272
|
+
setSubmitStatus('pending');
|
|
273
|
+
_context3.prev = 3;
|
|
274
|
+
_context3.next = 6;
|
|
275
|
+
return apiClient.getOrgMaterialQuizResponseReset({
|
|
276
|
+
materialQuizId: materialQuiz.id
|
|
277
|
+
});
|
|
278
|
+
case 6:
|
|
279
|
+
setUploadResourceId(null);
|
|
280
|
+
setHasSubmitted(false);
|
|
281
|
+
void refreshOrgMaterialQuiz();
|
|
282
|
+
setSubmitStatus('resolved');
|
|
283
|
+
_context3.next = 16;
|
|
284
|
+
break;
|
|
285
|
+
case 12:
|
|
286
|
+
_context3.prev = 12;
|
|
287
|
+
_context3.t0 = _context3["catch"](3);
|
|
288
|
+
console.error(_context3.t0);
|
|
289
|
+
setSubmitStatus('rejected');
|
|
290
|
+
case 16:
|
|
291
|
+
case "end":
|
|
292
|
+
return _context3.stop();
|
|
293
|
+
}
|
|
294
|
+
}, _callee3, null, [[3, 12]]);
|
|
295
|
+
}));
|
|
296
|
+
return function handleReset() {
|
|
297
|
+
return _ref4.apply(this, arguments);
|
|
298
|
+
};
|
|
299
|
+
}();
|
|
300
|
+
/**
|
|
301
|
+
*
|
|
302
|
+
*/
|
|
303
|
+
var getFooterActions = function getFooterActions() {
|
|
304
|
+
var actions = [];
|
|
305
|
+
var userAboveHeadTA = userRole && userRole >= types.enums.CourseRole.HeadTA;
|
|
306
|
+
// reset button
|
|
307
|
+
if (userAboveHeadTA && materialQuizResponse) {
|
|
308
|
+
actions.push({
|
|
309
|
+
border: false,
|
|
310
|
+
children: intl$1.formatMessage({
|
|
311
|
+
id: 'materialQuiz.reset'
|
|
312
|
+
}),
|
|
313
|
+
disabled: isDisabled,
|
|
314
|
+
loading: submitStatus === 'pending',
|
|
315
|
+
tabIndex: 0,
|
|
316
|
+
transparent: false,
|
|
317
|
+
onClick: handleReset,
|
|
318
|
+
customStyles: {
|
|
319
|
+
backgroundColor: theme.palette.secondary.main,
|
|
320
|
+
color: theme.palette.secondary.contrastText
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
// submit button
|
|
325
|
+
actions.push({
|
|
326
|
+
border: false,
|
|
327
|
+
children: intl$1.formatMessage({
|
|
328
|
+
id: 'materialQuiz.submit'
|
|
329
|
+
}),
|
|
330
|
+
disabled: isDisabled,
|
|
331
|
+
loading: submitStatus === 'pending',
|
|
332
|
+
tabIndex: 0,
|
|
333
|
+
transparent: false,
|
|
334
|
+
onClick: handleSubmit,
|
|
335
|
+
customStyles: {
|
|
336
|
+
backgroundColor: isNextActive ? theme.palette.primary.main : isDisabled ? designTokens.base.color.gray6 : theme.palette.primary.main,
|
|
337
|
+
color: isNextActive ? theme.palette.primary.contrastText : isDisabled ? designTokens.base.color.gray3 : theme.palette.primary.contrastText
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
return actions;
|
|
341
|
+
};
|
|
342
|
+
//
|
|
343
|
+
//
|
|
344
|
+
//
|
|
345
|
+
reactUse.useMount(function () {
|
|
346
|
+
setIsInitialLoading(false);
|
|
347
|
+
});
|
|
348
|
+
//
|
|
349
|
+
//
|
|
350
|
+
//
|
|
351
|
+
React__default.default.useEffect(function () {
|
|
352
|
+
if (materialQuizResponse === null || materialQuizResponse === void 0 ? void 0 : materialQuizResponse.resourceId) {
|
|
353
|
+
setUploadResourceId(materialQuizResponse === null || materialQuizResponse === void 0 ? void 0 : materialQuizResponse.resourceId);
|
|
354
|
+
}
|
|
355
|
+
}, [materialQuizResponse === null || materialQuizResponse === void 0 ? void 0 : materialQuizResponse.resourceId]);
|
|
270
356
|
//
|
|
271
357
|
//
|
|
272
358
|
//
|
|
@@ -283,21 +369,7 @@ var MaterialQuizImage = function MaterialQuizImage(_ref) {
|
|
|
283
369
|
isNextActive: isNextActive,
|
|
284
370
|
materialQuizResponse: materialQuizResponse,
|
|
285
371
|
onHint: onHint,
|
|
286
|
-
footerActions:
|
|
287
|
-
border: false,
|
|
288
|
-
children: intl$1.formatMessage({
|
|
289
|
-
id: 'materialQuiz.submit'
|
|
290
|
-
}),
|
|
291
|
-
disabled: isDisabled,
|
|
292
|
-
loading: submitStatus === 'pending',
|
|
293
|
-
tabIndex: 0,
|
|
294
|
-
transparent: false,
|
|
295
|
-
onClick: handleSubmit,
|
|
296
|
-
customStyles: {
|
|
297
|
-
backgroundColor: isNextActive ? theme.palette.primary.main : isDisabled ? designTokens.base.color.gray6 : theme.palette.primary.main,
|
|
298
|
-
color: isNextActive ? theme.palette.primary.contrastText : isDisabled ? designTokens.base.color.gray3 : theme.palette.primary.contrastText
|
|
299
|
-
}
|
|
300
|
-
}],
|
|
372
|
+
footerActions: getFooterActions(),
|
|
301
373
|
children: jsxRuntime.jsxs(material.Stack, {
|
|
302
374
|
height: "100%",
|
|
303
375
|
gap: "1rem",
|
|
@@ -8,6 +8,7 @@ var React = require('react');
|
|
|
8
8
|
var apiClient = require('@elice/api-client');
|
|
9
9
|
var designTokens = require('@elice/design-tokens');
|
|
10
10
|
var intl = require('@elice/intl');
|
|
11
|
+
var types = require('@elice/types');
|
|
11
12
|
var material = require('@mui/material');
|
|
12
13
|
var element = require('../../constant/element.js');
|
|
13
14
|
var index = require('../../helpers/index.js');
|
|
@@ -32,6 +33,9 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
32
33
|
|
|
33
34
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
34
35
|
|
|
36
|
+
//
|
|
37
|
+
//
|
|
38
|
+
//
|
|
35
39
|
var MaterialQuizSelectMultiple = function MaterialQuizSelectMultiple(_ref) {
|
|
36
40
|
var hasInlinePassage = _ref.hasInlinePassage;
|
|
37
41
|
// context
|
|
@@ -39,7 +43,8 @@ var MaterialQuizSelectMultiple = function MaterialQuizSelectMultiple(_ref) {
|
|
|
39
43
|
course = _useMaterialQuizState.course,
|
|
40
44
|
lecture = _useMaterialQuizState.lecture,
|
|
41
45
|
materialQuiz = _useMaterialQuizState.materialQuiz,
|
|
42
|
-
userId = _useMaterialQuizState.userId
|
|
46
|
+
userId = _useMaterialQuizState.userId,
|
|
47
|
+
userRole = _useMaterialQuizState.userRole;
|
|
43
48
|
var _useMaterialQuizDispa = MaterialQuizContext.useMaterialQuizDispatch(),
|
|
44
49
|
onSubmit = _useMaterialQuizDispa.onSubmit,
|
|
45
50
|
onNext = _useMaterialQuizDispa.onNext,
|
|
@@ -75,7 +80,9 @@ var MaterialQuizSelectMultiple = function MaterialQuizSelectMultiple(_ref) {
|
|
|
75
80
|
setHasSubmitted = _React$useState10[1];
|
|
76
81
|
var isNextActive = hasSubmitted && typeof onNext === 'function';
|
|
77
82
|
var isDisabled = selectedAnswer.length === 0 || index.checkUserLectureTestEnded(lecture) || !!userId;
|
|
78
|
-
|
|
83
|
+
/**
|
|
84
|
+
* answer select handler
|
|
85
|
+
*/
|
|
79
86
|
var handleAnswerSelect = function handleAnswerSelect(index$1) {
|
|
80
87
|
if (index.checkUserLectureTestEnded(lecture) || !!userId) {
|
|
81
88
|
return;
|
|
@@ -90,61 +97,9 @@ var MaterialQuizSelectMultiple = function MaterialQuizSelectMultiple(_ref) {
|
|
|
90
97
|
return newState;
|
|
91
98
|
});
|
|
92
99
|
};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
var controller = new AbortController();
|
|
97
|
-
var signal = controller.signal;
|
|
98
|
-
apiClient.getOrgMaterialQuizResponseGet({
|
|
99
|
-
quizResponseId: materialQuiz.lastQuizResponseId
|
|
100
|
-
}, {
|
|
101
|
-
signal: signal
|
|
102
|
-
}).then(function (response) {
|
|
103
|
-
setMaterialQuizResponse(response.quizResponse);
|
|
104
|
-
// when user submitted answers and not get the result yet, update selected options (for example, test quiz)
|
|
105
|
-
// when is is a survey type quiz
|
|
106
|
-
if (!index.shouldResetOptions({
|
|
107
|
-
materialQuizResponse: response.quizResponse
|
|
108
|
-
})) {
|
|
109
|
-
setSelectedAnswer(response.quizResponse.answer);
|
|
110
|
-
}
|
|
111
|
-
setSelectedAnswer(response.quizResponse.answer);
|
|
112
|
-
}).catch(function (error) {
|
|
113
|
-
console.error(error);
|
|
114
|
-
});
|
|
115
|
-
return function () {
|
|
116
|
-
return controller.abort();
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
}, [materialQuiz, userId]);
|
|
120
|
-
// quiz response fetcher
|
|
121
|
-
React__default.default.useEffect(function () {
|
|
122
|
-
if (userId && materialQuiz) {
|
|
123
|
-
var controller = new AbortController();
|
|
124
|
-
var signal = controller.signal;
|
|
125
|
-
apiClient.getOrgMaterialQuizResponseList({
|
|
126
|
-
materialQuizId: materialQuiz.id,
|
|
127
|
-
filterUserIds: [userId],
|
|
128
|
-
isContainOnlyLast: true,
|
|
129
|
-
isIncludeAnswer: true,
|
|
130
|
-
offset: 0,
|
|
131
|
-
count: 1
|
|
132
|
-
}, {
|
|
133
|
-
signal: signal
|
|
134
|
-
}).then(function (response) {
|
|
135
|
-
var quizResponse = response.quizResponses[0];
|
|
136
|
-
var quizResponseAnswer = quizResponse === null || quizResponse === void 0 ? void 0 : quizResponse.answer;
|
|
137
|
-
setMaterialQuizResponse(quizResponse);
|
|
138
|
-
setSelectedAnswer(Array.isArray(quizResponseAnswer) ? quizResponseAnswer : []);
|
|
139
|
-
}).catch(function (error) {
|
|
140
|
-
console.error(error);
|
|
141
|
-
});
|
|
142
|
-
return function () {
|
|
143
|
-
return controller.abort();
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
}, [materialQuiz, userId]);
|
|
147
|
-
// submit handler
|
|
100
|
+
/**
|
|
101
|
+
* submit handler
|
|
102
|
+
*/
|
|
148
103
|
var handleSubmit = /*#__PURE__*/function () {
|
|
149
104
|
var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
|
|
150
105
|
var _yield$postOrgMateria, quizResponseId, _yield$getOrgMaterial, quizResponse;
|
|
@@ -199,6 +154,153 @@ var MaterialQuizSelectMultiple = function MaterialQuizSelectMultiple(_ref) {
|
|
|
199
154
|
return _ref2.apply(this, arguments);
|
|
200
155
|
};
|
|
201
156
|
}();
|
|
157
|
+
/**
|
|
158
|
+
*
|
|
159
|
+
*/
|
|
160
|
+
var handleReset = /*#__PURE__*/function () {
|
|
161
|
+
var _ref3 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee2() {
|
|
162
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
163
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
164
|
+
case 0:
|
|
165
|
+
if (materialQuiz) {
|
|
166
|
+
_context2.next = 2;
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
return _context2.abrupt("return");
|
|
170
|
+
case 2:
|
|
171
|
+
setSubmitStatus('pending');
|
|
172
|
+
_context2.prev = 3;
|
|
173
|
+
_context2.next = 6;
|
|
174
|
+
return apiClient.getOrgMaterialQuizResponseReset({
|
|
175
|
+
materialQuizId: materialQuiz.id
|
|
176
|
+
});
|
|
177
|
+
case 6:
|
|
178
|
+
setIsActive(false);
|
|
179
|
+
setSelectedAnswer([]);
|
|
180
|
+
setMaterialQuizResponse(undefined);
|
|
181
|
+
setHasSubmitted(false);
|
|
182
|
+
void refreshOrgMaterialQuiz();
|
|
183
|
+
setSubmitStatus('resolved');
|
|
184
|
+
_context2.next = 18;
|
|
185
|
+
break;
|
|
186
|
+
case 14:
|
|
187
|
+
_context2.prev = 14;
|
|
188
|
+
_context2.t0 = _context2["catch"](3);
|
|
189
|
+
console.error(_context2.t0);
|
|
190
|
+
setSubmitStatus('rejected');
|
|
191
|
+
case 18:
|
|
192
|
+
case "end":
|
|
193
|
+
return _context2.stop();
|
|
194
|
+
}
|
|
195
|
+
}, _callee2, null, [[3, 14]]);
|
|
196
|
+
}));
|
|
197
|
+
return function handleReset() {
|
|
198
|
+
return _ref3.apply(this, arguments);
|
|
199
|
+
};
|
|
200
|
+
}();
|
|
201
|
+
/**
|
|
202
|
+
*
|
|
203
|
+
*/
|
|
204
|
+
var getFooterActions = function getFooterActions() {
|
|
205
|
+
var actions = [];
|
|
206
|
+
var userAboveHeadTA = userRole && userRole >= types.enums.CourseRole.HeadTA;
|
|
207
|
+
// reset button
|
|
208
|
+
if (userAboveHeadTA && materialQuizResponse) {
|
|
209
|
+
actions.push({
|
|
210
|
+
border: false,
|
|
211
|
+
children: intl$1.formatMessage({
|
|
212
|
+
id: 'materialQuiz.reset'
|
|
213
|
+
}),
|
|
214
|
+
disabled: isDisabled,
|
|
215
|
+
loading: submitStatus === 'pending',
|
|
216
|
+
tabIndex: 0,
|
|
217
|
+
transparent: false,
|
|
218
|
+
onClick: handleReset,
|
|
219
|
+
customStyles: {
|
|
220
|
+
backgroundColor: theme.palette.secondary.main,
|
|
221
|
+
color: theme.palette.secondary.contrastText
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
// submit button
|
|
226
|
+
actions.push({
|
|
227
|
+
border: false,
|
|
228
|
+
disabled: isDisabled,
|
|
229
|
+
loading: submitStatus === 'pending',
|
|
230
|
+
tabIndex: 0,
|
|
231
|
+
transparent: false,
|
|
232
|
+
onClick: handleSubmit,
|
|
233
|
+
children: intl$1.formatMessage({
|
|
234
|
+
id: 'materialQuiz.submit'
|
|
235
|
+
}),
|
|
236
|
+
customStyles: {
|
|
237
|
+
backgroundColor: isNextActive ? theme.palette.primary.main : isDisabled ? designTokens.base.color.gray6 : theme.palette.primary.main,
|
|
238
|
+
color: isNextActive ? theme.palette.primary.contrastText : isDisabled ? designTokens.base.color.gray3 : theme.palette.primary.contrastText
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
return actions;
|
|
242
|
+
};
|
|
243
|
+
//
|
|
244
|
+
// quiz response fetcher
|
|
245
|
+
//
|
|
246
|
+
React__default.default.useEffect(function () {
|
|
247
|
+
if (!userId && (materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.lastQuizResponseId)) {
|
|
248
|
+
var controller = new AbortController();
|
|
249
|
+
var signal = controller.signal;
|
|
250
|
+
apiClient.getOrgMaterialQuizResponseGet({
|
|
251
|
+
quizResponseId: materialQuiz.lastQuizResponseId
|
|
252
|
+
}, {
|
|
253
|
+
signal: signal
|
|
254
|
+
}).then(function (response) {
|
|
255
|
+
setMaterialQuizResponse(response.quizResponse);
|
|
256
|
+
// when user submitted answers and not get the result yet, update selected options (for example, test quiz)
|
|
257
|
+
// when is is a survey type quiz
|
|
258
|
+
if (!index.shouldResetOptions({
|
|
259
|
+
materialQuizResponse: response.quizResponse
|
|
260
|
+
})) {
|
|
261
|
+
setSelectedAnswer(response.quizResponse.answer);
|
|
262
|
+
}
|
|
263
|
+
setSelectedAnswer(response.quizResponse.answer);
|
|
264
|
+
}).catch(function (error) {
|
|
265
|
+
console.error(error);
|
|
266
|
+
});
|
|
267
|
+
return function () {
|
|
268
|
+
return controller.abort();
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
}, [materialQuiz, userId]);
|
|
272
|
+
//
|
|
273
|
+
// quiz response fetcher
|
|
274
|
+
//
|
|
275
|
+
React__default.default.useEffect(function () {
|
|
276
|
+
if (userId && materialQuiz) {
|
|
277
|
+
var controller = new AbortController();
|
|
278
|
+
var signal = controller.signal;
|
|
279
|
+
apiClient.getOrgMaterialQuizResponseList({
|
|
280
|
+
materialQuizId: materialQuiz.id,
|
|
281
|
+
filterUserIds: [userId],
|
|
282
|
+
isContainOnlyLast: true,
|
|
283
|
+
isIncludeAnswer: true,
|
|
284
|
+
offset: 0,
|
|
285
|
+
count: 1
|
|
286
|
+
}, {
|
|
287
|
+
signal: signal
|
|
288
|
+
}).then(function (response) {
|
|
289
|
+
var quizResponse = response.quizResponses[0];
|
|
290
|
+
var quizResponseAnswer = quizResponse === null || quizResponse === void 0 ? void 0 : quizResponse.answer;
|
|
291
|
+
setMaterialQuizResponse(quizResponse);
|
|
292
|
+
setSelectedAnswer(Array.isArray(quizResponseAnswer) ? quizResponseAnswer : []);
|
|
293
|
+
}).catch(function (error) {
|
|
294
|
+
console.error(error);
|
|
295
|
+
});
|
|
296
|
+
return function () {
|
|
297
|
+
return controller.abort();
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
}, [materialQuiz, userId]);
|
|
301
|
+
//
|
|
302
|
+
//
|
|
303
|
+
//
|
|
202
304
|
return jsxRuntime.jsx(QuestionBox.default, {
|
|
203
305
|
title: materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.questionTitle,
|
|
204
306
|
titlePrefix: "Q.",
|
|
@@ -213,21 +315,7 @@ var MaterialQuizSelectMultiple = function MaterialQuizSelectMultiple(_ref) {
|
|
|
213
315
|
status: submitStatus
|
|
214
316
|
}),
|
|
215
317
|
bodyContainerRef: containerRef,
|
|
216
|
-
footerActions:
|
|
217
|
-
border: false,
|
|
218
|
-
disabled: isDisabled,
|
|
219
|
-
loading: submitStatus === 'pending',
|
|
220
|
-
tabIndex: 0,
|
|
221
|
-
transparent: false,
|
|
222
|
-
onClick: handleSubmit,
|
|
223
|
-
children: intl$1.formatMessage({
|
|
224
|
-
id: 'materialQuiz.submit'
|
|
225
|
-
}),
|
|
226
|
-
customStyles: {
|
|
227
|
-
backgroundColor: isNextActive ? theme.palette.primary.main : isDisabled ? designTokens.base.color.gray6 : theme.palette.primary.main,
|
|
228
|
-
color: isNextActive ? theme.palette.primary.contrastText : isDisabled ? designTokens.base.color.gray3 : theme.palette.primary.contrastText
|
|
229
|
-
}
|
|
230
|
-
}],
|
|
318
|
+
footerActions: getFooterActions(),
|
|
231
319
|
children: jsxRuntime.jsxs(material.Stack, {
|
|
232
320
|
height: "100%",
|
|
233
321
|
gap: "1rem",
|