@cuemath/leap 3.5.5-ashw2 → 3.5.5-ashw3
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,16 +1,16 @@
|
|
|
1
1
|
import { jsxs as s, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { memo as F, useState as B, useRef as q, useMemo as E, useCallback as
|
|
2
|
+
import { memo as F, useState as B, useRef as q, useMemo as E, useCallback as u, useEffect as S } from "react";
|
|
3
3
|
import { useTheme as Y } from "styled-components";
|
|
4
4
|
import z from "../../../assets/line-icons/icons/chevron-left.js";
|
|
5
5
|
import J from "../../../assets/line-icons/icons/chevron-right.js";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
6
|
+
import a from "../../ui/layout/flex-view.js";
|
|
7
|
+
import w from "../../ui/text/text.js";
|
|
8
8
|
import T from "../homework-card.js";
|
|
9
9
|
import { ContentWrapper as P, ScrollButton as W, ScrollContainer as Z, QueueWrapper as U, QueueText as ee } from "./hw-card-list-styled.js";
|
|
10
10
|
import { getWaitForReviewSheetsCount as re } from "./hw-card-list-utils.js";
|
|
11
|
-
import { EDeviceType as
|
|
12
|
-
const
|
|
13
|
-
userType:
|
|
11
|
+
import { EDeviceType as te } from "../../ui/theme/constants.js";
|
|
12
|
+
const oe = ({
|
|
13
|
+
userType: C,
|
|
14
14
|
studentId: _,
|
|
15
15
|
isHwProcessing: D,
|
|
16
16
|
hwDetails: c,
|
|
@@ -23,39 +23,39 @@ const te = ({
|
|
|
23
23
|
onNodeUnassign: A,
|
|
24
24
|
puzzleHWCardRef: K
|
|
25
25
|
}) => {
|
|
26
|
-
const [j,
|
|
27
|
-
() =>
|
|
28
|
-
[
|
|
29
|
-
), N = E(() => re(c), [c]),
|
|
30
|
-
if (
|
|
31
|
-
const { scrollLeft: e, scrollWidth: i, clientWidth:
|
|
32
|
-
e > 1 &&
|
|
26
|
+
const [j, h] = B(!1), [G, I] = B(!1), t = q(null), { device: M } = Y(), y = M <= te.TABLET, { assigned_homeworks: l = [], queued_homeworks: f = [] } = c || {}, R = E(
|
|
27
|
+
() => l.length + f.length,
|
|
28
|
+
[l, f]
|
|
29
|
+
), N = E(() => re(c), [c]), o = u(() => {
|
|
30
|
+
if (t.current) {
|
|
31
|
+
const { scrollLeft: e, scrollWidth: i, clientWidth: d } = t.current;
|
|
32
|
+
e > 1 && h(!0), e < i - d - 1 && I(!0);
|
|
33
33
|
}
|
|
34
|
-
}, []), X =
|
|
35
|
-
|
|
36
|
-
}, [
|
|
37
|
-
|
|
38
|
-
}, []), Q =
|
|
39
|
-
|
|
40
|
-
}, [
|
|
41
|
-
|
|
42
|
-
}, [
|
|
34
|
+
}, []), X = u(() => {
|
|
35
|
+
t.current && o();
|
|
36
|
+
}, [o]), O = u(() => {
|
|
37
|
+
h(!1), I(!1);
|
|
38
|
+
}, []), Q = u(() => {
|
|
39
|
+
t.current && (t.current.scrollBy({ left: -200, behavior: "smooth" }), o());
|
|
40
|
+
}, [o]), V = u(() => {
|
|
41
|
+
t.current && (t.current.scrollBy({ left: 200, behavior: "smooth" }), o());
|
|
42
|
+
}, [o]);
|
|
43
43
|
return S(() => {
|
|
44
|
-
if (c &&
|
|
45
|
-
const { scrollLeft: e } =
|
|
46
|
-
e > 1 &&
|
|
44
|
+
if (c && t.current) {
|
|
45
|
+
const { scrollLeft: e } = t.current;
|
|
46
|
+
e > 1 && h(!0);
|
|
47
47
|
}
|
|
48
48
|
}, [c]), S(() => {
|
|
49
|
-
const e =
|
|
49
|
+
const e = t.current;
|
|
50
50
|
if (e)
|
|
51
|
-
return e.addEventListener("scroll",
|
|
52
|
-
e.removeEventListener("scroll",
|
|
51
|
+
return e.addEventListener("scroll", o), () => {
|
|
52
|
+
e.removeEventListener("scroll", o);
|
|
53
53
|
};
|
|
54
|
-
}, [
|
|
55
|
-
/* @__PURE__ */ r(
|
|
56
|
-
/* @__PURE__ */ r(
|
|
54
|
+
}, [o]), R === 0 ? /* @__PURE__ */ s(a, { $flexRowGapX: 1, children: [
|
|
55
|
+
/* @__PURE__ */ r(w, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: "Homework (0)" }),
|
|
56
|
+
/* @__PURE__ */ r(w, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
|
|
57
57
|
] }) : /* @__PURE__ */ s(P, { $flexRowGapX: 1, $disablePointerEvents: D, children: [
|
|
58
|
-
/* @__PURE__ */ s(
|
|
58
|
+
/* @__PURE__ */ s(w, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
|
|
59
59
|
"Homework (",
|
|
60
60
|
N,
|
|
61
61
|
"/",
|
|
@@ -63,7 +63,7 @@ const te = ({
|
|
|
63
63
|
")"
|
|
64
64
|
] }),
|
|
65
65
|
/* @__PURE__ */ s(
|
|
66
|
-
|
|
66
|
+
a,
|
|
67
67
|
{
|
|
68
68
|
$position: "relative",
|
|
69
69
|
onMouseEnter: X,
|
|
@@ -78,32 +78,32 @@ const te = ({
|
|
|
78
78
|
$alignItems: "center",
|
|
79
79
|
$height: "100%",
|
|
80
80
|
onClick: Q,
|
|
81
|
-
$visible: y ? !0 : j,
|
|
81
|
+
$visible: y && l.length > 3 ? !0 : j,
|
|
82
82
|
left: "0px",
|
|
83
83
|
right: "auto",
|
|
84
84
|
children: /* @__PURE__ */ r(z, { width: 24, height: 24 })
|
|
85
85
|
}
|
|
86
86
|
),
|
|
87
|
-
/* @__PURE__ */ r(Z, { ref:
|
|
88
|
-
|
|
87
|
+
/* @__PURE__ */ r(Z, { ref: t, children: /* @__PURE__ */ s(a, { $flexDirection: "row", $flexGapX: 1, children: [
|
|
88
|
+
l.map((e, i) => {
|
|
89
89
|
const {
|
|
90
|
-
node_id:
|
|
90
|
+
node_id: d,
|
|
91
91
|
worksheet_id: m,
|
|
92
92
|
node_type: $,
|
|
93
93
|
title: p,
|
|
94
|
-
subtext:
|
|
94
|
+
subtext: g
|
|
95
95
|
} = e, n = $ === "DYNAMIC";
|
|
96
96
|
return /* @__PURE__ */ r(
|
|
97
|
-
|
|
97
|
+
a,
|
|
98
98
|
{
|
|
99
99
|
$flexDirection: "row",
|
|
100
100
|
$flexGapX: 1,
|
|
101
101
|
children: /* @__PURE__ */ r(
|
|
102
102
|
T,
|
|
103
103
|
{
|
|
104
|
-
userType:
|
|
104
|
+
userType: C,
|
|
105
105
|
header: p,
|
|
106
|
-
subHeader:
|
|
106
|
+
subHeader: g || "",
|
|
107
107
|
nodeData: e,
|
|
108
108
|
renderAs: "homework",
|
|
109
109
|
studentId: _,
|
|
@@ -116,19 +116,19 @@ const te = ({
|
|
|
116
116
|
}
|
|
117
117
|
)
|
|
118
118
|
},
|
|
119
|
-
`${m}_${
|
|
119
|
+
`${m}_${d}_${i}`
|
|
120
120
|
);
|
|
121
121
|
}),
|
|
122
122
|
f.map((e, i) => {
|
|
123
123
|
const {
|
|
124
|
-
node_id:
|
|
124
|
+
node_id: d,
|
|
125
125
|
worksheet_id: m,
|
|
126
126
|
node_type: $,
|
|
127
127
|
title: p,
|
|
128
|
-
subtext:
|
|
128
|
+
subtext: g
|
|
129
129
|
} = e, n = $ === "DYNAMIC";
|
|
130
130
|
return /* @__PURE__ */ s(
|
|
131
|
-
|
|
131
|
+
a,
|
|
132
132
|
{
|
|
133
133
|
$flexDirection: "row",
|
|
134
134
|
$flexGapX: 1,
|
|
@@ -147,9 +147,9 @@ const te = ({
|
|
|
147
147
|
T,
|
|
148
148
|
{
|
|
149
149
|
isInQueue: !0,
|
|
150
|
-
userType:
|
|
150
|
+
userType: C,
|
|
151
151
|
header: p,
|
|
152
|
-
subHeader:
|
|
152
|
+
subHeader: g || "",
|
|
153
153
|
nodeData: e,
|
|
154
154
|
renderAs: "homework",
|
|
155
155
|
studentId: _,
|
|
@@ -162,7 +162,7 @@ const te = ({
|
|
|
162
162
|
)
|
|
163
163
|
]
|
|
164
164
|
},
|
|
165
|
-
`${m}_${
|
|
165
|
+
`${m}_${d}_${i}`
|
|
166
166
|
);
|
|
167
167
|
})
|
|
168
168
|
] }) }),
|
|
@@ -176,7 +176,7 @@ const te = ({
|
|
|
176
176
|
$justifyContent: "center",
|
|
177
177
|
$alignItems: "center",
|
|
178
178
|
onClick: V,
|
|
179
|
-
$visible: y ? !0 : G,
|
|
179
|
+
$visible: y && l.length > 3 ? !0 : G,
|
|
180
180
|
left: "auto",
|
|
181
181
|
right: "0px",
|
|
182
182
|
children: /* @__PURE__ */ r(J, { width: 24, height: 24 })
|
|
@@ -186,7 +186,7 @@ const te = ({
|
|
|
186
186
|
}
|
|
187
187
|
)
|
|
188
188
|
] });
|
|
189
|
-
}, $e = F(
|
|
189
|
+
}, $e = F(oe);
|
|
190
190
|
export {
|
|
191
191
|
$e as default
|
|
192
192
|
};
|
|
@@ -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, useEffect, useMemo, useRef, useState, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../../chapters-v2/comps/node-card/node-card-types';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport type { TUserTypes } from '../../ui/types';\nimport HomeworkCard from '../homework-card';\nimport type { IHomeworkDetails } from './api/get-homeworks';\nimport * as Styled from './hw-card-list-styled';\nimport { getWaitForReviewSheetsCount } from './hw-card-list-utils';\nimport { EDeviceType } from '../../ui/theme/constants';\n\ninterface IHwCardListView extends INodeCardCallbacks {\n userType: TUserTypes;\n studentId: string;\n isHwProcessing: boolean;\n hwDetails?: IHomeworkDetails;\n onTestPreview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n onTestStart?: (sheetData: INodeDataProps, homeworkId?: string) => void;\n onTestReview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n}\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 puzzleHWCardRef,\n}) => {\n const [isLeftHovered, setIsLeftHovered] = useState(false);\n const [isRightHovered, setIsRightHovered] = useState(false);\n const scrollRef = useRef<HTMLDivElement>(null);\n const { device } = useTheme();\n const isCompact = device <= EDeviceType.TABLET;\n const { assigned_homeworks: assignedHomeworks = [], queued_homeworks: queuedHomeworks = [] } =\n hwDetails || {};\n\n const totalHWSheetsCount = useMemo(\n () => assignedHomeworks.length + queuedHomeworks.length,\n [assignedHomeworks, queuedHomeworks],\n );\n const waitForReviewSheets = useMemo(() => getWaitForReviewSheetsCount(hwDetails), [hwDetails]);\n\n const updatedCanScroll = useCallback(() => {\n if (scrollRef.current) {\n const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;\n\n if (scrollLeft > 1) {\n setIsLeftHovered(true);\n }\n\n if (scrollLeft < scrollWidth - clientWidth - 1) {\n setIsRightHovered(true);\n }\n }\n }, []);\n const handleHoverEnter = useCallback(() => {\n if (!scrollRef.current) return;\n\n updatedCanScroll();\n }, [updatedCanScroll]);\n\n const handleHoverLeave = useCallback(() => {\n setIsLeftHovered(false);\n setIsRightHovered(false);\n }, []);\n\n const handleScrollLeft = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n const handleScrollRight = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n useEffect(() => {\n if (hwDetails && scrollRef.current) {\n const { scrollLeft } = scrollRef.current;\n\n if (scrollLeft > 1) {\n setIsLeftHovered(true);\n }\n }\n }, [hwDetails]);\n\n useEffect(() => {\n const scrollElement = scrollRef.current;\n\n if (scrollElement) {\n scrollElement.addEventListener('scroll', updatedCanScroll);\n\n return () => {\n scrollElement.removeEventListener('scroll', updatedCanScroll);\n };\n }\n }, [updatedCanScroll]);\n\n if (totalHWSheetsCount === 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 ({waitForReviewSheets}/{totalHWSheetsCount})\n </Text>\n <FlexView\n $position=\"relative\"\n onMouseEnter={handleHoverEnter}\n onMouseLeave={handleHoverLeave}\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={isCompact ? true : isLeftHovered}\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 {assignedHomeworks.map((sheet, idx) => {\n const {\n node_id: nodeId,\n worksheet_id: worksheetId,\n node_type: nodeType,\n title,\n subtext,\n } = sheet;\n const isDynamicSheet = nodeType === 'DYNAMIC';\n\n return (\n <FlexView\n key={`${worksheetId}_${nodeId}_${idx}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n <HomeworkCard\n userType={userType}\n header={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={puzzleHWCardRef}\n />\n </FlexView>\n );\n })}\n\n {queuedHomeworks.map((sheet, idx) => {\n const {\n node_id: nodeId,\n worksheet_id: worksheetId,\n node_type: nodeType,\n title,\n subtext,\n } = sheet;\n const isDynamicSheet = nodeType === 'DYNAMIC';\n\n return (\n <FlexView\n key={`${worksheetId}_${nodeId}_${idx}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n {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 <HomeworkCard\n isInQueue\n userType={userType}\n header={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 />\n </FlexView>\n );\n })}\n </FlexView>\n </Styled.ScrollContainer>\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={isCompact ? true : isRightHovered}\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","puzzleHWCardRef","isLeftHovered","setIsLeftHovered","useState","isRightHovered","setIsRightHovered","scrollRef","useRef","device","useTheme","isCompact","EDeviceType","assignedHomeworks","queuedHomeworks","totalHWSheetsCount","useMemo","waitForReviewSheets","getWaitForReviewSheetsCount","updatedCanScroll","useCallback","scrollLeft","scrollWidth","clientWidth","handleHoverEnter","handleHoverLeave","handleScrollLeft","handleScrollRight","useEffect","scrollElement","jsxs","FlexView","jsx","Text","Styled.ContentWrapper","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","sheet","idx","nodeId","worksheetId","nodeType","title","subtext","isDynamicSheet","HomeworkCard","Styled.QueueWrapper","Styled.QueueText","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, useEffect, useMemo, useRef, useState, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../../chapters-v2/comps/node-card/node-card-types';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport type { TUserTypes } from '../../ui/types';\nimport HomeworkCard from '../homework-card';\nimport type { IHomeworkDetails } from './api/get-homeworks';\nimport * as Styled from './hw-card-list-styled';\nimport { getWaitForReviewSheetsCount } from './hw-card-list-utils';\nimport { EDeviceType } from '../../ui/theme/constants';\n\ninterface IHwCardListView extends INodeCardCallbacks {\n userType: TUserTypes;\n studentId: string;\n isHwProcessing: boolean;\n hwDetails?: IHomeworkDetails;\n onTestPreview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n onTestStart?: (sheetData: INodeDataProps, homeworkId?: string) => void;\n onTestReview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n}\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 puzzleHWCardRef,\n}) => {\n const [isLeftHovered, setIsLeftHovered] = useState(false);\n const [isRightHovered, setIsRightHovered] = useState(false);\n const scrollRef = useRef<HTMLDivElement>(null);\n const { device } = useTheme();\n const isCompact = device <= EDeviceType.TABLET;\n const { assigned_homeworks: assignedHomeworks = [], queued_homeworks: queuedHomeworks = [] } =\n hwDetails || {};\n\n const totalHWSheetsCount = useMemo(\n () => assignedHomeworks.length + queuedHomeworks.length,\n [assignedHomeworks, queuedHomeworks],\n );\n const waitForReviewSheets = useMemo(() => getWaitForReviewSheetsCount(hwDetails), [hwDetails]);\n\n const updatedCanScroll = useCallback(() => {\n if (scrollRef.current) {\n const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;\n\n if (scrollLeft > 1) {\n setIsLeftHovered(true);\n }\n\n if (scrollLeft < scrollWidth - clientWidth - 1) {\n setIsRightHovered(true);\n }\n }\n }, []);\n const handleHoverEnter = useCallback(() => {\n if (!scrollRef.current) return;\n\n updatedCanScroll();\n }, [updatedCanScroll]);\n\n const handleHoverLeave = useCallback(() => {\n setIsLeftHovered(false);\n setIsRightHovered(false);\n }, []);\n\n const handleScrollLeft = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n const handleScrollRight = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n useEffect(() => {\n if (hwDetails && scrollRef.current) {\n const { scrollLeft } = scrollRef.current;\n\n if (scrollLeft > 1) {\n setIsLeftHovered(true);\n }\n }\n }, [hwDetails]);\n\n useEffect(() => {\n const scrollElement = scrollRef.current;\n\n if (scrollElement) {\n scrollElement.addEventListener('scroll', updatedCanScroll);\n\n return () => {\n scrollElement.removeEventListener('scroll', updatedCanScroll);\n };\n }\n }, [updatedCanScroll]);\n\n if (totalHWSheetsCount === 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 ({waitForReviewSheets}/{totalHWSheetsCount})\n </Text>\n <FlexView\n $position=\"relative\"\n onMouseEnter={handleHoverEnter}\n onMouseLeave={handleHoverLeave}\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={isCompact && assignedHomeworks.length > 3 ? true : isLeftHovered}\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 {assignedHomeworks.map((sheet, idx) => {\n const {\n node_id: nodeId,\n worksheet_id: worksheetId,\n node_type: nodeType,\n title,\n subtext,\n } = sheet;\n const isDynamicSheet = nodeType === 'DYNAMIC';\n\n return (\n <FlexView\n key={`${worksheetId}_${nodeId}_${idx}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n <HomeworkCard\n userType={userType}\n header={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={puzzleHWCardRef}\n />\n </FlexView>\n );\n })}\n\n {queuedHomeworks.map((sheet, idx) => {\n const {\n node_id: nodeId,\n worksheet_id: worksheetId,\n node_type: nodeType,\n title,\n subtext,\n } = sheet;\n const isDynamicSheet = nodeType === 'DYNAMIC';\n\n return (\n <FlexView\n key={`${worksheetId}_${nodeId}_${idx}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n {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 <HomeworkCard\n isInQueue\n userType={userType}\n header={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 />\n </FlexView>\n );\n })}\n </FlexView>\n </Styled.ScrollContainer>\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={isCompact && assignedHomeworks.length > 3 ? true : isRightHovered}\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","puzzleHWCardRef","isLeftHovered","setIsLeftHovered","useState","isRightHovered","setIsRightHovered","scrollRef","useRef","device","useTheme","isCompact","EDeviceType","assignedHomeworks","queuedHomeworks","totalHWSheetsCount","useMemo","waitForReviewSheets","getWaitForReviewSheetsCount","updatedCanScroll","useCallback","scrollLeft","scrollWidth","clientWidth","handleHoverEnter","handleHoverLeave","handleScrollLeft","handleScrollRight","useEffect","scrollElement","jsxs","FlexView","jsx","Text","Styled.ContentWrapper","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","sheet","idx","nodeId","worksheetId","nodeType","title","subtext","isDynamicSheet","HomeworkCard","Styled.QueueWrapper","Styled.QueueText","ChevronRightIcon","HwCardListView$1","memo"],"mappings":"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"}
|