@cuemath/leap 3.0.10 → 3.0.11-akm
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/features/chapters/chapters-list/chapter-item/chapter-item-styled.js +36 -27
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +43 -31
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapters-list.js +16 -15
- package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +2 -2
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +30 -30
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/chapter-details.js +35 -35
- package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +44 -44
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -1
- package/dist/features/homework/homework-card.js +146 -131
- package/dist/features/homework/homework-card.js.map +1 -1
- package/dist/features/journey/hooks/use-chapter-journey.js +28 -28
- package/dist/features/journey/hooks/use-chapter-journey.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +40 -38
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +53 -50
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +64 -62
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +44 -42
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +39 -37
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +38 -31
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
- package/dist/features/post-game-stats/clock/clock.js +45 -45
- package/dist/features/post-game-stats/clock/clock.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/package.json +1 -1
@@ -1,253 +1,268 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import { memo as
|
3
|
-
import
|
4
|
-
import
|
1
|
+
import { jsxs as x, jsx as r } from "react/jsx-runtime";
|
2
|
+
import { memo as D, useRef as M, useCallback as b, useMemo as N } from "react";
|
3
|
+
import X from "../../assets/line-icons/icons/eye2.js";
|
4
|
+
import ee from "../../assets/line-icons/icons/home2.js";
|
5
|
+
import re from "../../assets/line-icons/icons/more-vertical.js";
|
5
6
|
import H from "../../assets/line-icons/icons/redo.js";
|
6
|
-
import
|
7
|
-
import
|
8
|
-
import
|
9
|
-
import
|
10
|
-
import
|
11
|
-
import
|
12
|
-
import { CardContainer as
|
13
|
-
import { getCardAnalyticProps as
|
14
|
-
const
|
7
|
+
import I from "../ui/arrow-tooltip/arrow-tooltip.js";
|
8
|
+
import te from "../ui/buttons/clickable/clickable.js";
|
9
|
+
import j from "../ui/hooks/use-context-menu-click-handler.js";
|
10
|
+
import ie from "../ui/layout/flex-view.js";
|
11
|
+
import F from "./card-menu-options.js";
|
12
|
+
import ne from "./homework-card-view.js";
|
13
|
+
import { CardContainer as ce, MenuWrapper as oe, CardKebabMenuWrapper as ae, BlurContainer as se, BlurFlexView as le, StyledMinus2Icon as ue } from "./styles.js";
|
14
|
+
import { getCardAnalyticProps as he } from "./utils.js";
|
15
|
+
const de = ({
|
15
16
|
// callbacks
|
16
17
|
nodeData: e,
|
17
|
-
onNodeAttempt:
|
18
|
-
onNodeReattempt:
|
18
|
+
onNodeAttempt: C,
|
19
|
+
onNodeReattempt: h,
|
19
20
|
onNodeReview: n,
|
20
|
-
onNodeUnassign:
|
21
|
-
onNodeView:
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
onNodeUnassign: d,
|
22
|
+
onNodeView: k,
|
23
|
+
onNodeAssignAsHomework: m,
|
24
|
+
header: L,
|
25
|
+
isInQueue: v,
|
26
|
+
renderAs: P,
|
27
|
+
shouldOpenOnRight: B,
|
28
|
+
studentId: g,
|
29
|
+
subHeader: z,
|
28
30
|
userMilestoneId: t,
|
29
|
-
userType:
|
31
|
+
userType: R
|
30
32
|
}) => {
|
31
|
-
const i =
|
32
|
-
node_type:
|
33
|
-
state:
|
34
|
-
permissions:
|
35
|
-
user_node_id:
|
36
|
-
user_milestone_id:
|
37
|
-
homework_id:
|
38
|
-
} = e, y =
|
39
|
-
can_start:
|
40
|
-
can_resume:
|
41
|
-
can_review:
|
42
|
-
can_unassign:
|
43
|
-
can_reset:
|
44
|
-
|
45
|
-
|
33
|
+
const i = P === "homework", {
|
34
|
+
node_type: _,
|
35
|
+
state: K,
|
36
|
+
permissions: Y,
|
37
|
+
user_node_id: c,
|
38
|
+
user_milestone_id: l,
|
39
|
+
homework_id: o
|
40
|
+
} = e, y = M(null), $ = M(null), { menuVisible: V, onMenuClick: q } = j(y), { menuVisible: G, onMenuClick: S } = j($), {
|
41
|
+
can_start: f,
|
42
|
+
can_resume: p,
|
43
|
+
can_review: a,
|
44
|
+
can_unassign: J,
|
45
|
+
can_reset: O,
|
46
|
+
can_assign_as_homework: Z
|
47
|
+
} = Y, u = R === "STUDENT", w = b(() => {
|
48
|
+
if (a) {
|
46
49
|
if (typeof n != "function")
|
47
50
|
throw new Error("onReview must be a function");
|
48
|
-
if (!
|
51
|
+
if (!c)
|
49
52
|
throw new Error("user node id must be present to review the sheet");
|
50
53
|
n(e, t);
|
51
54
|
return;
|
52
55
|
}
|
53
|
-
}, [
|
54
|
-
if (
|
55
|
-
if (typeof
|
56
|
+
}, [a, n, c, e, t]), Q = b(() => {
|
57
|
+
if (f || p) {
|
58
|
+
if (typeof C != "function")
|
56
59
|
throw new Error("onNodeAttempt must be a function");
|
57
|
-
|
60
|
+
C(e, o);
|
58
61
|
return;
|
59
62
|
}
|
60
63
|
if (!i) {
|
61
|
-
|
64
|
+
S();
|
62
65
|
return;
|
63
66
|
}
|
64
|
-
|
67
|
+
w();
|
65
68
|
}, [
|
66
|
-
h,
|
67
69
|
f,
|
68
|
-
i,
|
69
70
|
p,
|
70
|
-
|
71
|
+
i,
|
72
|
+
w,
|
73
|
+
C,
|
71
74
|
e,
|
72
|
-
|
73
|
-
|
74
|
-
]),
|
75
|
-
if (
|
75
|
+
o,
|
76
|
+
S
|
77
|
+
]), E = b(() => {
|
78
|
+
if (a) {
|
76
79
|
if (typeof n != "function")
|
77
80
|
throw new Error("onNodeReview must be a function");
|
78
|
-
if (!
|
81
|
+
if (!c)
|
79
82
|
throw new Error("user node id must be present to review the sheet");
|
80
|
-
n(e, t ||
|
83
|
+
n(e, t || l, o);
|
81
84
|
return;
|
82
85
|
}
|
83
|
-
if (typeof
|
86
|
+
if (typeof k != "function")
|
84
87
|
throw new Error("onNodeView must be a function");
|
85
|
-
|
88
|
+
k(e, t || l);
|
86
89
|
}, [
|
87
|
-
|
88
|
-
|
90
|
+
a,
|
91
|
+
k,
|
89
92
|
e,
|
90
93
|
t,
|
91
|
-
|
94
|
+
l,
|
92
95
|
n,
|
93
|
-
|
94
|
-
|
95
|
-
]),
|
96
|
-
(
|
97
|
-
switch (
|
96
|
+
c,
|
97
|
+
o
|
98
|
+
]), s = b(
|
99
|
+
(W) => {
|
100
|
+
switch (W) {
|
98
101
|
case "teacher-card-view":
|
99
|
-
|
102
|
+
E();
|
100
103
|
return;
|
101
104
|
case "student-card-view":
|
102
|
-
|
105
|
+
w();
|
103
106
|
return;
|
104
107
|
case "teacher-card-unassign":
|
105
|
-
|
108
|
+
d == null || d(e, t);
|
106
109
|
return;
|
107
110
|
case "student-card-reattempt":
|
108
111
|
case "teacher-card-redo":
|
109
|
-
|
112
|
+
h == null || h(e, t);
|
113
|
+
return;
|
114
|
+
case "teacher-card-assign-as-hw":
|
115
|
+
m == null || m(e, t);
|
110
116
|
return;
|
111
117
|
default:
|
112
|
-
throw new Error(`No callback function for ${
|
118
|
+
throw new Error(`No callback function for ${W}`);
|
113
119
|
}
|
114
120
|
},
|
115
121
|
[
|
116
122
|
e,
|
117
|
-
d,
|
118
123
|
m,
|
119
|
-
|
120
|
-
|
124
|
+
h,
|
125
|
+
d,
|
126
|
+
w,
|
127
|
+
E,
|
121
128
|
t
|
122
129
|
]
|
123
|
-
),
|
130
|
+
), A = [
|
124
131
|
{
|
125
132
|
id: "teacher-card-view",
|
126
|
-
label:
|
127
|
-
icon:
|
133
|
+
label: a ? "Review" : "View",
|
134
|
+
icon: X,
|
128
135
|
disabled: !1,
|
129
|
-
onClick:
|
136
|
+
onClick: s
|
130
137
|
},
|
131
138
|
{
|
132
139
|
id: "teacher-card-unassign",
|
133
140
|
label: "Unassign",
|
134
|
-
icon:
|
135
|
-
disabled: i ?
|
136
|
-
onClick:
|
141
|
+
icon: ue,
|
142
|
+
disabled: i ? _ === "MASTERY" : !J,
|
143
|
+
onClick: s
|
137
144
|
},
|
138
145
|
{
|
139
146
|
id: "teacher-card-redo",
|
140
147
|
label: "Redo",
|
141
148
|
icon: H,
|
142
|
-
disabled: !
|
143
|
-
onClick:
|
149
|
+
disabled: !O,
|
150
|
+
onClick: s
|
151
|
+
},
|
152
|
+
{
|
153
|
+
id: "teacher-card-assign-as-hw",
|
154
|
+
label: "Assign as HW",
|
155
|
+
icon: ee,
|
156
|
+
disabled: !Z,
|
157
|
+
onClick: s
|
144
158
|
}
|
145
|
-
],
|
159
|
+
], U = [
|
146
160
|
{
|
147
161
|
id: "student-card-view",
|
148
162
|
label: "Review",
|
149
|
-
icon:
|
150
|
-
disabled: !
|
151
|
-
onClick:
|
163
|
+
icon: X,
|
164
|
+
disabled: !a,
|
165
|
+
onClick: s
|
152
166
|
},
|
153
167
|
{
|
154
168
|
id: "student-card-reattempt",
|
155
169
|
label: "Reattempt",
|
156
170
|
icon: H,
|
157
|
-
disabled: !
|
158
|
-
onClick:
|
171
|
+
disabled: !O,
|
172
|
+
onClick: s
|
159
173
|
}
|
160
|
-
],
|
161
|
-
() =>
|
162
|
-
canResume:
|
163
|
-
canStart:
|
164
|
-
homeworkId:
|
174
|
+
], T = N(
|
175
|
+
() => he({
|
176
|
+
canResume: p,
|
177
|
+
canStart: f,
|
178
|
+
homeworkId: o,
|
165
179
|
isHomeWork: i,
|
166
|
-
isStudent:
|
167
|
-
milestoneId:
|
168
|
-
nodeType:
|
169
|
-
studentId:
|
170
|
-
userNodeId:
|
180
|
+
isStudent: u,
|
181
|
+
milestoneId: l,
|
182
|
+
nodeType: _,
|
183
|
+
studentId: g,
|
184
|
+
userNodeId: c
|
171
185
|
}),
|
172
186
|
[
|
173
|
-
|
187
|
+
u,
|
174
188
|
i,
|
175
|
-
|
176
|
-
|
177
|
-
h,
|
189
|
+
g,
|
190
|
+
_,
|
178
191
|
f,
|
179
|
-
|
192
|
+
p,
|
180
193
|
o,
|
181
|
-
|
194
|
+
c,
|
195
|
+
l
|
182
196
|
]
|
183
197
|
);
|
184
|
-
return /* @__PURE__ */
|
198
|
+
return /* @__PURE__ */ x(ce, { $position: "relative", $width: "fit-content", children: [
|
185
199
|
/* @__PURE__ */ r(
|
186
|
-
|
200
|
+
te,
|
187
201
|
{
|
188
|
-
onClick:
|
202
|
+
onClick: u ? Q : E,
|
189
203
|
label: "homework-card",
|
190
|
-
analyticsLabel:
|
191
|
-
analyticsProps:
|
204
|
+
analyticsLabel: T.analyticsLabel,
|
205
|
+
analyticsProps: T.analyticsProps,
|
192
206
|
children: /* @__PURE__ */ r(
|
193
|
-
|
207
|
+
ne,
|
194
208
|
{
|
195
|
-
header:
|
196
|
-
isInQueue:
|
209
|
+
header: L,
|
210
|
+
isInQueue: v,
|
197
211
|
nodeData: e,
|
198
212
|
studentContainerRef: $,
|
199
|
-
subHeader:
|
200
|
-
userType:
|
213
|
+
subHeader: z,
|
214
|
+
userType: R
|
201
215
|
}
|
202
216
|
)
|
203
217
|
}
|
204
218
|
),
|
205
|
-
|
206
|
-
|
219
|
+
u && !i && /* @__PURE__ */ r(
|
220
|
+
F,
|
207
221
|
{
|
208
222
|
$width: 200,
|
209
|
-
options:
|
223
|
+
options: U,
|
210
224
|
triggerRef: $,
|
211
|
-
visible:
|
225
|
+
visible: G,
|
212
226
|
shouldOpenOnRight: !1
|
213
227
|
}
|
214
228
|
),
|
215
|
-
!
|
229
|
+
!u && /* @__PURE__ */ x(oe, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
|
216
230
|
/* @__PURE__ */ r(
|
217
|
-
|
231
|
+
I,
|
218
232
|
{
|
219
233
|
renderAs: "primary",
|
220
234
|
tooltipItem: "Review",
|
221
235
|
position: "bottom",
|
222
236
|
zIndex: 6,
|
223
237
|
parentWidth: "100%",
|
224
|
-
hidden:
|
238
|
+
hidden: V || K !== "WAIT_FOR_REVIEW" && i,
|
225
239
|
children: /* @__PURE__ */ r(
|
226
|
-
|
240
|
+
ae,
|
227
241
|
{
|
228
242
|
$alignItems: "center",
|
229
243
|
$justifyContent: "center",
|
230
244
|
ref: y,
|
231
|
-
onClick:
|
232
|
-
children: /* @__PURE__ */ r(
|
245
|
+
onClick: q,
|
246
|
+
children: /* @__PURE__ */ r(re, { width: 16, height: 16 })
|
233
247
|
}
|
234
248
|
)
|
235
249
|
}
|
236
250
|
),
|
237
251
|
/* @__PURE__ */ r(
|
238
|
-
|
252
|
+
F,
|
239
253
|
{
|
240
|
-
options:
|
254
|
+
options: A,
|
241
255
|
triggerRef: y,
|
242
|
-
visible:
|
243
|
-
shouldOpenOnRight:
|
256
|
+
visible: V,
|
257
|
+
shouldOpenOnRight: B,
|
258
|
+
$width: 144
|
244
259
|
}
|
245
260
|
)
|
246
261
|
] }),
|
247
|
-
|
262
|
+
v && /* @__PURE__ */ r(se, { $background: "WHITE_5", children: /* @__PURE__ */ r(le, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ r(I, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ r(ie, { $heightX: 1, $widthX: 6 }) }) }) })
|
248
263
|
] });
|
249
|
-
},
|
264
|
+
}, Ve = D(de);
|
250
265
|
export {
|
251
|
-
|
266
|
+
Ve as default
|
252
267
|
};
|
253
268
|
//# sourceMappingURL=homework-card.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../ui/types';\n\nimport { memo, useCallback, useMemo, useRef } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: TUserTypes;\n studentId: string;\n userMilestoneId?: string;\n renderAs: 'homework' | 'milestone';\n shouldOpenOnRight: boolean;\n isInQueue?: boolean;\n}\n\nconst HomeworkCard = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n\n header,\n isInQueue,\n renderAs,\n shouldOpenOnRight,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}: IHomeworkCardProps) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n state,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: milestoneId,\n homework_id: homeworkId,\n } = nodeData;\n\n const teacherContainerRef = useRef<HTMLDivElement>(null);\n const studentContainerRef = useRef<HTMLDivElement>(null);\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, userMilestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canStart,\n canResume,\n isHomeWork,\n onStudentViewSheet,\n onNodeAttempt,\n nodeData,\n homeworkId,\n onStudentMenuClick,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId || milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId || milestoneId);\n }, [\n canReview,\n onNodeView,\n nodeData,\n userMilestoneId,\n milestoneId,\n onNodeReview,\n userNodeId,\n homeworkId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, userMilestoneId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, userMilestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n nodeData,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n userMilestoneId,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n }),\n [\n isStudent,\n isHomeWork,\n studentId,\n nodeType,\n canStart,\n canResume,\n homeworkId,\n userNodeId,\n milestoneId,\n ],\n );\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n >\n <HomeworkView\n header={header}\n isInQueue={isInQueue}\n nodeData={nodeData}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n />\n </Clickable>\n {isStudent && !isHomeWork && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","header","isInQueue","renderAs","shouldOpenOnRight","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","state","permissions","userNodeId","milestoneId","homeworkId","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../ui/types';\n\nimport { memo, useCallback, useMemo, useRef } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: TUserTypes;\n studentId: string;\n userMilestoneId?: string;\n renderAs: 'homework' | 'milestone';\n shouldOpenOnRight: boolean;\n isInQueue?: boolean;\n}\n\nconst HomeworkCard = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n onNodeAssignAsHomework,\n\n header,\n isInQueue,\n renderAs,\n shouldOpenOnRight,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}: IHomeworkCardProps) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n state,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: milestoneId,\n homework_id: homeworkId,\n } = nodeData;\n\n const teacherContainerRef = useRef<HTMLDivElement>(null);\n const studentContainerRef = useRef<HTMLDivElement>(null);\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n can_assign_as_homework: canAssignAsHw,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, userMilestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canStart,\n canResume,\n isHomeWork,\n onStudentViewSheet,\n onNodeAttempt,\n nodeData,\n homeworkId,\n onStudentMenuClick,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId || milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId || milestoneId);\n }, [\n canReview,\n onNodeView,\n nodeData,\n userMilestoneId,\n milestoneId,\n onNodeReview,\n userNodeId,\n homeworkId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, userMilestoneId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, userMilestoneId);\n\n return;\n\n case 'teacher-card-assign-as-hw':\n onNodeAssignAsHomework?.(nodeData, userMilestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n userMilestoneId,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-assign-as-hw',\n label: 'Assign as HW',\n icon: Home2Icon,\n disabled: !canAssignAsHw,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n }),\n [\n isStudent,\n isHomeWork,\n studentId,\n nodeType,\n canStart,\n canResume,\n homeworkId,\n userNodeId,\n milestoneId,\n ],\n );\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n >\n <HomeworkView\n header={header}\n isInQueue={isInQueue}\n nodeData={nodeData}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n />\n </Clickable>\n {isStudent && !isHomeWork && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n $width={144}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","onNodeAssignAsHomework","header","isInQueue","renderAs","shouldOpenOnRight","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","state","permissions","userNodeId","milestoneId","homeworkId","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}
|
@@ -1,31 +1,31 @@
|
|
1
1
|
import { jsxs as x, jsx as o } from "react/jsx-runtime";
|
2
2
|
import { useRef as n, useCallback as p, useMemo as R, useEffect as N } from "react";
|
3
3
|
import _ from "../../chapters-v2/chapter-details/block-sections/block-sections.js";
|
4
|
-
import
|
4
|
+
import k from "../../chapters-v2/chapter-details/chapter-banner/chapter-banner.js";
|
5
5
|
import I from "../../chapters-v2/chapter-details/chapter-details.js";
|
6
|
-
import
|
6
|
+
import A from "../../ui/layout/flex-view.js";
|
7
7
|
import P from "../../ui/separator/separator.js";
|
8
|
-
import { JOURNEY_ID_STUDENT as
|
9
|
-
import { PROGRESS_STAT_MOCK as y, BLOCK_MOCKS as
|
8
|
+
import { JOURNEY_ID_STUDENT as H } from "../journey-id/journey-id-student.js";
|
9
|
+
import { PROGRESS_STAT_MOCK as y, BLOCK_MOCKS as K } from "../mocks/chapter-page-journey-mock-data.js";
|
10
10
|
import { IndicatorType as l } from "../use-journey/constants.js";
|
11
11
|
import { useJourney as v } from "../use-journey/use-journey.js";
|
12
|
-
import
|
12
|
+
import s from "./use-home-page-journey/tooltip-item.js";
|
13
13
|
const $ = () => {
|
14
|
-
const t =
|
14
|
+
const t = H.CHAPTER_PAGE_JOURNEY, r = n(null), e = n(null), a = n(null), c = n([]), { nextCoachmark: d, setJourney: h, endJourney: C } = v(), i = p(() => {
|
15
15
|
d(t, !1, 0, !0);
|
16
16
|
}, [t, d]), g = p(() => {
|
17
17
|
document.body.style.overflow = "unset", C(t);
|
18
18
|
}, [C, t]), f = p(
|
19
19
|
({ chapterDetails: m, userChapterId: B, studentId: E, userType: T }) => {
|
20
|
-
const { name:
|
21
|
-
if (!(r != null && r.current) || !(e != null && e.current) || !
|
20
|
+
const { name: w, image_hue: u, image_url: O } = m;
|
21
|
+
if (!(r != null && r.current) || !(e != null && e.current) || !a.current)
|
22
22
|
return;
|
23
23
|
const S = [
|
24
24
|
{
|
25
25
|
originalElementToHighlightRef: r,
|
26
26
|
isActive: !1,
|
27
27
|
type: l.TOOLTIP,
|
28
|
-
elementToHighlight: /* @__PURE__ */ x(
|
28
|
+
elementToHighlight: /* @__PURE__ */ x(A, { children: [
|
29
29
|
/* @__PURE__ */ o(P, { heightX: 10 }),
|
30
30
|
/* @__PURE__ */ o(
|
31
31
|
I,
|
@@ -35,7 +35,7 @@ const $ = () => {
|
|
35
35
|
userType: T,
|
36
36
|
onBlockSkipUnskip: () => null,
|
37
37
|
onNodeAttempt: () => null,
|
38
|
-
|
38
|
+
onNodeAssignAsHomework: () => null,
|
39
39
|
onNodeMarkAsDone: () => null,
|
40
40
|
onNodeReattempt: () => null,
|
41
41
|
onNodeReview: () => null,
|
@@ -53,7 +53,7 @@ const $ = () => {
|
|
53
53
|
arrowSize: 12,
|
54
54
|
width: 264,
|
55
55
|
tooltipItem: /* @__PURE__ */ o(
|
56
|
-
|
56
|
+
s,
|
57
57
|
{
|
58
58
|
text: "Welcome to the all new chapter experience.",
|
59
59
|
buttonLabel: "Next",
|
@@ -65,11 +65,11 @@ const $ = () => {
|
|
65
65
|
{
|
66
66
|
originalElementToHighlightRef: e,
|
67
67
|
elementToHighlight: /* @__PURE__ */ o(
|
68
|
-
|
68
|
+
k,
|
69
69
|
{
|
70
|
-
title:
|
70
|
+
title: w,
|
71
71
|
progressStats: y,
|
72
|
-
imageUrl:
|
72
|
+
imageUrl: O,
|
73
73
|
imageHue: u
|
74
74
|
}
|
75
75
|
),
|
@@ -84,7 +84,7 @@ const $ = () => {
|
|
84
84
|
width: 264,
|
85
85
|
arrowSize: 12,
|
86
86
|
tooltipItem: /* @__PURE__ */ o(
|
87
|
-
|
87
|
+
s,
|
88
88
|
{
|
89
89
|
text: "A chapter is divided into *core sheets (compulsory), and supplementary sheets.",
|
90
90
|
buttonLabel: "Next",
|
@@ -97,11 +97,11 @@ const $ = () => {
|
|
97
97
|
{
|
98
98
|
originalElementToHighlightRef: e,
|
99
99
|
elementToHighlight: /* @__PURE__ */ o(
|
100
|
-
|
100
|
+
k,
|
101
101
|
{
|
102
|
-
title:
|
102
|
+
title: w,
|
103
103
|
progressStats: y,
|
104
|
-
imageUrl:
|
104
|
+
imageUrl: O,
|
105
105
|
imageHue: u
|
106
106
|
}
|
107
107
|
),
|
@@ -116,7 +116,7 @@ const $ = () => {
|
|
116
116
|
arrowSize: 12,
|
117
117
|
width: 264,
|
118
118
|
tooltipItem: /* @__PURE__ */ o(
|
119
|
-
|
119
|
+
s,
|
120
120
|
{
|
121
121
|
text: "Easily track the progress of the core sheets.",
|
122
122
|
buttonLabel: "Next",
|
@@ -127,8 +127,8 @@ const $ = () => {
|
|
127
127
|
isActive: !1
|
128
128
|
},
|
129
129
|
{
|
130
|
-
originalElementToHighlightRef:
|
131
|
-
elementToHighlight: /* @__PURE__ */ o(
|
130
|
+
originalElementToHighlightRef: a,
|
131
|
+
elementToHighlight: /* @__PURE__ */ o(A, { $widthX: 50, children: /* @__PURE__ */ o(_, { userType: T, blocks: K, imageHue: u }) }),
|
132
132
|
type: l.TOOLTIP,
|
133
133
|
indicator: {
|
134
134
|
position: "top",
|
@@ -140,7 +140,7 @@ const $ = () => {
|
|
140
140
|
arrowSize: 12,
|
141
141
|
width: 264,
|
142
142
|
tooltipItem: /* @__PURE__ */ o(
|
143
|
-
|
143
|
+
s,
|
144
144
|
{
|
145
145
|
text: "Core sheets are marked to help you find them faster.",
|
146
146
|
buttonLabel: "Got it",
|
@@ -152,24 +152,24 @@ const $ = () => {
|
|
152
152
|
}
|
153
153
|
];
|
154
154
|
h(t, S);
|
155
|
-
const
|
156
|
-
clearTimeout(
|
155
|
+
const b = setTimeout(() => {
|
156
|
+
clearTimeout(b), window.scrollTo(0, 0), document.body.style.overflow = "hidden", i();
|
157
157
|
}, 500);
|
158
|
-
c.current.push(
|
158
|
+
c.current.push(b);
|
159
159
|
},
|
160
160
|
[i, g, h, t]
|
161
|
-
),
|
161
|
+
), L = R(
|
162
162
|
() => ({
|
163
163
|
chapterPageRef: r,
|
164
164
|
bannerRef: e,
|
165
|
-
coreBlocksRef:
|
165
|
+
coreBlocksRef: a,
|
166
166
|
startJourney: f
|
167
167
|
}),
|
168
168
|
[f]
|
169
169
|
);
|
170
170
|
return N(() => () => {
|
171
171
|
c.current.forEach((m) => clearTimeout(m)), c.current = [];
|
172
|
-
}, []),
|
172
|
+
}, []), L;
|
173
173
|
};
|
174
174
|
export {
|
175
175
|
$ as useChapterPageJourney
|