@nualang/nualang-ui-components 0.1.1275-1 → 0.1.1275
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/dist/Assignments/AssignmentCard/AssignmentCard.js +3 -2
- package/dist/Assignments/AssignmentCardsList/AssignmentCardsList.js +4 -2
- package/dist/Assignments/CreateAssignmentDialog/CreateAssignmentDialog.js +5 -4
- package/dist/Cards/Course/Course.js +27 -3
- package/dist/Dialogs/ConfirmDialog/ConfirmDialog.js +6 -3
- package/dist/Lists/Courses/Courses.js +3 -0
- package/dist/Screens/Classrooms/ViewClassroom/ViewClassroom.js +4 -0
- package/dist/Screens/Courses/Courses.js +6 -3
- package/dist/Tables/Progress/Progress.js +7 -6
- package/package.json +1 -1
|
@@ -32,7 +32,8 @@ function AssignmentCard({
|
|
|
32
32
|
fetchMemberCourseCompletions,
|
|
33
33
|
lastClickedExerciseId,
|
|
34
34
|
handleViewProgress,
|
|
35
|
-
lastAssignmentFetch
|
|
35
|
+
lastAssignmentFetch,
|
|
36
|
+
assignedStudents = []
|
|
36
37
|
}) {
|
|
37
38
|
const [confirm] = (0, _useConfirm.default)(t);
|
|
38
39
|
const {
|
|
@@ -224,7 +225,7 @@ function AssignmentCard({
|
|
|
224
225
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
|
|
225
226
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
226
227
|
variant: "h4",
|
|
227
|
-
children:
|
|
228
|
+
children: assignedStudents?.length
|
|
228
229
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
229
230
|
variant: "body2",
|
|
230
231
|
color: "text.secondary",
|
|
@@ -31,7 +31,8 @@ const AssignmentCardsList = ({
|
|
|
31
31
|
fetchMemberCourseCompletions,
|
|
32
32
|
memberId,
|
|
33
33
|
handleViewProgress,
|
|
34
|
-
lastAssignmentFetch
|
|
34
|
+
lastAssignmentFetch,
|
|
35
|
+
assignmentMembersById
|
|
35
36
|
}) => {
|
|
36
37
|
const [lastClickedExerciseId, setLastClickedExerciseId] = (0, _react.useState)(null);
|
|
37
38
|
(0, _react.useEffect)(() => {
|
|
@@ -170,7 +171,8 @@ const AssignmentCardsList = ({
|
|
|
170
171
|
username: username,
|
|
171
172
|
preferred_username: preferred_username,
|
|
172
173
|
memberId: memberId,
|
|
173
|
-
handleViewProgress: handleViewProgress
|
|
174
|
+
handleViewProgress: handleViewProgress,
|
|
175
|
+
assignedStudents: assignmentMembersById[assignment.assignmentId] || []
|
|
174
176
|
}, assignment.assignmentId))]
|
|
175
177
|
})
|
|
176
178
|
});
|
|
@@ -55,7 +55,8 @@ function CreateAssignmentDialog({
|
|
|
55
55
|
getCourses,
|
|
56
56
|
initialData = {},
|
|
57
57
|
dialogTitle,
|
|
58
|
-
userEmail = ''
|
|
58
|
+
userEmail = '',
|
|
59
|
+
assignedStudents
|
|
59
60
|
}) {
|
|
60
61
|
const {
|
|
61
62
|
classes
|
|
@@ -68,12 +69,12 @@ function CreateAssignmentDialog({
|
|
|
68
69
|
const [members, setMembers] = (0, _react.useState)([]);
|
|
69
70
|
const [assignment, setAssignment] = (0, _react.useState)({
|
|
70
71
|
classroomId: classroom?.length > 0 ? [classroom] : [],
|
|
71
|
-
assignedStudents
|
|
72
|
+
assignedStudents,
|
|
72
73
|
title: initialData.title ? initialData.title : undefined,
|
|
73
74
|
instructions: initialData.instructions ? initialData.instructions : t("default_assignment_instructions"),
|
|
74
75
|
type: "assignment",
|
|
75
|
-
scheduleDate: (0, _dayjs.default)()
|
|
76
|
-
dueDate: (0, _dayjs.default)().add(1, "day")
|
|
76
|
+
scheduleDate: (0, _dayjs.default)(),
|
|
77
|
+
dueDate: (0, _dayjs.default)().add(1, "day"),
|
|
77
78
|
exercises: submittedExercises,
|
|
78
79
|
...initialData
|
|
79
80
|
});
|
|
@@ -21,6 +21,7 @@ var _PictureAsPdf = _interopRequireDefault(require("@mui/icons-material/PictureA
|
|
|
21
21
|
var _School = _interopRequireDefault(require("@mui/icons-material/School"));
|
|
22
22
|
var _Visibility = _interopRequireDefault(require("@mui/icons-material/Visibility"));
|
|
23
23
|
var _VisibilityOff = _interopRequireDefault(require("@mui/icons-material/VisibilityOff"));
|
|
24
|
+
var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
|
|
24
25
|
var _Members = _interopRequireDefault(require("../../Dialogs/Members"));
|
|
25
26
|
var _CourseOutline = _interopRequireDefault(require("../../Dialogs/CourseOutline"));
|
|
26
27
|
var _Members2 = _interopRequireDefault(require("../../Lists/Members"));
|
|
@@ -31,6 +32,7 @@ var _useCourseState = _interopRequireDefault(require("../../hooks/useCourseState
|
|
|
31
32
|
var _ProgressiveCardMedia = _interopRequireDefault(require("../../Misc/ProgressiveCardMedia"));
|
|
32
33
|
var _CardElements = require("../CardElements");
|
|
33
34
|
var _Queries = require("@nualang/nualang-api-and-queries/Queries");
|
|
35
|
+
var _useConfirm = _interopRequireDefault(require("../../hooks/useConfirm"));
|
|
34
36
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
35
37
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
36
38
|
// Mui
|
|
@@ -58,7 +60,8 @@ function OverflowMenu({
|
|
|
58
60
|
classroomId,
|
|
59
61
|
isClassroomArchived = false,
|
|
60
62
|
canDuplicateCourse,
|
|
61
|
-
hiddenCourses = []
|
|
63
|
+
hiddenCourses = [],
|
|
64
|
+
deleteCourse
|
|
62
65
|
}) {
|
|
63
66
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Menu, {
|
|
64
67
|
id: `card-menu-${courseId}`,
|
|
@@ -126,6 +129,15 @@ function OverflowMenu({
|
|
|
126
129
|
})
|
|
127
130
|
})
|
|
128
131
|
})
|
|
132
|
+
}), isCreator && !classroomId && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
|
|
133
|
+
onClick: deleteCourse,
|
|
134
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_CardElements.CardMenuIcon, {
|
|
135
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Delete.default, {
|
|
136
|
+
fontSize: "small"
|
|
137
|
+
})
|
|
138
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
|
|
139
|
+
children: t("delete_course")
|
|
140
|
+
})]
|
|
129
141
|
}), isClassroomCreator && handleHideCourse && !hiddenCourses.includes(courseId) && !isClassroomArchived && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
|
|
130
142
|
onClick: () => handleHideCourse(courseId),
|
|
131
143
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_CardElements.CardMenuIcon, {
|
|
@@ -247,8 +259,10 @@ function CourseCard({
|
|
|
247
259
|
email,
|
|
248
260
|
isTeacher,
|
|
249
261
|
hiddenCourses = [],
|
|
250
|
-
isClassroomCreator = null
|
|
262
|
+
isClassroomCreator = null,
|
|
263
|
+
handleDeleteCourse
|
|
251
264
|
}) {
|
|
265
|
+
const [confirm] = (0, _useConfirm.default)(t);
|
|
252
266
|
const [placeholderRef, visible] = (0, _reactIntersectionObserver.useInView)({
|
|
253
267
|
rootMargin: "320px",
|
|
254
268
|
triggerOnce: true
|
|
@@ -342,6 +356,15 @@ function CourseCard({
|
|
|
342
356
|
const leaveCourse = () => {
|
|
343
357
|
handleLeaveCourse(courseId);
|
|
344
358
|
};
|
|
359
|
+
const courseSections = sectionsQuery.isSuccess ? sectionsQuery.data.Items : [];
|
|
360
|
+
const deleteCourse = async () => {
|
|
361
|
+
const confirmed = await confirm(t("delete_course"), t("delete_course_confirmation"), "", true, t("course_deletion_note", {
|
|
362
|
+
sectionCount: courseSections ? courseSections.length : 0
|
|
363
|
+
}), t("confirmDeletionText"));
|
|
364
|
+
if (confirmed) {
|
|
365
|
+
handleDeleteCourse(courseId);
|
|
366
|
+
}
|
|
367
|
+
};
|
|
345
368
|
const handleClickImage = () => {
|
|
346
369
|
if (isCreator || isMember || isAdmin) {
|
|
347
370
|
viewCourse();
|
|
@@ -578,7 +601,8 @@ function CourseCard({
|
|
|
578
601
|
isClassroomArchived: isClassroomArchived,
|
|
579
602
|
canDuplicateCourse: canDuplicateCourse,
|
|
580
603
|
hiddenCourses: hiddenCourses,
|
|
581
|
-
isTeacher: isTeacher
|
|
604
|
+
isTeacher: isTeacher,
|
|
605
|
+
deleteCourse: deleteCourse
|
|
582
606
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Members.default, {
|
|
583
607
|
getMemberDetails: getMemberDetails,
|
|
584
608
|
t: t,
|
|
@@ -135,7 +135,8 @@ function Confirm({
|
|
|
135
135
|
margin: "normal",
|
|
136
136
|
variant: "outlined",
|
|
137
137
|
fullWidth: true,
|
|
138
|
-
required: true
|
|
138
|
+
required: true,
|
|
139
|
+
autoComplete: "off"
|
|
139
140
|
})]
|
|
140
141
|
}), isArchive && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
141
142
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.DialogContentText, {
|
|
@@ -155,7 +156,8 @@ function Confirm({
|
|
|
155
156
|
margin: "normal",
|
|
156
157
|
variant: "outlined",
|
|
157
158
|
fullWidth: true,
|
|
158
|
-
required: true
|
|
159
|
+
required: true,
|
|
160
|
+
autoComplete: "off"
|
|
159
161
|
})]
|
|
160
162
|
}), isUnarchive && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
161
163
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.DialogContentText, {
|
|
@@ -175,7 +177,8 @@ function Confirm({
|
|
|
175
177
|
margin: "normal",
|
|
176
178
|
variant: "outlined",
|
|
177
179
|
fullWidth: true,
|
|
178
|
-
required: true
|
|
180
|
+
required: true,
|
|
181
|
+
autoComplete: "off"
|
|
179
182
|
})]
|
|
180
183
|
}), showCheckbox && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
181
184
|
style: {
|
|
@@ -34,6 +34,7 @@ function CourseList({
|
|
|
34
34
|
isClassroomArchived = false,
|
|
35
35
|
email,
|
|
36
36
|
isTeacher,
|
|
37
|
+
handleDeleteCourse,
|
|
37
38
|
...otherProps
|
|
38
39
|
}) {
|
|
39
40
|
const [items, ref] = (0, _useListScroll.default)({
|
|
@@ -100,6 +101,7 @@ function CourseList({
|
|
|
100
101
|
isClassroomArchived: isClassroomArchived,
|
|
101
102
|
email: email,
|
|
102
103
|
isTeacher: isTeacher,
|
|
104
|
+
handleDeleteCourse: handleDeleteCourse,
|
|
103
105
|
...otherProps
|
|
104
106
|
}, course.courseId)
|
|
105
107
|
}, course.courseId);
|
|
@@ -144,6 +146,7 @@ function CourseList({
|
|
|
144
146
|
classroomId: classroomId,
|
|
145
147
|
isClassroomArchived: isClassroomArchived,
|
|
146
148
|
isTeacher: isTeacher,
|
|
149
|
+
handleDeleteCourse: handleDeleteCourse,
|
|
147
150
|
...otherProps
|
|
148
151
|
}, course.courseId)
|
|
149
152
|
}, course.courseId);
|
|
@@ -499,6 +499,8 @@ function Classroom({
|
|
|
499
499
|
progressHelpers,
|
|
500
500
|
preferred_username,
|
|
501
501
|
assignedCourses,
|
|
502
|
+
assignedStudents,
|
|
503
|
+
assignmentMembersById,
|
|
502
504
|
email,
|
|
503
505
|
...otherProps
|
|
504
506
|
}) {
|
|
@@ -927,6 +929,7 @@ function Classroom({
|
|
|
927
929
|
TabContent: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
|
|
928
930
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_AssignmentCardsList.default, {
|
|
929
931
|
t: t,
|
|
932
|
+
assignmentMembersById: assignmentMembersById,
|
|
930
933
|
lastAssignmentFetch: initialStored,
|
|
931
934
|
handleViewProgress: handleViewProgress,
|
|
932
935
|
isCreator: isCreator,
|
|
@@ -1087,6 +1090,7 @@ function Classroom({
|
|
|
1087
1090
|
py: 1,
|
|
1088
1091
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Progress.default, {
|
|
1089
1092
|
t: t,
|
|
1093
|
+
assignedStudents: assignedStudents,
|
|
1090
1094
|
courses: courses,
|
|
1091
1095
|
members: members,
|
|
1092
1096
|
courseIds: courseIds,
|
|
@@ -65,7 +65,8 @@ function Courses({
|
|
|
65
65
|
memberId,
|
|
66
66
|
handleDuplicateCourse,
|
|
67
67
|
email,
|
|
68
|
-
isTeacher
|
|
68
|
+
isTeacher,
|
|
69
|
+
handleDeleteCourse
|
|
69
70
|
}) {
|
|
70
71
|
const {
|
|
71
72
|
classes
|
|
@@ -140,7 +141,8 @@ function Courses({
|
|
|
140
141
|
handleDuplicateCourse: handleDuplicateCourse,
|
|
141
142
|
cardTitleComponent: "h2",
|
|
142
143
|
email: email,
|
|
143
|
-
isTeacher: isTeacher
|
|
144
|
+
isTeacher: isTeacher,
|
|
145
|
+
handleDeleteCourse: handleDeleteCourse
|
|
144
146
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
|
|
145
147
|
py: 2,
|
|
146
148
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Courses2.default, {
|
|
@@ -179,7 +181,8 @@ function Courses({
|
|
|
179
181
|
username: username,
|
|
180
182
|
handleDuplicateCourse: handleDuplicateCourse,
|
|
181
183
|
cardTitleComponent: "h2",
|
|
182
|
-
isTeacher: isTeacher
|
|
184
|
+
isTeacher: isTeacher,
|
|
185
|
+
handleDeleteCourse: handleDeleteCourse
|
|
183
186
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
|
|
184
187
|
py: 2,
|
|
185
188
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Courses2.default, {
|
|
@@ -163,7 +163,8 @@ function Progress({
|
|
|
163
163
|
assignments = [],
|
|
164
164
|
isVideoChatEnabled,
|
|
165
165
|
assignedCourses,
|
|
166
|
-
assignedCourseIds
|
|
166
|
+
assignedCourseIds,
|
|
167
|
+
assignedStudents
|
|
167
168
|
}) {
|
|
168
169
|
const theme = (0, _styles.useTheme)();
|
|
169
170
|
const isSmallScreen = (0, _useMediaQuery.default)(theme.breakpoints.down("sm"));
|
|
@@ -318,18 +319,18 @@ function Progress({
|
|
|
318
319
|
return members.filter(member => {
|
|
319
320
|
if (memberId) {
|
|
320
321
|
return member.memberId === memberId;
|
|
321
|
-
} else if (selectedMembers && selectedMembers.length && reportType === "assignments" &&
|
|
322
|
+
} else if (selectedMembers && selectedMembers.length && reportType === "assignments" && assignedStudents) {
|
|
322
323
|
const selectedMemberIds = selectedMembers.map(m => m.memberId);
|
|
323
|
-
return selectedMemberIds.includes(member.memberId) &&
|
|
324
|
+
return selectedMemberIds.includes(member.memberId) && (assignedStudents || []).includes(member.memberId);
|
|
324
325
|
} else if (selectedMembers && selectedMembers.length) {
|
|
325
326
|
const selectedMemberIds = selectedMembers.map(m => m.memberId);
|
|
326
327
|
return selectedMemberIds.includes(member.memberId);
|
|
327
|
-
} else if (reportType === "assignments" &&
|
|
328
|
-
return
|
|
328
|
+
} else if (reportType === "assignments" && assignedStudents) {
|
|
329
|
+
return (assignedStudents || []).includes(member.memberId);
|
|
329
330
|
}
|
|
330
331
|
return true;
|
|
331
332
|
});
|
|
332
|
-
}, [members, memberId, selectedMembers, reportType, selectedAssignment]);
|
|
333
|
+
}, [members, memberId, selectedMembers, reportType, selectedAssignment, assignedStudents]);
|
|
333
334
|
let currentView = "all_courses";
|
|
334
335
|
if (reportType === "assignments" && selectedTopic && selectedRoleplay) {
|
|
335
336
|
currentView = "assignment-roleplay";
|