@elice/material-assignment 1.231227.0 → 1.240112.0-cloud.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.
Files changed (22) hide show
  1. package/cjs/components/material-assignment/MaterialAssignment.js +13 -19
  2. package/cjs/components/material-assignment/MaterialAssignmentContent.js +99 -130
  3. package/cjs/components/material-assignment/MaterialAssignmentUploadModal.js +96 -129
  4. package/cjs/components/material-assignment/locales.js +2 -4
  5. package/cjs/components/material-assignment-admin/MaterialAssignmentAdmin.js +21 -26
  6. package/cjs/components/material-assignment-admin/MaterialAssignmentAdmin.styled.js +9 -21
  7. package/cjs/components/material-assignment-admin/MaterialAssignmentAdminContent.js +320 -447
  8. package/cjs/components/material-assignment-admin/MaterialAssignmentAdminContentTa.js +152 -211
  9. package/cjs/components/shared/MaterialAssignmentContainer.js +10 -14
  10. package/cjs/index.js +2 -4
  11. package/es/components/material-assignment/MaterialAssignment.js +8 -8
  12. package/es/components/material-assignment/MaterialAssignmentContent.js +65 -92
  13. package/es/components/material-assignment/MaterialAssignmentUploadModal.js +83 -111
  14. package/es/components/material-assignment/locales.js +2 -2
  15. package/es/components/material-assignment-admin/MaterialAssignmentAdmin.js +13 -13
  16. package/es/components/material-assignment-admin/MaterialAssignmentAdmin.styled.js +9 -15
  17. package/es/components/material-assignment-admin/MaterialAssignmentAdminContent.js +231 -353
  18. package/es/components/material-assignment-admin/MaterialAssignmentAdminContentTa.js +94 -148
  19. package/es/components/shared/MaterialAssignmentContainer.js +7 -6
  20. package/package.json +7 -7
  21. package/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -388
  22. package/es/_virtual/_rollupPluginBabelHelpers.js +0 -377
@@ -7,28 +7,24 @@ var blocks = require('@elice/blocks');
7
7
  var designTokens = require('@elice/design-tokens');
8
8
  var styled = require('styled-components');
9
9
 
