@cuemath/leap 2.8.60-ag1 → 2.8.60-ag3
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 +5 -4
- 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 +2 -1
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +7 -7
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +6 -6
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +2 -2
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -1
- package/dist/features/chapters-v2/utils/node-card-utils.js +18 -17
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
- package/dist/features/homework/card-menu-options.js +44 -20
- package/dist/features/homework/card-menu-options.js.map +1 -1
- package/dist/features/homework/homework-card.js +200 -153
- package/dist/features/homework/homework-card.js.map +1 -1
- package/dist/features/homework/hw-card-list/hw-card-list.js +444 -0
- package/dist/features/homework/hw-card-list/hw-card-list.js.map +1 -0
- package/dist/features/homework/styles.js +30 -23
- package/dist/features/homework/styles.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-tests-list.js +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js +10 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js.map +1 -0
- package/dist/features/recent-chapters/recent-chapters.js +1 -1
- package/dist/features/recent-chapters/recent-chapters.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.js +328 -326
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
@@ -1,60 +1,64 @@
|
|
1
|
-
import {
|
2
|
-
import { memo as
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import { getNodeTypeBasedBgImage as
|
8
|
-
import { getNodeCardBasedIcon as
|
9
|
-
import
|
10
|
-
import
|
11
|
-
import
|
12
|
-
import
|
13
|
-
import
|
14
|
-
import
|
15
|
-
import { CardContainer as
|
16
|
-
const
|
17
|
-
header:
|
1
|
+
import { jsxs as n, jsx as e } from "react/jsx-runtime";
|
2
|
+
import { memo as N, useRef as T, useState as ee, useLayoutEffect as re, useCallback as _ } from "react";
|
3
|
+
import W from "../../assets/line-icons/icons/eye2.js";
|
4
|
+
import te from "../../assets/line-icons/icons/more-vertical.js";
|
5
|
+
import ie from "../../assets/line-icons/icons/redo.js";
|
6
|
+
import ne from "../chapters-v2/comps/node-card/node-card-tags.js";
|
7
|
+
import { getNodeTypeBasedBgImage as oe } from "../chapters-v2/utils/index.js";
|
8
|
+
import { getNodeCardBasedIcon as ce } from "../chapters-v2/utils/node-card-utils.js";
|
9
|
+
import A from "../ui/arrow-tooltip/arrow-tooltip.js";
|
10
|
+
import ae from "../ui/buttons/clickable/clickable.js";
|
11
|
+
import M from "../ui/hooks/use-context-menu-click-handler.js";
|
12
|
+
import d from "../ui/layout/flex-view.js";
|
13
|
+
import le from "../ui/text/text.js";
|
14
|
+
import O from "./card-menu-options.js";
|
15
|
+
import { CardContainer as se, CardWrapper as ue, IconWrapper as de, BannerImageWrapper as he, BannerImage as me, HeaderText as fe, SubHeaderText as pe, CardMenuOptionsWrapper as B, MenuWrapper as we, CardKebabMenuWrapper as be, StyledMinus2Icon as ge } from "./styles.js";
|
16
|
+
const $e = ({
|
17
|
+
header: v,
|
18
18
|
nodeData: r,
|
19
|
-
subHeader:
|
20
|
-
userType:
|
19
|
+
subHeader: j,
|
20
|
+
userType: G,
|
21
21
|
userMilestoneId: t,
|
22
22
|
onNodeUnassign: c,
|
23
|
-
|
24
|
-
onNodeView:
|
23
|
+
onNodeReattempt: a,
|
24
|
+
onNodeView: h,
|
25
25
|
onNodeReview: i,
|
26
26
|
onNodeAttempt: m
|
27
27
|
}) => {
|
28
28
|
const {
|
29
|
-
node_type:
|
30
|
-
state:
|
31
|
-
accuracy:
|
32
|
-
due_date_ts:
|
33
|
-
image_url:
|
34
|
-
image_hue:
|
35
|
-
card_header:
|
36
|
-
permissions:
|
29
|
+
node_type: f,
|
30
|
+
state: K,
|
31
|
+
accuracy: L,
|
32
|
+
due_date_ts: z,
|
33
|
+
image_url: y,
|
34
|
+
image_hue: F,
|
35
|
+
card_header: P = "",
|
36
|
+
permissions: p,
|
37
37
|
user_node_id: l
|
38
|
-
} = r,
|
39
|
-
can_start:
|
40
|
-
can_resume:
|
41
|
-
can_review:
|
42
|
-
can_teacher_review:
|
43
|
-
can_unassign:
|
44
|
-
can_reset:
|
45
|
-
} =
|
46
|
-
|
47
|
-
|
48
|
-
}, [
|
49
|
-
const
|
50
|
-
if (
|
51
|
-
if (typeof m != "function")
|
38
|
+
} = r, q = oe(f), x = ce(f), w = T(null), b = T(null), o = T(null), { menuVisible: S, onMenuClick: J } = M(w), { menuVisible: E, onMenuClick: I } = M(b), [Q, Y] = ee(!1), {
|
39
|
+
can_start: R,
|
40
|
+
can_resume: H,
|
41
|
+
can_review: g,
|
42
|
+
can_teacher_review: V,
|
43
|
+
can_unassign: Z,
|
44
|
+
can_reset: $
|
45
|
+
} = p, s = G === "STUDENT";
|
46
|
+
re(() => {
|
47
|
+
o.current && o.current.scrollHeight > o.current.clientHeight && Y(!0);
|
48
|
+
}, [o]);
|
49
|
+
const C = _(() => {
|
50
|
+
if (console.log("calles onStudentView view", p), R || H) {
|
51
|
+
if (console.log("calles onStudentView canStart || canResume"), typeof m != "function")
|
52
52
|
throw new Error("onNodeAttempt must be a function");
|
53
53
|
m(r);
|
54
54
|
return;
|
55
55
|
}
|
56
|
-
if (
|
57
|
-
|
56
|
+
if ($) {
|
57
|
+
console.log("calles onStudentView canReset"), I();
|
58
|
+
return;
|
59
|
+
}
|
60
|
+
if (g) {
|
61
|
+
if (console.log("calles onStudentView canReview"), typeof i != "function")
|
58
62
|
throw new Error("onReview must be a function");
|
59
63
|
if (!l)
|
60
64
|
throw new Error("user node id must be present to review the sheet");
|
@@ -62,16 +66,19 @@ const fe = ({
|
|
62
66
|
return;
|
63
67
|
}
|
64
68
|
}, [
|
65
|
-
|
66
|
-
|
69
|
+
p,
|
70
|
+
R,
|
71
|
+
H,
|
72
|
+
$,
|
67
73
|
g,
|
68
|
-
t,
|
69
|
-
r,
|
70
74
|
m,
|
75
|
+
r,
|
76
|
+
I,
|
71
77
|
i,
|
72
|
-
l
|
73
|
-
|
74
|
-
|
78
|
+
l,
|
79
|
+
t
|
80
|
+
]), k = _(() => {
|
81
|
+
if (V) {
|
75
82
|
if (typeof i != "function")
|
76
83
|
throw new Error("onReview must be a function");
|
77
84
|
if (!l)
|
@@ -79,131 +86,171 @@ const fe = ({
|
|
79
86
|
i(r, t);
|
80
87
|
return;
|
81
88
|
}
|
82
|
-
if (typeof
|
89
|
+
if (typeof h != "function")
|
83
90
|
throw new Error("onPreview must be a function");
|
84
|
-
|
85
|
-
}, [
|
86
|
-
(
|
87
|
-
switch (
|
88
|
-
case "card-view":
|
89
|
-
|
91
|
+
h(r, t);
|
92
|
+
}, [V, t, r, i, h, l]), u = _(
|
93
|
+
(X) => {
|
94
|
+
switch (X) {
|
95
|
+
case "teacher-card-view":
|
96
|
+
k();
|
97
|
+
return;
|
98
|
+
case "student-card-click":
|
99
|
+
C();
|
90
100
|
return;
|
91
101
|
case "card-unassign":
|
92
102
|
c == null || c(r, t);
|
93
103
|
return;
|
94
|
-
case "card-
|
104
|
+
case "card-reattempt":
|
95
105
|
a == null || a(r, t);
|
96
106
|
return;
|
97
107
|
default:
|
98
|
-
throw new Error(`No callback function for ${
|
108
|
+
throw new Error(`No callback function for ${X}`);
|
99
109
|
}
|
100
110
|
},
|
101
|
-
[r, a, c,
|
102
|
-
),
|
111
|
+
[r, a, c, C, k, t]
|
112
|
+
), U = [
|
103
113
|
{
|
104
|
-
id: "card-view",
|
114
|
+
id: "teacher-card-view",
|
105
115
|
label: "View",
|
106
|
-
icon:
|
107
|
-
|
108
|
-
onClick:
|
116
|
+
icon: W,
|
117
|
+
disabled: !0,
|
118
|
+
onClick: u
|
109
119
|
},
|
110
120
|
{
|
111
121
|
id: "card-unassign",
|
112
122
|
label: "Unassign",
|
113
|
-
icon:
|
114
|
-
|
115
|
-
onClick:
|
123
|
+
icon: ge,
|
124
|
+
disabled: !!Z,
|
125
|
+
onClick: u
|
126
|
+
}
|
127
|
+
], D = [
|
128
|
+
{
|
129
|
+
id: "student-card-click",
|
130
|
+
label: "Review",
|
131
|
+
icon: W,
|
132
|
+
disabled: !!g,
|
133
|
+
onClick: u
|
116
134
|
},
|
117
135
|
{
|
118
|
-
id: "card-
|
119
|
-
label: "
|
120
|
-
icon:
|
121
|
-
|
122
|
-
onClick:
|
136
|
+
id: "card-reattempt",
|
137
|
+
label: "Reattempt",
|
138
|
+
icon: ie,
|
139
|
+
disabled: !!$,
|
140
|
+
onClick: u
|
123
141
|
}
|
124
142
|
];
|
125
|
-
return /* @__PURE__ */
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
$width: 31,
|
148
|
-
$height: 31,
|
149
|
-
$borderRadiusX: 2,
|
150
|
-
$background: "WHITE_1",
|
151
|
-
$position: "relative",
|
152
|
-
$alignItems: "center",
|
153
|
-
$justifyContent: "center",
|
154
|
-
children: $ && /* @__PURE__ */ e($, { width: 20, height: 20 })
|
155
|
-
}
|
156
|
-
),
|
157
|
-
/* @__PURE__ */ e(te, { $renderAs: "ac4-black", children: B }),
|
158
|
-
!!w && /* @__PURE__ */ e(ae, { children: /* @__PURE__ */ e(le, { src: w, alt: "Chapter image" }) })
|
159
|
-
]
|
160
|
-
}
|
161
|
-
),
|
162
|
-
/* @__PURE__ */ e(U, { nodeType: h, state: X, accuracy: S, dueDateTs: W }),
|
163
|
-
/* @__PURE__ */ o(s, { $gutterX: 0.75, $gapX: 1, $flexRowGapX: 0.5, $background: "WHITE", children: [
|
164
|
-
/* @__PURE__ */ e(
|
165
|
-
E,
|
166
|
-
{
|
167
|
-
renderAs: "primary",
|
168
|
-
position: "bottom",
|
169
|
-
tooltipItem: d,
|
170
|
-
hidden: !G,
|
171
|
-
widthX: 21.75,
|
172
|
-
children: /* @__PURE__ */ e(s, { $heightX: 2.5, children: /* @__PURE__ */ e(se, { ref: n, $renderAs: "ab3", children: d }) })
|
173
|
-
}
|
174
|
-
),
|
175
|
-
/* @__PURE__ */ o(
|
176
|
-
s,
|
177
|
-
{
|
178
|
-
$flexDirection: "row",
|
179
|
-
$heightX: 1.25,
|
180
|
-
$alignItems: "center",
|
181
|
-
$justifyContent: "space-between",
|
182
|
-
children: [
|
183
|
-
/* @__PURE__ */ e(ue, { $renderAs: "ub3", $color: "BLACK_T_60", children: I }),
|
184
|
-
!k && /* @__PURE__ */ o(s, { $position: "relative", $width: "fit-content", children: [
|
143
|
+
return console.log(!s), /* @__PURE__ */ n(d, { $position: "relative", children: [
|
144
|
+
/* @__PURE__ */ n(ae, { onClick: s ? C : k, label: "homework-card", children: [
|
145
|
+
/* @__PURE__ */ n(
|
146
|
+
se,
|
147
|
+
{
|
148
|
+
ref: b,
|
149
|
+
$widthX: 12.5,
|
150
|
+
$position: "relative",
|
151
|
+
$background: `${F || "ORANGE"}_2`,
|
152
|
+
children: [
|
153
|
+
/* @__PURE__ */ n(
|
154
|
+
ue,
|
155
|
+
{
|
156
|
+
$flexDirection: "row",
|
157
|
+
$alignItems: "center",
|
158
|
+
$width: "100%",
|
159
|
+
$heightX: 3.5,
|
160
|
+
$bgImage: q,
|
161
|
+
$gutterX: 0.78125,
|
162
|
+
$flexGap: 8.5,
|
163
|
+
$position: "relative",
|
164
|
+
children: [
|
185
165
|
/* @__PURE__ */ e(
|
186
|
-
|
166
|
+
de,
|
187
167
|
{
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
168
|
+
$width: 31,
|
169
|
+
$height: 31,
|
170
|
+
$borderRadiusX: 2,
|
171
|
+
$background: "WHITE_1",
|
172
|
+
$position: "relative",
|
173
|
+
$alignItems: "center",
|
174
|
+
$justifyContent: "center",
|
175
|
+
children: x && /* @__PURE__ */ e(x, { width: 20, height: 20 })
|
194
176
|
}
|
195
177
|
),
|
196
|
-
/* @__PURE__ */ e(
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
178
|
+
/* @__PURE__ */ e(le, { $renderAs: "ac4-black", children: P }),
|
179
|
+
!!y && /* @__PURE__ */ e(he, { children: /* @__PURE__ */ e(me, { src: y, alt: "Chapter image" }) })
|
180
|
+
]
|
181
|
+
}
|
182
|
+
),
|
183
|
+
/* @__PURE__ */ e(
|
184
|
+
ne,
|
185
|
+
{
|
186
|
+
nodeType: f,
|
187
|
+
state: K,
|
188
|
+
accuracy: L,
|
189
|
+
dueDateTs: z
|
190
|
+
}
|
191
|
+
),
|
192
|
+
/* @__PURE__ */ n(d, { $gutterX: 0.75, $gapX: 1, $flexRowGapX: 0.5, $background: "WHITE", children: [
|
193
|
+
/* @__PURE__ */ e(
|
194
|
+
A,
|
195
|
+
{
|
196
|
+
renderAs: "primary",
|
197
|
+
position: "bottom",
|
198
|
+
tooltipItem: v,
|
199
|
+
hidden: !Q,
|
200
|
+
widthX: 21.75,
|
201
|
+
children: /* @__PURE__ */ e(d, { $heightX: 2.5, children: /* @__PURE__ */ e(fe, { ref: o, $renderAs: "ab3", children: v }) })
|
202
|
+
}
|
203
|
+
),
|
204
|
+
/* @__PURE__ */ e(
|
205
|
+
d,
|
206
|
+
{
|
207
|
+
$flexDirection: "row",
|
208
|
+
$heightX: 1.25,
|
209
|
+
$alignItems: "center",
|
210
|
+
$justifyContent: "space-between",
|
211
|
+
children: /* @__PURE__ */ e(pe, { $renderAs: "ub3", $color: "BLACK_T_60", children: j })
|
212
|
+
}
|
213
|
+
)
|
214
|
+
] })
|
215
|
+
]
|
216
|
+
}
|
217
|
+
),
|
218
|
+
s && /* @__PURE__ */ e(B, { $visible: E, children: /* @__PURE__ */ e(
|
219
|
+
O,
|
220
|
+
{
|
221
|
+
$width: 200,
|
222
|
+
options: D,
|
223
|
+
triggerRef: b,
|
224
|
+
visible: E
|
225
|
+
}
|
226
|
+
) })
|
227
|
+
] }),
|
228
|
+
!s && /* @__PURE__ */ n(we, { $position: "absolute", $width: "fit-content", children: [
|
229
|
+
/* @__PURE__ */ e(
|
230
|
+
A,
|
231
|
+
{
|
232
|
+
isAnimated: !0,
|
233
|
+
renderAs: "primary",
|
234
|
+
tooltipItem: "Review",
|
235
|
+
position: "bottom",
|
236
|
+
zIndex: 5,
|
237
|
+
parentWidth: "100%",
|
238
|
+
children: /* @__PURE__ */ e(be, { ref: w, onClick: J, children: /* @__PURE__ */ e(te, { width: 16, height: 16 }) })
|
239
|
+
}
|
240
|
+
),
|
241
|
+
/* @__PURE__ */ e(B, { $visible: S, children: /* @__PURE__ */ e(
|
242
|
+
O,
|
243
|
+
{
|
244
|
+
$width: "fit-content",
|
245
|
+
options: U,
|
246
|
+
triggerRef: w,
|
247
|
+
visible: S
|
248
|
+
}
|
249
|
+
) })
|
250
|
+
] })
|
251
|
+
] });
|
252
|
+
}, Ae = N($e);
|
206
253
|
export {
|
207
|
-
|
254
|
+
Ae as default
|
208
255
|
};
|
209
256
|
//# 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';\n\nimport { memo, useCallback, useLayoutEffect, useRef, useState } 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 NodeCardTags from '../chapters-v2/comps/node-card/node-card-tags';\nimport { getNodeTypeBasedBgImage } from '../chapters-v2/utils';\nimport { getNodeCardBasedIcon } from '../chapters-v2/utils/node-card-utils';\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 Text from '../ui/text/text';\nimport CardMenuOptions from './card-menu-options';\nimport * as Styled from './styles';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: 'TEACHER' | 'STUDENT';\n userMilestoneId?: string;\n}\n\nconst HomeworkCard = ({\n header,\n nodeData,\n subHeader,\n userType,\n userMilestoneId,\n onNodeUnassign,\n onNodeReset,\n onNodeView,\n onNodeReview,\n onNodeAttempt,\n}: IHomeworkCardProps) => {\n const {\n node_type: nodeType,\n state,\n accuracy,\n due_date_ts: dueDateTs,\n image_url: imageUrl,\n image_hue: imageHue,\n card_header: cardHeader = '',\n permissions,\n user_node_id: userNodeId,\n } = nodeData;\n\n const bgImage = getNodeTypeBasedBgImage(nodeType);\n const NodeCardIcon = getNodeCardBasedIcon(nodeType);\n const containerRef = useRef<HTMLDivElement>(null);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(containerRef);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_teacher_review: canTeacherReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n const onStudentView = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData);\n\n return;\n }\n\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 }, [\n canResume,\n canReview,\n canStart,\n userMilestoneId,\n nodeData,\n onNodeAttempt,\n onNodeReview,\n userNodeId,\n ]);\n\n const onTeacherView = useCallback(() => {\n if (canTeacherReview) {\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\n onNodeReview(nodeData, userMilestoneId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onPreview must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId);\n }, [canTeacherReview, userMilestoneId, nodeData, onNodeReview, onNodeView, userNodeId]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'card-view':\n onTeacherView();\n\n return;\n case 'card-unassign':\n onNodeUnassign?.(nodeData, userMilestoneId);\n\n return;\n case 'card-reset':\n onNodeReset?.(nodeData, userMilestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [nodeData, onNodeReset, onNodeUnassign, onTeacherView, userMilestoneId],\n );\n\n const menuOptions = [\n {\n id: 'card-view',\n label: 'View',\n icon: Eye2Icon,\n visible: true,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n visible: !!canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'card-reset',\n label: 'Reset',\n icon: RedoIcon,\n visible: !!canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return (\n <Clickable onClick={isStudent ? onStudentView : undefined} label=\"homework-card\">\n <Styled.CardContainer\n $widthX={12.5}\n $position=\"relative\"\n $background={`${imageHue || 'ORANGE'}_2`}\n >\n <Styled.CardWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={bgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $position=\"relative\"\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $borderRadiusX={2}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {NodeCardIcon && <NodeCardIcon width={20} height={20} />}\n </Styled.IconWrapper>\n <Text $renderAs=\"ac4-black\">{cardHeader}</Text>\n {!!imageUrl && (\n <Styled.BannerImageWrapper>\n <Styled.BannerImage src={imageUrl} alt=\"Chapter image\" />\n </Styled.BannerImageWrapper>\n )}\n </Styled.CardWrapper>\n <NodeCardTags nodeType={nodeType} state={state} accuracy={accuracy} dueDateTs={dueDateTs} />\n <FlexView $gutterX={0.75} $gapX={1} $flexRowGapX={0.5} $background=\"WHITE\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={header}\n hidden={!showTitleTooltip}\n widthX={21.75}\n >\n <FlexView $heightX={2.5}>\n <Styled.HeaderText ref={titleTextRef} $renderAs=\"ab3\">\n {header}\n </Styled.HeaderText>\n </FlexView>\n </ArrowTooltip>\n <FlexView\n $flexDirection=\"row\"\n $heightX={1.25}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n >\n <Styled.SubHeaderText $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {subHeader}\n </Styled.SubHeaderText>\n {!isStudent && (\n <FlexView $position=\"relative\" $width=\"fit-content\">\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={5}\n parentWidth=\"100%\"\n >\n <Styled.CardKebabMenuWrapper ref={containerRef} onClick={onMenuClick}>\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <Styled.CardMenuOptionsWrapper $visible={menuVisible}>\n <CardMenuOptions options={menuOptions} />\n </Styled.CardMenuOptionsWrapper>\n </FlexView>\n )}\n </FlexView>\n </FlexView>\n </Styled.CardContainer>\n </Clickable>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","header","nodeData","subHeader","userType","userMilestoneId","onNodeUnassign","onNodeReset","onNodeView","onNodeReview","onNodeAttempt","nodeType","state","accuracy","dueDateTs","imageUrl","imageHue","cardHeader","permissions","userNodeId","bgImage","getNodeTypeBasedBgImage","NodeCardIcon","getNodeCardBasedIcon","containerRef","useRef","titleTextRef","menuVisible","onMenuClick","useContextMenuClickHandler","showTitleTooltip","setShowTitleTooltip","useState","canStart","canResume","canReview","canTeacherReview","canUnassign","canReset","isStudent","useLayoutEffect","onStudentView","useCallback","onTeacherView","handleOnMenuOptionClick","optionId","menuOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Clickable","jsxs","Styled.CardContainer","Styled.CardWrapper","jsx","Styled.IconWrapper","Text","Styled.BannerImageWrapper","Styled.BannerImage","NodeCardTags","FlexView","ArrowTooltip","Styled.HeaderText","Styled.SubHeaderText","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.CardMenuOptionsWrapper","CardMenuOptions","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, useLayoutEffect, useRef, useState } 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 NodeCardTags from '../chapters-v2/comps/node-card/node-card-tags';\nimport { getNodeTypeBasedBgImage } from '../chapters-v2/utils';\nimport { getNodeCardBasedIcon } from '../chapters-v2/utils/node-card-utils';\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 Text from '../ui/text/text';\nimport CardMenuOptions from './card-menu-options';\nimport * as Styled from './styles';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: TUserTypes;\n userMilestoneId?: string;\n}\n\nconst HomeworkCard = ({\n header,\n nodeData,\n subHeader,\n userType,\n userMilestoneId,\n onNodeUnassign,\n onNodeReattempt,\n onNodeView,\n onNodeReview,\n onNodeAttempt,\n}: IHomeworkCardProps) => {\n const {\n node_type: nodeType,\n state,\n accuracy,\n due_date_ts: dueDateTs,\n image_url: imageUrl,\n image_hue: imageHue,\n card_header: cardHeader = '',\n permissions,\n user_node_id: userNodeId,\n } = nodeData;\n\n const bgImage = getNodeTypeBasedBgImage(nodeType);\n const NodeCardIcon = getNodeCardBasedIcon(nodeType);\n const teacherContainerRef = useRef<HTMLDivElement>(null);\n const studentContainerRef = useRef<HTMLDivElement>(null);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_teacher_review: canTeacherReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n const onStudentView = useCallback(() => {\n console.log('calles onStudentView view', permissions);\n if (canStart || canResume) {\n console.log('calles onStudentView canStart || canResume');\n\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData);\n\n return;\n }\n\n if (canReset) {\n console.log('calles onStudentView canReset');\n\n onStudentMenuClick();\n\n return;\n }\n\n if (canReview) {\n console.log('calles onStudentView 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 }, [\n permissions,\n canStart,\n canResume,\n canReset,\n canReview,\n onNodeAttempt,\n nodeData,\n onStudentMenuClick,\n onNodeReview,\n userNodeId,\n userMilestoneId,\n ]);\n\n const onTeacherView = useCallback(() => {\n if (canTeacherReview) {\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\n onNodeReview(nodeData, userMilestoneId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onPreview must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId);\n }, [canTeacherReview, userMilestoneId, nodeData, onNodeReview, onNodeView, userNodeId]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherView();\n\n return;\n\n case 'student-card-click':\n onStudentView();\n\n return;\n case 'card-unassign':\n onNodeUnassign?.(nodeData, userMilestoneId);\n\n return;\n case 'card-reattempt':\n onNodeReattempt?.(nodeData, userMilestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [nodeData, onNodeReattempt, onNodeUnassign, onStudentView, onTeacherView, userMilestoneId],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: 'View',\n icon: Eye2Icon,\n disabled: true,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: !!canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-click',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !!canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !!canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n console.log(!isStudent);\n\n return (\n <FlexView $position=\"relative\">\n <Clickable onClick={isStudent ? onStudentView : onTeacherView} label=\"homework-card\">\n <Styled.CardContainer\n ref={studentContainerRef}\n $widthX={12.5}\n $position=\"relative\"\n $background={`${imageHue || 'ORANGE'}_2`}\n >\n <Styled.CardWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={bgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $position=\"relative\"\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $borderRadiusX={2}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {NodeCardIcon && <NodeCardIcon width={20} height={20} />}\n </Styled.IconWrapper>\n <Text $renderAs=\"ac4-black\">{cardHeader}</Text>\n {!!imageUrl && (\n <Styled.BannerImageWrapper>\n <Styled.BannerImage src={imageUrl} alt=\"Chapter image\" />\n </Styled.BannerImageWrapper>\n )}\n </Styled.CardWrapper>\n <NodeCardTags\n nodeType={nodeType}\n state={state}\n accuracy={accuracy}\n dueDateTs={dueDateTs}\n />\n <FlexView $gutterX={0.75} $gapX={1} $flexRowGapX={0.5} $background=\"WHITE\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={header}\n hidden={!showTitleTooltip}\n widthX={21.75}\n >\n <FlexView $heightX={2.5}>\n <Styled.HeaderText ref={titleTextRef} $renderAs=\"ab3\">\n {header}\n </Styled.HeaderText>\n </FlexView>\n </ArrowTooltip>\n <FlexView\n $flexDirection=\"row\"\n $heightX={1.25}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n >\n <Styled.SubHeaderText $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {subHeader}\n </Styled.SubHeaderText>\n </FlexView>\n </FlexView>\n </Styled.CardContainer>\n {isStudent && (\n <Styled.CardMenuOptionsWrapper $visible={studentMenuVisible}>\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n />\n </Styled.CardMenuOptionsWrapper>\n )}\n </Clickable>\n {!isStudent && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\">\n <ArrowTooltip\n isAnimated\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={5}\n parentWidth=\"100%\"\n >\n <Styled.CardKebabMenuWrapper ref={teacherContainerRef} onClick={onTeacherMenuClick}>\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <Styled.CardMenuOptionsWrapper $visible={teacherMenuVisible}>\n <CardMenuOptions\n $width={'fit-content'}\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n />\n </Styled.CardMenuOptionsWrapper>\n </Styled.MenuWrapper>\n )}\n </FlexView>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","header","nodeData","subHeader","userType","userMilestoneId","onNodeUnassign","onNodeReattempt","onNodeView","onNodeReview","onNodeAttempt","nodeType","state","accuracy","dueDateTs","imageUrl","imageHue","cardHeader","permissions","userNodeId","bgImage","getNodeTypeBasedBgImage","NodeCardIcon","getNodeCardBasedIcon","teacherContainerRef","useRef","studentContainerRef","titleTextRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","showTitleTooltip","setShowTitleTooltip","useState","canStart","canResume","canReview","canTeacherReview","canUnassign","canReset","isStudent","useLayoutEffect","onStudentView","useCallback","onTeacherView","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","studentOptions","RedoIcon","jsxs","FlexView","Clickable","Styled.CardContainer","Styled.CardWrapper","jsx","Styled.IconWrapper","Text","Styled.BannerImageWrapper","Styled.BannerImage","NodeCardTags","ArrowTooltip","Styled.HeaderText","Styled.SubHeaderText","Styled.CardMenuOptionsWrapper","CardMenuOptions","Styled.MenuWrapper","Styled.CardKebabMenuWrapper","MoreVerticalIcon","HomeworkCard$1","memo"],"mappings":"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"}
|