@cuemath/leap 3.5.67-as1 → 3.5.67-as2
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.
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { memo as P, useMemo as
|
|
1
|
+
import { jsxs as c, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { memo as P, useMemo as y, useCallback as Q } from "react";
|
|
3
3
|
import z from "../../../assets/line-icons/icons/chevron-left.js";
|
|
4
4
|
import J from "../../../assets/line-icons/icons/chevron-right.js";
|
|
5
5
|
import { NODE_TYPE as U } from "../../sheets/constants/sheet.js";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
6
|
+
import d from "../../ui/layout/flex-view.js";
|
|
7
|
+
import $ from "../../ui/text/text.js";
|
|
8
8
|
import Z from "../homework-card.js";
|
|
9
|
-
import { QueueWrapper as D, QueueText as ee, ContentWrapper as oe, ScrollButton as
|
|
9
|
+
import { QueueWrapper as D, QueueText as ee, ContentWrapper as oe, ScrollButton as A, ScrollContainer as te } from "./hw-card-list-styled.js";
|
|
10
10
|
import { getWaitForReviewSheetsCount as re } from "./hw-card-list-utils.js";
|
|
11
11
|
import { useScrollButtons as ne } from "./hooks/use-scroll-buttons.js";
|
|
12
12
|
const ie = ({
|
|
13
|
-
userType:
|
|
14
|
-
studentId:
|
|
15
|
-
isHwProcessing:
|
|
13
|
+
userType: p,
|
|
14
|
+
studentId: f,
|
|
15
|
+
isHwProcessing: I,
|
|
16
16
|
hwDetails: r,
|
|
17
|
-
onTestStart:
|
|
18
|
-
onNodeAttempt:
|
|
19
|
-
onTestPreview:
|
|
17
|
+
onTestStart: C,
|
|
18
|
+
onNodeAttempt: g,
|
|
19
|
+
onTestPreview: _,
|
|
20
20
|
onNodeView: k,
|
|
21
21
|
onTestReview: w,
|
|
22
|
-
onNodeReview:
|
|
23
|
-
onNodeUnassign:
|
|
24
|
-
onCardClick:
|
|
25
|
-
puzzleHWCardRef:
|
|
26
|
-
mathFitCardRef:
|
|
22
|
+
onNodeReview: x,
|
|
23
|
+
onNodeUnassign: H,
|
|
24
|
+
onCardClick: b,
|
|
25
|
+
puzzleHWCardRef: L,
|
|
26
|
+
mathFitCardRef: v
|
|
27
27
|
}) => {
|
|
28
|
-
const t =
|
|
28
|
+
const t = y(() => {
|
|
29
29
|
const s = (r == null ? void 0 : r.assigned_homeworks) || [], i = (r == null ? void 0 : r.queued_homeworks) || [], e = s.length + i.length, n = re(r);
|
|
30
30
|
return {
|
|
31
31
|
assignedHomeworks: s,
|
|
@@ -34,30 +34,30 @@ const ie = ({
|
|
|
34
34
|
waitForReviewCount: n
|
|
35
35
|
};
|
|
36
36
|
}, [r]), {
|
|
37
|
-
scrollRef:
|
|
38
|
-
showLeftButton:
|
|
39
|
-
showRightButton:
|
|
40
|
-
handleMouseEnter:
|
|
41
|
-
handleMouseLeave:
|
|
42
|
-
handleScrollLeft:
|
|
43
|
-
handleScrollRight:
|
|
37
|
+
scrollRef: B,
|
|
38
|
+
showLeftButton: R,
|
|
39
|
+
showRightButton: M,
|
|
40
|
+
handleMouseEnter: q,
|
|
41
|
+
handleMouseLeave: T,
|
|
42
|
+
handleScrollLeft: E,
|
|
43
|
+
handleScrollRight: K
|
|
44
44
|
} = ne({
|
|
45
45
|
totalCount: t.totalCount
|
|
46
|
-
}),
|
|
46
|
+
}), m = Q(
|
|
47
47
|
(s, i, e = !1) => {
|
|
48
48
|
const {
|
|
49
49
|
entity_id: n,
|
|
50
|
-
sheets:
|
|
51
|
-
subtext:
|
|
52
|
-
entity_type:
|
|
53
|
-
image_url:
|
|
54
|
-
user_milestone_id:
|
|
55
|
-
state:
|
|
56
|
-
score:
|
|
57
|
-
id:
|
|
58
|
-
} = s, l =
|
|
59
|
-
return /* @__PURE__ */
|
|
60
|
-
|
|
50
|
+
sheets: a,
|
|
51
|
+
subtext: j,
|
|
52
|
+
entity_type: F,
|
|
53
|
+
image_url: G,
|
|
54
|
+
user_milestone_id: W,
|
|
55
|
+
state: X,
|
|
56
|
+
score: O,
|
|
57
|
+
id: V
|
|
58
|
+
} = s, l = a.find((u) => u.permissions.can_resume || u.permissions.can_start) ?? a[0], h = (l == null ? void 0 : l.node_type) === U.DYNAMIC, Y = a == null ? void 0 : a.reduce((u, N) => u + (N.total_questions || 0), 0);
|
|
59
|
+
return /* @__PURE__ */ c(
|
|
60
|
+
d,
|
|
61
61
|
{
|
|
62
62
|
$flexDirection: "row",
|
|
63
63
|
$flexGapX: 1,
|
|
@@ -76,28 +76,28 @@ const ie = ({
|
|
|
76
76
|
Z,
|
|
77
77
|
{
|
|
78
78
|
isInQueue: e,
|
|
79
|
-
userType:
|
|
79
|
+
userType: p,
|
|
80
80
|
header: l.title,
|
|
81
|
-
subHeader:
|
|
81
|
+
subHeader: j || "",
|
|
82
82
|
nodeData: l,
|
|
83
83
|
renderAs: "homework",
|
|
84
|
-
studentId:
|
|
85
|
-
onNodeAttempt:
|
|
84
|
+
studentId: f,
|
|
85
|
+
onNodeAttempt: h ? C : g,
|
|
86
86
|
shouldOpenOnRight: !0,
|
|
87
|
-
onNodeView:
|
|
88
|
-
onNodeReview:
|
|
89
|
-
onNodeUnassign:
|
|
90
|
-
puzzleHWCardRef: e ? void 0 :
|
|
91
|
-
mathFitCardRef: e ? void 0 :
|
|
92
|
-
onCardClick:
|
|
93
|
-
entityType:
|
|
87
|
+
onNodeView: h ? _ : k,
|
|
88
|
+
onNodeReview: h ? w : x,
|
|
89
|
+
onNodeUnassign: H,
|
|
90
|
+
puzzleHWCardRef: e ? void 0 : L,
|
|
91
|
+
mathFitCardRef: e ? void 0 : v,
|
|
92
|
+
onCardClick: b,
|
|
93
|
+
entityType: F,
|
|
94
94
|
entityId: n,
|
|
95
|
-
state:
|
|
96
|
-
score:
|
|
97
|
-
imageUrl:
|
|
98
|
-
homeworkId:
|
|
99
|
-
totalQuestions:
|
|
100
|
-
userMilestoneId:
|
|
95
|
+
state: X,
|
|
96
|
+
score: O,
|
|
97
|
+
imageUrl: G,
|
|
98
|
+
homeworkId: V,
|
|
99
|
+
totalQuestions: Y,
|
|
100
|
+
userMilestoneId: W ?? void 0
|
|
101
101
|
}
|
|
102
102
|
)
|
|
103
103
|
]
|
|
@@ -106,69 +106,69 @@ const ie = ({
|
|
|
106
106
|
);
|
|
107
107
|
},
|
|
108
108
|
[
|
|
109
|
-
$,
|
|
110
109
|
p,
|
|
111
110
|
f,
|
|
112
111
|
C,
|
|
113
112
|
g,
|
|
113
|
+
_,
|
|
114
114
|
k,
|
|
115
115
|
w,
|
|
116
|
-
_,
|
|
117
116
|
x,
|
|
118
|
-
|
|
117
|
+
H,
|
|
119
118
|
L,
|
|
120
|
-
|
|
119
|
+
v,
|
|
120
|
+
b
|
|
121
121
|
]
|
|
122
|
-
),
|
|
122
|
+
), S = y(() => {
|
|
123
123
|
if (t.totalCount === 0) return [];
|
|
124
124
|
const s = t.assignedHomeworks.map(
|
|
125
|
-
(e, n) =>
|
|
125
|
+
(e, n) => m(e, n, !1)
|
|
126
126
|
), i = t.queuedHomeworks.map(
|
|
127
|
-
(e, n) =>
|
|
127
|
+
(e, n) => m(e, n, !0)
|
|
128
128
|
);
|
|
129
129
|
return [...s, ...i];
|
|
130
130
|
}, [
|
|
131
131
|
t.assignedHomeworks,
|
|
132
132
|
t.queuedHomeworks,
|
|
133
|
-
|
|
133
|
+
m,
|
|
134
134
|
t.totalCount
|
|
135
135
|
]);
|
|
136
|
-
return t.totalCount === 0 ? /* @__PURE__ */
|
|
137
|
-
/* @__PURE__ */ o(
|
|
138
|
-
/* @__PURE__ */ o(
|
|
139
|
-
] }) : /* @__PURE__ */
|
|
140
|
-
/* @__PURE__ */
|
|
136
|
+
return t.totalCount === 0 ? /* @__PURE__ */ c(d, { $flexRowGapX: 1, children: [
|
|
137
|
+
/* @__PURE__ */ o($, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: "Homework (0)" }),
|
|
138
|
+
/* @__PURE__ */ o($, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
|
|
139
|
+
] }) : /* @__PURE__ */ c(oe, { $flexRowGapX: 1, $disablePointerEvents: I, children: [
|
|
140
|
+
/* @__PURE__ */ c($, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
|
|
141
141
|
"Homework (",
|
|
142
142
|
t.waitForReviewCount,
|
|
143
143
|
"/",
|
|
144
144
|
t.totalCount,
|
|
145
145
|
")"
|
|
146
146
|
] }),
|
|
147
|
-
/* @__PURE__ */
|
|
148
|
-
|
|
147
|
+
/* @__PURE__ */ c(
|
|
148
|
+
d,
|
|
149
149
|
{
|
|
150
150
|
$position: "relative",
|
|
151
|
-
onMouseEnter:
|
|
152
|
-
onMouseLeave:
|
|
151
|
+
onMouseEnter: q,
|
|
152
|
+
onMouseLeave: T,
|
|
153
153
|
children: [
|
|
154
154
|
/* @__PURE__ */ o(
|
|
155
|
-
|
|
155
|
+
A,
|
|
156
156
|
{
|
|
157
157
|
$position: "absolute",
|
|
158
158
|
$background: "BLACK_T_60",
|
|
159
159
|
$justifyContent: "center",
|
|
160
160
|
$alignItems: "center",
|
|
161
161
|
$height: "100%",
|
|
162
|
-
onClick:
|
|
163
|
-
$visible:
|
|
162
|
+
onClick: E,
|
|
163
|
+
$visible: R,
|
|
164
164
|
left: "0px",
|
|
165
165
|
right: "auto",
|
|
166
166
|
children: /* @__PURE__ */ o(z, { width: 24, height: 24 })
|
|
167
167
|
}
|
|
168
168
|
),
|
|
169
|
-
/* @__PURE__ */ o(te, { ref:
|
|
169
|
+
/* @__PURE__ */ o(te, { ref: B, children: /* @__PURE__ */ o(d, { $flexDirection: "row", $flexGapX: 1, children: S }) }),
|
|
170
170
|
/* @__PURE__ */ o(
|
|
171
|
-
|
|
171
|
+
A,
|
|
172
172
|
{
|
|
173
173
|
$position: "absolute",
|
|
174
174
|
$width: "60px",
|
|
@@ -176,8 +176,8 @@ const ie = ({
|
|
|
176
176
|
$background: "BLACK_T_60",
|
|
177
177
|
$justifyContent: "center",
|
|
178
178
|
$alignItems: "center",
|
|
179
|
-
onClick:
|
|
180
|
-
$visible:
|
|
179
|
+
onClick: K,
|
|
180
|
+
$visible: M,
|
|
181
181
|
left: "auto",
|
|
182
182
|
right: "0px",
|
|
183
183
|
children: /* @__PURE__ */ o(J, { width: 24, height: 24 })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hw-card-list-view.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-view.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, type FC } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport { NODE_TYPE } from '../../sheets/constants/sheet';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport type { IHomeworkItem } from './api/get-homeworks';\nimport * as Styled from './hw-card-list-styled';\nimport type { IHwCardListView } from './hw-card-list-types';\nimport { getWaitForReviewSheetsCount } from './hw-card-list-utils';\nimport { useScrollButtons } from './hooks/use-scroll-buttons';\n\nconst HwCardListView: FC<IHwCardListView> = ({\n userType,\n studentId,\n isHwProcessing,\n hwDetails,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n onCardClick,\n puzzleHWCardRef,\n mathFitCardRef,\n}) => {\n const homeworkData = useMemo(() => {\n const assignedHomeworks = hwDetails?.assigned_homeworks || [];\n const queuedHomeworks = hwDetails?.queued_homeworks || [];\n const totalCount = assignedHomeworks.length + queuedHomeworks.length;\n const waitForReviewCount = getWaitForReviewSheetsCount(hwDetails);\n\n return {\n assignedHomeworks,\n queuedHomeworks,\n totalCount,\n waitForReviewCount,\n };\n }, [hwDetails]);\n\n const {\n scrollRef,\n showLeftButton,\n showRightButton,\n handleMouseEnter,\n handleMouseLeave,\n handleScrollLeft,\n handleScrollRight,\n } = useScrollButtons({\n totalCount: homeworkData.totalCount,\n });\n\n const renderHomeworkCard = useCallback(\n (item: IHomeworkItem, idx: number, isQueued = false) => {\n const {\n entity_id: entityId,\n sheets,\n subtext,\n entity_type: entitYType,\n image_url: imageUrl,\n user_milestone_id: userMilestoneId,\n state,\n score,\n id,\n } = item;\n const sheet = sheets[0];\n const isDynamicSheet = sheet?.node_type === NODE_TYPE.DYNAMIC;\n const totalQuestions = sheets?.reduce((acc, curr) => acc + (curr.total_questions || 0), 0);\n\n return (\n <FlexView\n key={`${entityId}_${idx}_${isQueued ? 'queued' : 'assigned'}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n {isQueued && idx === 0 && (\n <Styled.QueueWrapper\n $background=\"BLACK_4\"\n $justifyContent=\"center\"\n $gutter={4}\n $gap={8}\n >\n <Styled.QueueText $renderAs=\"ac3\" $color=\"WHITE\">\n In Queue\n </Styled.QueueText>\n </Styled.QueueWrapper>\n )}\n\n {sheet && (\n <HomeworkCard\n isInQueue={isQueued}\n userType={userType}\n header={sheet.title}\n subHeader={subtext || ''}\n nodeData={sheet}\n renderAs=\"homework\"\n studentId={studentId}\n onNodeAttempt={isDynamicSheet ? onTestStart : onNodeAttempt}\n shouldOpenOnRight={true}\n onNodeView={isDynamicSheet ? onTestPreview : onNodeView}\n onNodeReview={isDynamicSheet ? onTestReview : onNodeReview}\n onNodeUnassign={onNodeUnassign}\n puzzleHWCardRef={isQueued ? undefined : puzzleHWCardRef}\n mathFitCardRef={isQueued ? undefined : mathFitCardRef}\n onCardClick={onCardClick}\n entityType={entitYType}\n entityId={entityId}\n state={state}\n score={score}\n imageUrl={imageUrl}\n homeworkId={id}\n totalQuestions={totalQuestions}\n userMilestoneId={userMilestoneId ?? undefined}\n />\n )}\n </FlexView>\n );\n },\n [\n userType,\n studentId,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n puzzleHWCardRef,\n mathFitCardRef,\n onCardClick,\n ],\n );\n\n const homeworkCards = useMemo(() => {\n if (homeworkData.totalCount === 0) return [];\n\n const assignedCards = homeworkData.assignedHomeworks.map((sheet, idx) =>\n renderHomeworkCard(sheet, idx, false),\n );\n\n const queuedCards = homeworkData.queuedHomeworks.map((sheet, idx) =>\n renderHomeworkCard(sheet, idx, true),\n );\n\n return [...assignedCards, ...queuedCards];\n }, [\n homeworkData.assignedHomeworks,\n homeworkData.queuedHomeworks,\n renderHomeworkCard,\n homeworkData.totalCount,\n ]);\n\n if (homeworkData.totalCount === 0) {\n return (\n <FlexView $flexRowGapX={1}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework (0)\n </Text>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n No Homework assigned yet\n </Text>\n </FlexView>\n );\n }\n\n return (\n <Styled.ContentWrapper $flexRowGapX={1} $disablePointerEvents={isHwProcessing}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({homeworkData.waitForReviewCount}/{homeworkData.totalCount})\n </Text>\n <FlexView\n $position=\"relative\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <Styled.ScrollButton\n $position=\"absolute\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $height=\"100%\"\n onClick={handleScrollLeft}\n $visible={showLeftButton}\n left=\"0px\"\n right=\"auto\"\n >\n <ChevronLeftIcon width={24} height={24} />\n </Styled.ScrollButton>\n\n <Styled.ScrollContainer ref={scrollRef}>\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n {homeworkCards}\n </FlexView>\n </Styled.ScrollContainer>\n\n <Styled.ScrollButton\n $position=\"absolute\"\n $width=\"60px\"\n $height=\"100%\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n onClick={handleScrollRight}\n $visible={showRightButton}\n left=\"auto\"\n right=\"0px\"\n >\n <ChevronRightIcon width={24} height={24} />\n </Styled.ScrollButton>\n </FlexView>\n </Styled.ContentWrapper>\n );\n};\n\nexport default memo(HwCardListView);\n"],"names":["HwCardListView","userType","studentId","isHwProcessing","hwDetails","onTestStart","onNodeAttempt","onTestPreview","onNodeView","onTestReview","onNodeReview","onNodeUnassign","onCardClick","puzzleHWCardRef","mathFitCardRef","homeworkData","useMemo","assignedHomeworks","queuedHomeworks","totalCount","waitForReviewCount","getWaitForReviewSheetsCount","scrollRef","showLeftButton","showRightButton","handleMouseEnter","handleMouseLeave","handleScrollLeft","handleScrollRight","useScrollButtons","renderHomeworkCard","useCallback","item","idx","isQueued","entityId","sheets","subtext","entitYType","imageUrl","userMilestoneId","state","score","id","sheet","isDynamicSheet","NODE_TYPE","totalQuestions","acc","curr","jsxs","FlexView","jsx","Styled.QueueWrapper","Styled.QueueText","HomeworkCard","homeworkCards","assignedCards","queuedCards","Text","Styled.ContentWrapper","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","ChevronRightIcon","HwCardListView$1","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hw-card-list-view.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-view.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, type FC } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport { NODE_TYPE } from '../../sheets/constants/sheet';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport type { IHomeworkItem } from './api/get-homeworks';\nimport * as Styled from './hw-card-list-styled';\nimport type { IHwCardListView } from './hw-card-list-types';\nimport { getWaitForReviewSheetsCount } from './hw-card-list-utils';\nimport { useScrollButtons } from './hooks/use-scroll-buttons';\n\nconst HwCardListView: FC<IHwCardListView> = ({\n userType,\n studentId,\n isHwProcessing,\n hwDetails,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n onCardClick,\n puzzleHWCardRef,\n mathFitCardRef,\n}) => {\n const homeworkData = useMemo(() => {\n const assignedHomeworks = hwDetails?.assigned_homeworks || [];\n const queuedHomeworks = hwDetails?.queued_homeworks || [];\n const totalCount = assignedHomeworks.length + queuedHomeworks.length;\n const waitForReviewCount = getWaitForReviewSheetsCount(hwDetails);\n\n return {\n assignedHomeworks,\n queuedHomeworks,\n totalCount,\n waitForReviewCount,\n };\n }, [hwDetails]);\n\n const {\n scrollRef,\n showLeftButton,\n showRightButton,\n handleMouseEnter,\n handleMouseLeave,\n handleScrollLeft,\n handleScrollRight,\n } = useScrollButtons({\n totalCount: homeworkData.totalCount,\n });\n\n const renderHomeworkCard = useCallback(\n (item: IHomeworkItem, idx: number, isQueued = false) => {\n const {\n entity_id: entityId,\n sheets,\n subtext,\n entity_type: entitYType,\n image_url: imageUrl,\n user_milestone_id: userMilestoneId,\n state,\n score,\n id,\n } = item;\n const sheet =\n sheets.find(st => st.permissions.can_resume || st.permissions.can_start) ?? sheets[0];\n const isDynamicSheet = sheet?.node_type === NODE_TYPE.DYNAMIC;\n const totalQuestions = sheets?.reduce((acc, curr) => acc + (curr.total_questions || 0), 0);\n\n return (\n <FlexView\n key={`${entityId}_${idx}_${isQueued ? 'queued' : 'assigned'}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n {isQueued && idx === 0 && (\n <Styled.QueueWrapper\n $background=\"BLACK_4\"\n $justifyContent=\"center\"\n $gutter={4}\n $gap={8}\n >\n <Styled.QueueText $renderAs=\"ac3\" $color=\"WHITE\">\n In Queue\n </Styled.QueueText>\n </Styled.QueueWrapper>\n )}\n\n {sheet && (\n <HomeworkCard\n isInQueue={isQueued}\n userType={userType}\n header={sheet.title}\n subHeader={subtext || ''}\n nodeData={sheet}\n renderAs=\"homework\"\n studentId={studentId}\n onNodeAttempt={isDynamicSheet ? onTestStart : onNodeAttempt}\n shouldOpenOnRight={true}\n onNodeView={isDynamicSheet ? onTestPreview : onNodeView}\n onNodeReview={isDynamicSheet ? onTestReview : onNodeReview}\n onNodeUnassign={onNodeUnassign}\n puzzleHWCardRef={isQueued ? undefined : puzzleHWCardRef}\n mathFitCardRef={isQueued ? undefined : mathFitCardRef}\n onCardClick={onCardClick}\n entityType={entitYType}\n entityId={entityId}\n state={state}\n score={score}\n imageUrl={imageUrl}\n homeworkId={id}\n totalQuestions={totalQuestions}\n userMilestoneId={userMilestoneId ?? undefined}\n />\n )}\n </FlexView>\n );\n },\n [\n userType,\n studentId,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n puzzleHWCardRef,\n mathFitCardRef,\n onCardClick,\n ],\n );\n\n const homeworkCards = useMemo(() => {\n if (homeworkData.totalCount === 0) return [];\n\n const assignedCards = homeworkData.assignedHomeworks.map((sheet, idx) =>\n renderHomeworkCard(sheet, idx, false),\n );\n\n const queuedCards = homeworkData.queuedHomeworks.map((sheet, idx) =>\n renderHomeworkCard(sheet, idx, true),\n );\n\n return [...assignedCards, ...queuedCards];\n }, [\n homeworkData.assignedHomeworks,\n homeworkData.queuedHomeworks,\n renderHomeworkCard,\n homeworkData.totalCount,\n ]);\n\n if (homeworkData.totalCount === 0) {\n return (\n <FlexView $flexRowGapX={1}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework (0)\n </Text>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n No Homework assigned yet\n </Text>\n </FlexView>\n );\n }\n\n return (\n <Styled.ContentWrapper $flexRowGapX={1} $disablePointerEvents={isHwProcessing}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({homeworkData.waitForReviewCount}/{homeworkData.totalCount})\n </Text>\n <FlexView\n $position=\"relative\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <Styled.ScrollButton\n $position=\"absolute\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $height=\"100%\"\n onClick={handleScrollLeft}\n $visible={showLeftButton}\n left=\"0px\"\n right=\"auto\"\n >\n <ChevronLeftIcon width={24} height={24} />\n </Styled.ScrollButton>\n\n <Styled.ScrollContainer ref={scrollRef}>\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n {homeworkCards}\n </FlexView>\n </Styled.ScrollContainer>\n\n <Styled.ScrollButton\n $position=\"absolute\"\n $width=\"60px\"\n $height=\"100%\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n onClick={handleScrollRight}\n $visible={showRightButton}\n left=\"auto\"\n right=\"0px\"\n >\n <ChevronRightIcon width={24} height={24} />\n </Styled.ScrollButton>\n </FlexView>\n </Styled.ContentWrapper>\n );\n};\n\nexport default memo(HwCardListView);\n"],"names":["HwCardListView","userType","studentId","isHwProcessing","hwDetails","onTestStart","onNodeAttempt","onTestPreview","onNodeView","onTestReview","onNodeReview","onNodeUnassign","onCardClick","puzzleHWCardRef","mathFitCardRef","homeworkData","useMemo","assignedHomeworks","queuedHomeworks","totalCount","waitForReviewCount","getWaitForReviewSheetsCount","scrollRef","showLeftButton","showRightButton","handleMouseEnter","handleMouseLeave","handleScrollLeft","handleScrollRight","useScrollButtons","renderHomeworkCard","useCallback","item","idx","isQueued","entityId","sheets","subtext","entitYType","imageUrl","userMilestoneId","state","score","id","sheet","st","isDynamicSheet","NODE_TYPE","totalQuestions","acc","curr","jsxs","FlexView","jsx","Styled.QueueWrapper","Styled.QueueText","HomeworkCard","homeworkCards","assignedCards","queuedCards","Text","Styled.ContentWrapper","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","ChevronRightIcon","HwCardListView$1","memo"],"mappings":"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"}
|