10
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
-
12
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
- var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
14
-
15
- var StyledMaterialAssignmentContainer = styled__default["default"].div.withConfig({
10
+ const StyledMaterialAssignmentContainer = styled.div.withConfig({
16
11
  componentId: "sc-sdhlog-0"
17
12
  })(["height:100%;width:100%;max-width:55rem;border-radius:0.5rem;overflow:hidden;"]);
18
- var StyledMaterialAssignmentContainerHeader = styled__default["default"].div.withConfig({
13
+ const StyledMaterialAssignmentContainerHeader = styled.div.withConfig({
19
14
  componentId: "sc-sdhlog-1"
20
15
  })(["padding:1rem 1.5rem;height:3.5rem;display:flex;align-items:center;background-color:", ";"], designTokens.base.color.navy7);
21
- var StyledMaterialAssignmentContainerContent = styled__default["default"].div.withConfig({
16
+ const StyledMaterialAssignmentContainerContent = styled.div.withConfig({
22
17
  componentId: "sc-sdhlog-2"
23
18
  })(["padding:1.5rem;overflow-y:auto;height:calc(100% - 3.5rem);background-color:", ";"], designTokens.base.color.navy8);
24
- var MaterialAssignmentContainer = function MaterialAssignmentContainer(_ref) {
25
- var title = _ref.title,
26
- children = _ref.children;
27
- return React__default["default"].createElement(StyledMaterialAssignmentContainer, null, React__default["default"].createElement(StyledMaterialAssignmentContainerHeader, null, React__default["default"].createElement(blocks.Text, {
19
+ const MaterialAssignmentContainer = ({
20
+ title,
21
+ children
22
+ }) => {
23
+ return React.createElement(StyledMaterialAssignmentContainer, null, React.createElement(StyledMaterialAssignmentContainerHeader, null, React.createElement(blocks.Text, {
28
24
  bold: true,
29
25
  role: "navy0",
30
26
  size: "small"
31
- }, title)), React__default["default"].createElement(StyledMaterialAssignmentContainerContent, null, children));
27
+ }, title)), React.createElement(StyledMaterialAssignmentContainerContent, null, children));
32
28
  };
33
29
 
34
- exports["default"] = MaterialAssignmentContainer;
30
+ exports.default = MaterialAssignmentContainer;
package/cjs/index.js CHANGED
@@ -1,11 +1,9 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var MaterialAssignmentAdmin = require('./components/material-assignment-admin/MaterialAssignmentAdmin.js');
6
4
  var MaterialAssignment = require('./components/material-assignment/MaterialAssignment.js');
7
5
 
8
6
 
9
7
 
10
- exports.MaterialAssignmentAdmin = MaterialAssignmentAdmin["default"];
11
- exports.MaterialAssignment = MaterialAssignment["default"];
8
+ exports.MaterialAssignmentAdmin = MaterialAssignmentAdmin.default;
9
+ exports.MaterialAssignment = MaterialAssignment.default;
@@ -7,16 +7,16 @@ import * as locales from './locales.js';
7
7
  import { en } from './locales.js';
8
8
  import MaterialAssignmentContent from './MaterialAssignmentContent.js';
9
9
 
10
- var StyledMaterialAssignmentWrapper = styled.div.withConfig({
10
+ const StyledMaterialAssignmentWrapper = styled.div.withConfig({
11
11
  componentId: "sc-1kcyh7u-0"
12
12
  })(["display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:3.625rem;background-color:", ";"], base.color.navy9);
13
- var MaterialAssignment = function MaterialAssignment(_ref) {
14
- var className = _ref.className,
15
- materialAssignmentId = _ref.materialAssignmentId,
16
- userId = _ref.userId,
17
- _ref$locale = _ref.locale,
18
- locale = _ref$locale === void 0 ? 'en' : _ref$locale;
19
- var prefixCls = 'em-material-assignment';
13
+ const MaterialAssignment = ({
14
+ className,
15
+ materialAssignmentId,
16
+ userId,
17
+ locale = 'en'
18
+ }) => {
19
+ const prefixCls = 'em-material-assignment';
20
20
  return React.createElement(StyledMaterialAssignmentWrapper, {
21
21
  className: classnames(prefixCls, className)
22
22
  }, React.createElement(IntlProvider, {
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React from 'react';
3
2
  import { useIntl, FormattedDate } from 'react-intl';
4
3
  import { config, getOrgMaterialAssignmentGet, getOrgMaterialAssignmentGradeList, getOrgMaterialAssignmentGradeResultGet, getOrgMaterialAssignmentSubmissionGet } from '@elice/api-client';
@@ -8,62 +7,41 @@ import { enums } from '@elice/types';
8
7
  import MaterialAssignmentContainer from '../shared/MaterialAssignmentContainer.js';
9
8
  import MaterialAssignmentUploadModal from './MaterialAssignmentUploadModal.js';
10
9
 
11
- var GRADE_LIST_COUNT = 20;
12
- var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
13
- var materialAssignmentId = _ref.materialAssignmentId,
14
- userId = _ref.userId;
15
- var intl = useIntl();
16
- var isReady = useMaterialConfigApiClientUpdate(config.init);
17
- var _useMaterialFetchRaw = useMaterialFetchRaw(enums.LectureMaterialType.Assignment, React.useCallback(function (signal) {
18
- return getOrgMaterialAssignmentGet({
19
- materialAssignmentId: materialAssignmentId
20
- }, {
21
- signal: signal
22
- });
23
- }, [materialAssignmentId]), isReady),
24
- materialAssignment = _useMaterialFetchRaw.materialAssignment,
25
- materialLecturePage = _useMaterialFetchRaw.materialLecturePage,
26
- assignmentGetStatus = _useMaterialFetchRaw.status,
27
- doGetOrgMaterialAssignmentGet = _useMaterialFetchRaw.refetch;
28
- var _React$useState = React.useState('idle'),
29
- _React$useState2 = _slicedToArray(_React$useState, 2),
30
- assignmentGradeListGetStatus = _React$useState2[0],
31
- setAssignmentGradeListGetStatus = _React$useState2[1];
32
- var _React$useState3 = React.useState('idle'),
33
- _React$useState4 = _slicedToArray(_React$useState3, 2),
34
- assignmentGradeResultGetStatus = _React$useState4[0],
35
- setAssignmentGradeResultGetStatus = _React$useState4[1];
36
- var _React$useState5 = React.useState('idle'),
37
- _React$useState6 = _slicedToArray(_React$useState5, 2),
38
- assignmentSubmissionGetStatus = _React$useState6[0],
39
- setAssignmentSubmissionGetStatus = _React$useState6[1];
40
- var _React$useState7 = React.useState(),
41
- _React$useState8 = _slicedToArray(_React$useState7, 2),
42
- materialAssignmentSubmission = _React$useState8[0],
43
- setMaterialAssignmentSubmission = _React$useState8[1];
44
- var _React$useState9 = React.useState(),
45
- _React$useState10 = _slicedToArray(_React$useState9, 2),
46
- materialAssignmentGradeResult = _React$useState10[0],
47
- setMaterialAssignmentGradeResult = _React$useState10[1];
48
- var _React$useState11 = React.useState(),
49
- _React$useState12 = _slicedToArray(_React$useState11, 2),
50
- materialAssignmentGradeList = _React$useState12[0],
51
- setMaterialAssignmentGradeList = _React$useState12[1];
10
+ const GRADE_LIST_COUNT = 20;
11
+ const MaterialAssignmentContent = ({
12
+ materialAssignmentId,
13
+ userId
14
+ }) => {
15
+ const intl = useIntl();
16
+ const isReady = useMaterialConfigApiClientUpdate(config.init);
17
+ const {
18
+ materialAssignment,
19
+ materialLecturePage,
20
+ status: assignmentGetStatus,
21
+ refetch: doGetOrgMaterialAssignmentGet
22
+ } = useMaterialFetchRaw(enums.LectureMaterialType.Assignment, React.useCallback(signal => getOrgMaterialAssignmentGet({
23
+ materialAssignmentId
24
+ }, {
25
+ signal
26
+ }), [materialAssignmentId]), isReady);
27
+ const [assignmentGradeListGetStatus, setAssignmentGradeListGetStatus] = React.useState('idle');
28
+ const [assignmentGradeResultGetStatus, setAssignmentGradeResultGetStatus] = React.useState('idle');
29
+ const [assignmentSubmissionGetStatus, setAssignmentSubmissionGetStatus] = React.useState('idle');
30
+ const [materialAssignmentSubmission, setMaterialAssignmentSubmission] = React.useState();
31
+ const [materialAssignmentGradeResult, setMaterialAssignmentGradeResult] = React.useState();
32
+ const [materialAssignmentGradeList, setMaterialAssignmentGradeList] = React.useState();
52
33
  /** Is confirm modal visible? */
53
- var _React$useState13 = React.useState(false),
54
- _React$useState14 = _slicedToArray(_React$useState13, 2),
55
- showAssignmentSubmitModal = _React$useState14[0],
56
- setShowAssignmentSubmitModal = _React$useState14[1];
57
- var isAssignmentSubmitted = Boolean(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.lastAssignmentSubmissionId);
58
- var isAssignmentClosed = materialAssignment && Boolean(materialAssignment.closeDatetime < Date.now());
59
- var isAssignmentResultVisible = Boolean(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.scoreFinalizedDatetime);
34
+ const [showAssignmentSubmitModal, setShowAssignmentSubmitModal] = React.useState(false);
35
+ const isAssignmentSubmitted = Boolean(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.lastAssignmentSubmissionId);
36
+ const isAssignmentClosed = materialAssignment && Boolean(materialAssignment.closeDatetime < Date.now());
37
+ const isAssignmentResultVisible = Boolean(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.scoreFinalizedDatetime);
60
38
  //
61
39
  //
62
40
  //
63
41
  /**
64
42
  * When Grade_result exist, a comment list is called.
65
43
  */
66
- React.useEffect(function () {
44
+ React.useEffect(() => {
67
45
  if (!isReady) {
68
46
  return;
69
47
  }
@@ -74,16 +52,17 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
74
52
  getOrgMaterialAssignmentGradeList({
75
53
  offset: 0,
76
54
  count: GRADE_LIST_COUNT,
77
- materialAssignmentId: materialAssignmentId,
55
+ materialAssignmentId,
78
56
  filterConditions: {
79
- userId: userId
57
+ userId
80
58
  }
81
- }).then(function (_ref2) {
82
- var materialAssignmentGrades = _ref2.materialAssignmentGrades;
83
- _ref2.materialAssignmentGradeCount;
59
+ }).then(({
60
+ materialAssignmentGrades,
61
+ materialAssignmentGradeCount
62
+ }) => {
84
63
  setAssignmentGradeListGetStatus('resolved');
85
64
  setMaterialAssignmentGradeList(materialAssignmentGrades);
86
- }).catch(function (error) {
65
+ }).catch(error => {
87
66
  console.error(error);
88
67
  setAssignmentGradeListGetStatus('rejected');
89
68
  });
@@ -91,7 +70,7 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
91
70
  /**
92
71
  * When Grade_result exist, a score is called.
93
72
  */
94
- React.useEffect(function () {
73
+ React.useEffect(() => {
95
74
  if (!isReady) {
96
75
  return;
97
76
  }
@@ -100,13 +79,14 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
100
79
  }
101
80
  setAssignmentGradeResultGetStatus('pending');
102
81
  getOrgMaterialAssignmentGradeResultGet({
103
- materialAssignmentId: materialAssignmentId,
104
- userId: userId
105
- }).then(function (_ref3) {
106
- var materialAssignmentGradeResult = _ref3.materialAssignmentGradeResult;
82
+ materialAssignmentId,
83
+ userId
84
+ }).then(({
85
+ materialAssignmentGradeResult
86
+ }) => {
107
87
  setAssignmentGradeResultGetStatus('resolved');
108
88
  setMaterialAssignmentGradeResult(materialAssignmentGradeResult);
109
- }).catch(function (error) {
89
+ }).catch(error => {
110
90
  console.error(error);
111
91
  setAssignmentGradeResultGetStatus('rejected');
112
92
  });
@@ -114,7 +94,7 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
114
94
  /**
115
95
  * Get information on the assignment submitted
116
96
  */
117
- React.useEffect(function () {
97
+ React.useEffect(() => {
118
98
  var _a;
119
99
  if (!isReady) {
120
100
  return;
@@ -127,11 +107,12 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
127
107
  setAssignmentSubmissionGetStatus('pending');
128
108
  getOrgMaterialAssignmentSubmissionGet({
129
109
  materialAssignmentSubmissionId: (_a = materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.lastAssignmentSubmissionId) !== null && _a !== void 0 ? _a : 0
130
- }).then(function (_ref4) {
131
- var materialAssignmentSubmission = _ref4.materialAssignmentSubmission;
110
+ }).then(({
111
+ materialAssignmentSubmission
112
+ }) => {
132
113
  setAssignmentSubmissionGetStatus('resolved');
133
114
  setMaterialAssignmentSubmission(materialAssignmentSubmission);
134
- }).catch(function (error) {
115
+ }).catch(error => {
135
116
  console.error(error);
136
117
  setAssignmentSubmissionGetStatus('rejected');
137
118
  setMaterialAssignmentSubmission(undefined);
@@ -150,10 +131,10 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
150
131
  /**
151
132
  *
152
133
  */
153
- var renderAssignmentInfo = function renderAssignmentInfo() {
134
+ const renderAssignmentInfo = () => {
154
135
  var _a;
155
- var assignmentFilename = decodeURIComponent((materialAssignmentSubmission === null || materialAssignmentSubmission === void 0 ? void 0 : materialAssignmentSubmission.assignmentFileUrl) && new URL(materialAssignmentSubmission.assignmentFileUrl).pathname.split('/').pop() || '');
156
- var renderAssignmentStatus = function renderAssignmentStatus() {
136
+ const assignmentFilename = decodeURIComponent((materialAssignmentSubmission === null || materialAssignmentSubmission === void 0 ? void 0 : materialAssignmentSubmission.assignmentFileUrl) && new URL(materialAssignmentSubmission.assignmentFileUrl).pathname.split('/').pop() || '');
137
+ const renderAssignmentStatus = () => {
157
138
  if (!isAssignmentSubmitted && isAssignmentClosed) {
158
139
  return React.createElement(Text, {
159
140
  bold: true,
@@ -189,7 +170,7 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
189
170
  id: 'materialAssignment.status.noSubmitted'
190
171
  }));
191
172
  };
192
- var renderAssignmentScore = function renderAssignmentScore() {
173
+ const renderAssignmentScore = () => {
193
174
  var _a;
194
175
  return React.createElement(React.Fragment, null, React.createElement(Text, {
195
176
  bold: true,
@@ -203,7 +184,7 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
203
184
  width: 0.25
204
185
  }));
205
186
  };
206
- var renderAssignmentAttachment = function renderAssignmentAttachment() {
187
+ const renderAssignmentAttachment = () => {
207
188
  if (materialAssignmentSubmission === null || materialAssignmentSubmission === void 0 ? void 0 : materialAssignmentSubmission.assignmentFileUrl) {
208
189
  return React.createElement("a", {
209
190
  href: materialAssignmentSubmission.assignmentFileUrl,
@@ -259,9 +240,7 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
259
240
  size: "tiny",
260
241
  role: "lightpurple",
261
242
  disabled: [isAssignmentResultVisible, !materialAssignment.isResubmitEnabled && isAssignmentSubmitted, isAssignmentClosed].some(Boolean),
262
- onClick: function onClick() {
263
- return setShowAssignmentSubmitModal(true);
264
- }
243
+ onClick: () => setShowAssignmentSubmitModal(true)
265
244
  }, intl.formatMessage({
266
245
  id: 'materialAssignment.button.upload'
267
246
  }))))), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
@@ -278,9 +257,9 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
278
257
  /**
279
258
  *
280
259
  */
281
- var renderAssignmentFeedback = function renderAssignmentFeedback() {
260
+ const renderAssignmentFeedback = () => {
282
261
  var _a;
283
- var tableColumns = [{
262
+ const tableColumns = [{
284
263
  Header: intl.formatMessage({
285
264
  id: 'materialAssignment.table.header.index'
286
265
  }),
@@ -292,18 +271,14 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
292
271
  }),
293
272
  accessor: 'feedback'
294
273
  }];
295
- var tableData = (_a = materialAssignmentGradeList === null || materialAssignmentGradeList === void 0 ? void 0 : materialAssignmentGradeList.filter(function (grade) {
296
- return grade.comment.length;
297
- }).map(function (grade, index) {
298
- return {
299
- index: index + 1,
300
- feedback: React.createElement(Text, {
301
- preWrap: true,
302
- size: "small",
303
- role: "navy1"
304
- }, grade.comment)
305
- };
306
- })) !== null && _a !== void 0 ? _a : [];
274
+ const tableData = (_a = materialAssignmentGradeList === null || materialAssignmentGradeList === void 0 ? void 0 : materialAssignmentGradeList.filter(grade => grade.comment.length).map((grade, index) => ({
275
+ index: index + 1,
276
+ feedback: React.createElement(Text, {
277
+ preWrap: true,
278
+ size: "small",
279
+ role: "navy1"
280
+ }, grade.comment)
281
+ }))) !== null && _a !== void 0 ? _a : [];
307
282
  return React.createElement(TableNext, {
308
283
  dark: true,
309
284
  columns: tableColumns,
@@ -316,15 +291,13 @@ var MaterialAssignmentContent = function MaterialAssignmentContent(_ref) {
316
291
  /**
317
292
  *
318
293
  */
319
- var renderAssignmentUploadModal = function renderAssignmentUploadModal() {
294
+ const renderAssignmentUploadModal = () => {
320
295
  if (!showAssignmentSubmitModal) {
321
296
  return null;
322
297
  }
323
298
  return React.createElement(MaterialAssignmentUploadModal, {
324
299
  materialAssignment: materialAssignment,
325
- onClose: function onClose() {
326
- return setShowAssignmentSubmitModal(false);
327
- },
300
+ onClose: () => setShowAssignmentSubmitModal(false),
328
301
  onSubmitCallback: doGetOrgMaterialAssignmentGet
329
302
  });
330
303
  };
@@ -1,99 +1,73 @@
1
- import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React from 'react';
3
2
  import { useForm, Controller } from 'react-hook-form';
4
3
  import { useIntl } from 'react-intl';
5
4
  import { postOrgMaterialAssignmentSubmissionAdd } from '@elice/api-client';
6
- import { Files, Modal, Alert, Vspace, Radio, RadioButton, Input, Checkbox, Text, Notification } from '@elice/blocks';
5
+ import { Files, Notification, Modal, Alert, Vspace, Radio, RadioButton, Input, Checkbox, Text } from '@elice/blocks';
7
6
  import { base } from '@elice/design-tokens';
8
7
  import { validateUrl } from '@elice/utils';
9
8
  import styled from 'styled-components';
10
9
 
11
- var StyledAssignmentContentFiles = styled(Files).withConfig({
10
+ const StyledAssignmentContentFiles = styled(Files).withConfig({
12
11
  componentId: "sc-9bizrf-0"
13
12
  })(["width:100%;.eb-files__choose-button{border-color:", ";background-color:", ";}"], base.color.primary5, base.color.primary5);
14
- var MaterialAssignmentUploadModal = function MaterialAssignmentUploadModal(_ref) {
15
- var materialAssignment = _ref.materialAssignment,
16
- onClose = _ref.onClose,
17
- onSubmitCallback = _ref.onSubmitCallback;
18
- var intl = useIntl();
19
- var abortCtrl = React.useRef(new AbortController());
13
+ const MaterialAssignmentUploadModal = ({
14
+ materialAssignment,
15
+ onClose,
16
+ onSubmitCallback
17
+ }) => {
18
+ const intl = useIntl();
19
+ const abortCtrl = React.useRef(new AbortController());
20
20
  /** Select submission method */
21
- var _React$useState = React.useState('attachment'),
22
- _React$useState2 = _slicedToArray(_React$useState, 2),
23
- assignmentMode = _React$useState2[0],
24
- setAssignmentMode = _React$useState2[1];
21
+ const [assignmentMode, setAssignmentMode] = React.useState('attachment');
25
22
  /** Check "Once you submit it, you cannot submit it again." */
26
- var _React$useState3 = React.useState(false),
27
- _React$useState4 = _slicedToArray(_React$useState3, 2),
28
- isAgreedSubmit = _React$useState4[0],
29
- setAgreedSubmit = _React$useState4[1];
23
+ const [isAgreedSubmit, setAgreedSubmit] = React.useState(false);
30
24
  /** Check if the submission time is past */
31
- var isAssignmentClosed = Boolean(materialAssignment.closeDatetime < Date.now());
25
+ const isAssignmentClosed = Boolean(materialAssignment.closeDatetime < Date.now());
32
26
  /** Check if it is possible to resubmit */
33
- var isAssignmentResubmitEnabled = Boolean(materialAssignment.isResubmitEnabled);
34
- var _useForm = useForm({
35
- mode: 'onChange'
36
- }),
37
- control = _useForm.control,
38
- formState = _useForm.formState,
39
- handleSubmit = _useForm.handleSubmit,
40
- reset = _useForm.reset;
27
+ const isAssignmentResubmitEnabled = Boolean(materialAssignment.isResubmitEnabled);
28
+ const {
29
+ control,
30
+ formState,
31
+ handleSubmit,
32
+ reset
33
+ } = useForm({
34
+ mode: 'onChange'
35
+ });
41
36
  /**
42
37
  * Submit assignment.
43
38
  */
44
- var submitAssignment = handleSubmit( /*#__PURE__*/function () {
45
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data) {
46
- var _a;
47
- return _regeneratorRuntime().wrap(function _callee$(_context) {
48
- while (1) switch (_context.prev = _context.next) {
49
- case 0:
50
- _context.prev = 0;
51
- _context.next = 3;
52
- return postOrgMaterialAssignmentSubmissionAdd(Object.assign(Object.assign({}, data), {
53
- materialAssignmentId: (_a = materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.id) !== null && _a !== void 0 ? _a : 0
54
- }), {
55
- signal: abortCtrl.current.signal
56
- });
57
- case 3:
58
- onClose();
59
- Notification.success(intl.formatMessage({
60
- id: 'materialAssignment.notification.submit.success'
61
- }));
62
- if (typeof onSubmitCallback === 'function') {
63
- onSubmitCallback();
64
- }
65
- _context.next = 13;
66
- break;
67
- case 8:
68
- _context.prev = 8;
69
- _context.t0 = _context["catch"](0);
70
- if (!(_context.t0.name === 'AbortError')) {
71
- _context.next = 12;
72
- break;
73
- }
74
- return _context.abrupt("return", Notification.error(intl.formatMessage({
75
- id: 'materialAssignment.notification.submit.cancel'
76
- })));
77
- case 12:
78
- Notification.error(intl.formatMessage({
79
- id: 'materialAssignment.notification.submit.failure'
80
- }));
81
- case 13:
82
- case "end":
83
- return _context.stop();
84
- }
85
- }, _callee, null, [[0, 8]]);
86
- }));
87
- return function (_x) {
88
- return _ref2.apply(this, arguments);
89
- };
90
- }());
39
+ const submitAssignment = handleSubmit(async data => {
40
+ var _a;
41
+ try {
42
+ await postOrgMaterialAssignmentSubmissionAdd(Object.assign(Object.assign({}, data), {
43
+ materialAssignmentId: (_a = materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.id) !== null && _a !== void 0 ? _a : 0
44
+ }), {
45
+ signal: abortCtrl.current.signal
46
+ });
47
+ onClose();
48
+ Notification.success(intl.formatMessage({
49
+ id: 'materialAssignment.notification.submit.success'
50
+ }));
51
+ if (typeof onSubmitCallback === 'function') {
52
+ onSubmitCallback();
53
+ }
54
+ } catch (error) {
55
+ if (error.name === 'AbortError') {
56
+ return Notification.error(intl.formatMessage({
57
+ id: 'materialAssignment.notification.submit.cancel'
58
+ }));
59
+ }
60
+ Notification.error(intl.formatMessage({
61
+ id: 'materialAssignment.notification.submit.failure'
62
+ }));
63
+ }
64
+ });
91
65
  //
92
66
  //
93
67
  //
94
- React.useEffect(function () {
95
- var _abortCtrl = abortCtrl.current;
96
- return function () {
68
+ React.useEffect(() => {
69
+ const _abortCtrl = abortCtrl.current;
70
+ return () => {
97
71
  _abortCtrl.abort();
98
72
  };
99
73
  }, []);
@@ -126,7 +100,7 @@ var MaterialAssignmentUploadModal = function MaterialAssignmentUploadModal(_ref)
126
100
  purpleWhite: true,
127
101
  borderRound: true,
128
102
  value: assignmentMode,
129
- onChange: function onChange(value) {
103
+ onChange: value => {
130
104
  reset();
131
105
  setAgreedSubmit(false);
132
106
  setAssignmentMode(value);
@@ -147,47 +121,45 @@ var MaterialAssignmentUploadModal = function MaterialAssignmentUploadModal(_ref)
147
121
  rules: {
148
122
  required: true
149
123
  },
150
- render: function render(_ref3) {
151
- var field = _ref3.field;
152
- return React.createElement(StyledAssignmentContentFiles, Object.assign({}, field, {
153
- ref: null,
154
- files: field.value ? [field.value] : undefined,
155
- accept: "*",
156
- maxCount: 1,
157
- maxSize: 300,
158
- disabled: isAssignmentClosed,
159
- dropMessage: intl.formatMessage({
160
- id: 'materialAssignment.attachment.dropMessage'
161
- }),
162
- buttonMessage: intl.formatMessage({
163
- id: 'materialAssignment.attachment.button'
164
- }),
165
- maxSizeMessage: intl.formatMessage({
166
- id: 'materialAssignment.attachment.maxSizeMessage'
167
- }),
168
- onChange: function onChange(newFiles) {
169
- if (Array.isArray(newFiles) && newFiles[0] instanceof File) {
170
- field.onChange(newFiles[0]);
171
- } else {
172
- field.onChange(undefined);
173
- }
124
+ render: ({
125
+ field
126
+ }) => React.createElement(StyledAssignmentContentFiles, Object.assign({}, field, {
127
+ ref: null,
128
+ files: field.value ? [field.value] : undefined,
129
+ accept: "*",
130
+ maxCount: 1,
131
+ maxSize: 300,
132
+ disabled: isAssignmentClosed,
133
+ dropMessage: intl.formatMessage({
134
+ id: 'materialAssignment.attachment.dropMessage'
135
+ }),
136
+ buttonMessage: intl.formatMessage({
137
+ id: 'materialAssignment.attachment.button'
138
+ }),
139
+ maxSizeMessage: intl.formatMessage({
140
+ id: 'materialAssignment.attachment.maxSizeMessage'
141
+ }),
142
+ onChange: newFiles => {
143
+ if (Array.isArray(newFiles) && newFiles[0] instanceof File) {
144
+ field.onChange(newFiles[0]);
145
+ } else {
146
+ field.onChange(undefined);
174
147
  }
175
- }));
176
- }
148
+ }
149
+ }))
177
150
  }) : React.createElement(Controller, {
178
151
  control: control,
179
152
  name: "assignmentUrl",
180
153
  rules: {
181
154
  required: true,
182
- validate: function validate(url) {
183
- return validateUrl(url !== null && url !== void 0 ? url : '') ? true : intl.formatMessage({
184
- id: 'materialAssignment.input.invalid'
185
- });
186
- }
155
+ validate: url => validateUrl(url !== null && url !== void 0 ? url : '') ? true : intl.formatMessage({
156
+ id: 'materialAssignment.input.invalid'
157
+ })
187
158
  },
188
- render: function render(_ref4) {
189
- var field = _ref4.field,
190
- fieldState = _ref4.fieldState;
159
+ render: ({
160
+ field,
161
+ fieldState
162
+ }) => {
191
163
  var _a;
192
164
  return React.createElement(Input, Object.assign({}, field, {
193
165
  width: "full",
@@ -1,4 +1,4 @@
1
- var en = {
1
+ const en = {
2
2
  'materialAssignment.button.upload': 'Upload assignment',
3
3
  'materialAssignment.error': 'Failed to fetch assignment',
4
4
  'materialAssignment.status.noSubmitted': 'No submitted',
@@ -36,7 +36,7 @@ var en = {
36
36
  'materialAssignment.attachment.checkbox.onceSubmit': 'I have checked all the circumstances and agree to submit the assignment.',
37
37
  'materialAssignment.input.invalid': 'The URL is not of a valid format.'
38
38
  };
39
- var ko = {
39
+ const ko = {
40
40
  'materialAssignment.button.upload': '과제 업로드',
41
41
  'materialAssignment.error': '과제를 불러오는데 실패했습니다.\n잠시 후 다시 시도해주세요.',
42
42
  'materialAssignment.status.noSubmitted': '미제출',
@@ -9,20 +9,20 @@ import MaterialAssignmentAdminContent from './MaterialAssignmentAdminContent.js'
9
9
  import MaterialAssignmentAdminContentTa from './MaterialAssignmentAdminContentTa.js';
10
10
  import { StyledMaterialAssignmentAdminContainer } from './MaterialAssignmentAdmin.styled.js';
11
11
 
12
- var MaterialAssignmentAdmin = forwardRef(function (_ref, ref) {
13
- var _ref$locale = _ref.locale,
14
- locale = _ref$locale === void 0 ? 'en' : _ref$locale,
15
- className = _ref.className,
16
- materialAssignmentId = _ref.materialAssignmentId,
17
- userId = _ref.userId,
18
- adminUserId = _ref.adminUserId,
19
- courseRole = _ref.courseRole,
20
- updateMaterialUserBrowserResponse = _ref.updateMaterialUserBrowserResponse;
21
- var prefixCls = 'em-material-assignment-admin';
12
+ const MaterialAssignmentAdmin = forwardRef(({
13
+ locale = 'en',
14
+ className,
15
+ materialAssignmentId,
16
+ userId,
17
+ adminUserId,
18
+ courseRole,
19
+ updateMaterialUserBrowserResponse
20
+ }, ref) => {
21
+ const prefixCls = 'em-material-assignment-admin';
22
22
  // TODO: initialize in custom hook or withMaterial hoc.
23
- var isReady = useMaterialConfigApiClientUpdate(config.init);
24
- var isCourseRoleAboveTa = courseRole > enums.CourseRole.TA;
25
- var renderContent = function renderContent() {
23
+ const isReady = useMaterialConfigApiClientUpdate(config.init);
24
+ const isCourseRoleAboveTa = courseRole > enums.CourseRole.TA;
25
+ const renderContent = () => {
26
26
  if (!isReady) {
27
27
  return React.createElement(Flex, {
28
28
  align: "center",