@cuemath/leap 3.1.2 → 3.1.4

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.
Files changed (24) hide show
  1. package/dist/features/homework/hw-card-list/api/get-homeworks.js +1 -1
  2. package/dist/features/homework/hw-card-list/api/get-homeworks.js.map +1 -1
  3. package/dist/features/homework/hw-card-list/hw-card-list-utils.js +8 -0
  4. package/dist/features/homework/hw-card-list/hw-card-list-utils.js.map +1 -0
  5. package/dist/features/homework/hw-card-list/hw-card-list-view.js +144 -112
  6. package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +1 -1
  7. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +199 -262
  8. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
  9. package/dist/features/journey/hooks/use-home-page-journey/use-home-page-journey.js +15 -15
  10. package/dist/features/journey/hooks/use-home-page-journey/use-home-page-journey.js.map +1 -1
  11. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +48 -47
  12. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
  13. package/dist/features/milestone/milestone-list-container/api/get-past-milestone-count.js +18 -0
  14. package/dist/features/milestone/milestone-list-container/api/get-past-milestone-count.js.map +1 -0
  15. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +100 -121
  16. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  17. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js +15 -14
  18. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js.map +1 -1
  19. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +52 -51
  20. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  21. package/dist/index.d.ts +38 -13
  22. package/dist/index.js +146 -143
  23. package/dist/index.js.map +1 -1
  24. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { createGetAPI as r } from "@cuemath/rest-api";
2
- import { BASE_URL_V3 as t } from "../../../../constants/api.js";
2
+ import { BASE_URL_V3_1 as t } from "../../../../constants/api.js";
3
3
  const { useGet: i, invalidate: u } = r({
4
4
  getURL: (e, s, { stream: o }) => `${t}/users/${e}/course-streams/${o}/homework`
5
5
  });
@@ -1 +1 @@
1
- {"version":3,"file":"get-homeworks.js","sources":["../../../../../src/features/homework/hw-card-list/api/get-homeworks.ts"],"sourcesContent":["import type { INodeDataProps } from '../../../chapters-v2/comps/node-card/node-card-types';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3 } from '../../../../constants/api';\n\nconst { useGet: useGetHomeworks, invalidate: invalidateHomeworks } = createGetAPI<\n INodeDataProps[],\n void,\n { stream: string }\n>({\n getURL: (studentId: string, _, { stream }) =>\n `${BASE_URL_V3}/users/${studentId}/course-streams/${stream}/homework`,\n});\n\nexport { useGetHomeworks, invalidateHomeworks };\n"],"names":["useGetHomeworks","invalidateHomeworks","createGetAPI","studentId","_","stream","BASE_URL_V3"],"mappings":";;AAMA,MAAM,EAAE,QAAQA,GAAiB,YAAYC,EAAA,IAAwBC,EAInE;AAAA,EACA,QAAQ,CAACC,GAAmBC,GAAG,EAAE,QAAAC,EAAA,MAC/B,GAAGC,CAAW,UAAUH,CAAS,mBAAmBE,CAAM;AAC9D,CAAC;"}
1
+ {"version":3,"file":"get-homeworks.js","sources":["../../../../../src/features/homework/hw-card-list/api/get-homeworks.ts"],"sourcesContent":["import type { INodeDataProps } from '../../../chapters-v2/comps/node-card/node-card-types';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3_1 } from '../../../../constants/api';\n\nexport interface IHomeworkDetails {\n assigned_homeworks: INodeDataProps[];\n queued_homeworks: INodeDataProps[];\n}\n\nconst { useGet: useGetHomeworks, invalidate: invalidateHomeworks } = createGetAPI<\n IHomeworkDetails,\n void,\n { stream: string }\n>({\n getURL: (studentId: string, _, { stream }) =>\n `${BASE_URL_V3_1}/users/${studentId}/course-streams/${stream}/homework`,\n});\n\nexport { useGetHomeworks, invalidateHomeworks };\n"],"names":["useGetHomeworks","invalidateHomeworks","createGetAPI","studentId","_","stream","BASE_URL_V3_1"],"mappings":";;AAWA,MAAM,EAAE,QAAQA,GAAiB,YAAYC,EAAA,IAAwBC,EAInE;AAAA,EACA,QAAQ,CAACC,GAAmBC,GAAG,EAAE,QAAAC,EAAA,MAC/B,GAAGC,CAAa,UAAUH,CAAS,mBAAmBE,CAAM;AAChE,CAAC;"}
@@ -0,0 +1,8 @@
1
+ const r = (t) => {
2
+ const { assigned_homeworks: o = [], queued_homeworks: s = [] } = t || {};
3
+ return o.filter((e) => e.state === "WAIT_FOR_REVIEW").length + s.filter((e) => e.state === "WAIT_FOR_REVIEW").length;
4
+ };
5
+ export {
6
+ r as getWaitForReviewSheetsCount
7
+ };
8
+ //# sourceMappingURL=hw-card-list-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hw-card-list-utils.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-utils.ts"],"sourcesContent":["import type { IHomeworkDetails } from './api/get-homeworks';\n\nconst getWaitForReviewSheetsCount = (hwDetails: IHomeworkDetails | undefined): number => {\n const { assigned_homeworks: assignedHomeworks = [], queued_homeworks: queuedHomeworks = [] } =\n hwDetails || {};\n\n return (\n assignedHomeworks.filter(hw => hw.state === 'WAIT_FOR_REVIEW').length +\n queuedHomeworks.filter(hw => hw.state === 'WAIT_FOR_REVIEW').length\n );\n};\n\nexport { getWaitForReviewSheetsCount };\n"],"names":["getWaitForReviewSheetsCount","hwDetails","assignedHomeworks","queuedHomeworks","hw"],"mappings":"AAEM,MAAAA,IAA8B,CAACC,MAAoD;AACjF,QAAA,EAAE,oBAAoBC,IAAoB,IAAI,kBAAkBC,IAAkB,CAAC,EAAA,IACvFF,KAAa;AAEf,SACEC,EAAkB,OAAO,CAAME,MAAAA,EAAG,UAAU,iBAAiB,EAAE,SAC/DD,EAAgB,OAAO,CAAAC,MAAMA,EAAG,UAAU,iBAAiB,EAAE;AAEjE;"}
@@ -1,137 +1,169 @@
1
- import { jsxs as c, jsx as n } from "react/jsx-runtime";
2
- import { memo as V, useState as p, useRef as G, useMemo as M, useCallback as l, useEffect as a } from "react";
3
- import Q from "../../../assets/line-icons/icons/chevron-left.js";
4
- import X from "../../../assets/line-icons/icons/chevron-right.js";
5
- import d from "../../ui/layout/flex-view.js";
6
- import $ from "../../ui/text/text.js";
7
- import F from "../homework-card.js";
8
- import { ContentWrapper as O, ScrollButton as g, ScrollContainer as P, QueueWrapper as Y, QueueText as q } from "./hw-card-list-styled.js";
9
- const z = ({
10
- userType: h,
11
- studentId: v,
12
- isHwProcessing: C,
13
- hwDetails: e,
14
- onTestStart: L,
15
- onNodeAttempt: _,
1
+ import { jsxs as l, jsx as r } from "react/jsx-runtime";
2
+ import { memo as O, useState as y, useRef as Q, useMemo as S, useCallback as d, useEffect as B } from "react";
3
+ import V from "../../../assets/line-icons/icons/chevron-left.js";
4
+ import F from "../../../assets/line-icons/icons/chevron-right.js";
5
+ import u from "../../ui/layout/flex-view.js";
6
+ import g from "../../ui/text/text.js";
7
+ import E from "../homework-card.js";
8
+ import { ContentWrapper as q, ScrollButton as W, ScrollContainer as Y, QueueWrapper as z, QueueText as J } from "./hw-card-list-styled.js";
9
+ import { getWaitForReviewSheetsCount as P } from "./hw-card-list-utils.js";
10
+ const Z = ({
11
+ userType: C,
12
+ studentId: _,
13
+ isHwProcessing: K,
14
+ hwDetails: s,
15
+ onTestStart: k,
16
+ onNodeAttempt: v,
16
17
  onTestPreview: b,
17
- onNodeView: k,
18
- onTestReview: x,
19
- onNodeReview: A,
20
- onNodeUnassign: H
18
+ onNodeView: x,
19
+ onTestReview: H,
20
+ onNodeReview: L,
21
+ onNodeUnassign: A
21
22
  }) => {
22
- const [I, u] = p(!1), [R, m] = p(!1), o = G(null), E = M(
23
- () => ((e == null ? void 0 : e.filter((r) => r.state === "WAIT_FOR_REVIEW")) || []).length,
24
- [e]
25
- ), t = l(() => {
26
- if (o.current) {
27
- const { scrollLeft: r, scrollWidth: i, clientWidth: s } = o.current;
28
- r > 1 && u(!0), r < i - s - 1 && m(!0);
23
+ const [T, a] = y(!1), [j, I] = y(!1), t = Q(null), { assigned_homeworks: h = [], queued_homeworks: f = [] } = s || {}, R = S(
24
+ () => h.length + f.length,
25
+ [h, f]
26
+ ), D = S(() => P(s), [s]), o = d(() => {
27
+ if (t.current) {
28
+ const { scrollLeft: e, scrollWidth: i, clientWidth: c } = t.current;
29
+ e > 1 && a(!0), e < i - c - 1 && I(!0);
29
30
  }
30
- }, []), T = l(() => {
31
- o.current && t();
32
- }, [t]), y = l(() => {
33
- u(!1), m(!1);
34
- }, []), B = l(() => {
35
- o.current && (o.current.scrollBy({ left: -200, behavior: "smooth" }), t());
36
- }, [t]), S = l(() => {
37
- o.current && (o.current.scrollBy({ left: 200, behavior: "smooth" }), t());
38
- }, [t]);
39
- return a(() => {
40
- if (e && (e == null ? void 0 : e.length) > 3 && o.current) {
41
- const { scrollLeft: r } = o.current;
42
- r > 1 && u(!0);
31
+ }, []), G = d(() => {
32
+ t.current && o();
33
+ }, [o]), M = d(() => {
34
+ a(!1), I(!1);
35
+ }, []), N = d(() => {
36
+ t.current && (t.current.scrollBy({ left: -200, behavior: "smooth" }), o());
37
+ }, [o]), X = d(() => {
38
+ t.current && (t.current.scrollBy({ left: 200, behavior: "smooth" }), o());
39
+ }, [o]);
40
+ return B(() => {
41
+ if (s && t.current) {
42
+ const { scrollLeft: e } = t.current;
43
+ e > 1 && a(!0);
43
44
  }
44
- }, [e]), a(() => {
45
- const r = o.current;
46
- if (r)
47
- return r.addEventListener("scroll", t), () => {
48
- r.removeEventListener("scroll", t);
45
+ }, [s]), B(() => {
46
+ const e = t.current;
47
+ if (e)
48
+ return e.addEventListener("scroll", o), () => {
49
+ e.removeEventListener("scroll", o);
49
50
  };
50
- }, [t]), e && e.length === 0 ? /* @__PURE__ */ c(d, { $flexRowGapX: 1, children: [
51
- /* @__PURE__ */ c($, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
51
+ }, [o]), R === 0 ? /* @__PURE__ */ l(u, { $flexRowGapX: 1, children: [
52
+ /* @__PURE__ */ r(g, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: "Homework (0)" }),
53
+ /* @__PURE__ */ r(g, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
54
+ ] }) : /* @__PURE__ */ l(q, { $flexRowGapX: 1, $disablePointerEvents: K, children: [
55
+ /* @__PURE__ */ l(g, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
52
56
  "Homework (",
53
- e == null ? void 0 : e.length,
54
- ")"
55
- ] }),
56
- /* @__PURE__ */ n($, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
57
- ] }) : /* @__PURE__ */ c(O, { $flexRowGapX: 1, $disablePointerEvents: C, children: [
58
- /* @__PURE__ */ c($, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
59
- "Homework (",
60
- E,
57
+ D,
61
58
  "/",
62
- e == null ? void 0 : e.length,
59
+ R,
63
60
  ")"
64
61
  ] }),
65
- /* @__PURE__ */ c(
66
- d,
62
+ /* @__PURE__ */ l(
63
+ u,
67
64
  {
68
65
  $position: "relative",
69
- onMouseEnter: T,
70
- onMouseLeave: y,
66
+ onMouseEnter: G,
67
+ onMouseLeave: M,
71
68
  children: [
72
- /* @__PURE__ */ n(
73
- g,
69
+ /* @__PURE__ */ r(
70
+ W,
74
71
  {
75
72
  $position: "absolute",
76
73
  $background: "BLACK_T_60",
77
74
  $justifyContent: "center",
78
75
  $alignItems: "center",
79
76
  $height: "100%",
80
- onClick: B,
81
- $visible: I,
77
+ onClick: N,
78
+ $visible: T,
82
79
  left: "0px",
83
80
  right: "auto",
84
- children: /* @__PURE__ */ n(Q, { width: 24, height: 24 })
81
+ children: /* @__PURE__ */ r(V, { width: 24, height: 24 })
85
82
  }
86
83
  ),
87
- /* @__PURE__ */ n(P, { ref: o, children: /* @__PURE__ */ n(d, { $flexDirection: "row", $flexGapX: 1, children: e == null ? void 0 : e.map((r, i) => {
88
- const {
89
- node_id: s,
90
- worksheet_id: W,
91
- node_type: K,
92
- title: j,
93
- subtext: N
94
- } = r, f = K === "DYNAMIC";
95
- return /* @__PURE__ */ c(
96
- d,
97
- {
98
- $flexDirection: "row",
99
- $flexGapX: 1,
100
- children: [
101
- e.length > 10 && i === 10 && /* @__PURE__ */ n(
102
- Y,
103
- {
104
- $background: "BLACK_4",
105
- $justifyContent: "center",
106
- $gutter: 4,
107
- $gap: 8,
108
- children: /* @__PURE__ */ n(q, { $renderAs: "ac3", $color: "WHITE", children: "In Queue" })
109
- }
110
- ),
111
- /* @__PURE__ */ n(
112
- F,
84
+ /* @__PURE__ */ r(Y, { ref: t, children: /* @__PURE__ */ l(u, { $flexDirection: "row", $flexGapX: 1, children: [
85
+ h.map((e, i) => {
86
+ const {
87
+ node_id: c,
88
+ worksheet_id: m,
89
+ node_type: $,
90
+ title: p,
91
+ subtext: w
92
+ } = e, n = $ === "DYNAMIC";
93
+ return /* @__PURE__ */ r(
94
+ u,
95
+ {
96
+ $flexDirection: "row",
97
+ $flexGapX: 1,
98
+ children: /* @__PURE__ */ r(
99
+ E,
113
100
  {
114
- isInQueue: e.length > 10 && i > 9,
115
- userType: h,
116
- header: j,
117
- subHeader: N || "",
118
- nodeData: r,
101
+ userType: C,
102
+ header: p,
103
+ subHeader: w || "",
104
+ nodeData: e,
119
105
  renderAs: "homework",
120
- studentId: v,
121
- onNodeAttempt: f ? L : _,
106
+ studentId: _,
107
+ onNodeAttempt: n ? k : v,
122
108
  shouldOpenOnRight: !0,
123
- onNodeView: f ? b : k,
124
- onNodeReview: f ? x : A,
125
- onNodeUnassign: H
109
+ onNodeView: n ? b : x,
110
+ onNodeReview: n ? H : L,
111
+ onNodeUnassign: A
126
112
  }
127
113
  )
128
- ]
129
- },
130
- `${W}_${s}_${i}`
131
- );
132
- }) }) }),
133
- /* @__PURE__ */ n(
134
- g,
114
+ },
115
+ `${m}_${c}_${i}`
116
+ );
117
+ }),
118
+ f.map((e, i) => {
119
+ const {
120
+ node_id: c,
121
+ worksheet_id: m,
122
+ node_type: $,
123
+ title: p,
124
+ subtext: w
125
+ } = e, n = $ === "DYNAMIC";
126
+ return /* @__PURE__ */ l(
127
+ u,
128
+ {
129
+ $flexDirection: "row",
130
+ $flexGapX: 1,
131
+ children: [
132
+ i === 0 && /* @__PURE__ */ r(
133
+ z,
134
+ {
135
+ $background: "BLACK_4",
136
+ $justifyContent: "center",
137
+ $gutter: 4,
138
+ $gap: 8,
139
+ children: /* @__PURE__ */ r(J, { $renderAs: "ac3", $color: "WHITE", children: "In Queue" })
140
+ }
141
+ ),
142
+ /* @__PURE__ */ r(
143
+ E,
144
+ {
145
+ isInQueue: !0,
146
+ userType: C,
147
+ header: p,
148
+ subHeader: w || "",
149
+ nodeData: e,
150
+ renderAs: "homework",
151
+ studentId: _,
152
+ onNodeAttempt: n ? k : v,
153
+ shouldOpenOnRight: !0,
154
+ onNodeView: n ? b : x,
155
+ onNodeReview: n ? H : L,
156
+ onNodeUnassign: A
157
+ }
158
+ )
159
+ ]
160
+ },
161
+ `${m}_${c}_${i}`
162
+ );
163
+ })
164
+ ] }) }),
165
+ /* @__PURE__ */ r(
166
+ W,
135
167
  {
136
168
  $position: "absolute",
137
169
  $width: "60px",
@@ -139,19 +171,19 @@ const z = ({
139
171
  $background: "BLACK_T_60",
140
172
  $justifyContent: "center",
141
173
  $alignItems: "center",
142
- onClick: S,
143
- $visible: R,
174
+ onClick: X,
175
+ $visible: j,
144
176
  left: "auto",
145
177
  right: "0px",
146
- children: /* @__PURE__ */ n(X, { width: 24, height: 24 })
178
+ children: /* @__PURE__ */ r(F, { width: 24, height: 24 })
147
179
  }
148
180
  )
149
181
  ]
150
182
  }
151
183
  )
152
184
  ] });
153
- }, ne = V(z);
185
+ }, ce = O(Z);
154
186
  export {
155
- ne as default
187
+ ce as default
156
188
  };
157
189
  //# sourceMappingURL=hw-card-list-view.js.map
@@ -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 type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../../ui/types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport * as Styled from './hw-card-list-styled';\n\ninterface IHwCardListView extends INodeCardCallbacks {\n userType: TUserTypes;\n studentId: string;\n isHwProcessing: boolean;\n hwDetails?: INodeDataProps[];\n onTestPreview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n onTestStart?: (sheetData: INodeDataProps, homeworkId?: string) => void;\n onTestReview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\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}) => {\n const [isLeftHovered, setIsLeftHovered] = useState(false);\n const [isRightHovered, setIsRightHovered] = useState(false);\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const waitForReviewSheets = useMemo(\n () => (hwDetails?.filter(sheet => sheet.state === 'WAIT_FOR_REVIEW') || []).length,\n [hwDetails],\n );\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 && hwDetails?.length > 3 && 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 (hwDetails && hwDetails.length === 0) {\n return (\n <FlexView $flexRowGapX={1}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({hwDetails?.length})\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}/{hwDetails?.length})\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={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 {hwDetails?.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 {hwDetails.length > 10 && idx === 10 && (\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={hwDetails.length > 10 && idx > 9}\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={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","isLeftHovered","setIsLeftHovered","useState","isRightHovered","setIsRightHovered","scrollRef","useRef","waitForReviewSheets","useMemo","sheet","updatedCanScroll","useCallback","scrollLeft","scrollWidth","clientWidth","handleHoverEnter","handleHoverLeave","handleScrollLeft","handleScrollRight","useEffect","scrollElement","jsxs","FlexView","Text","Styled.ContentWrapper","jsx","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","idx","nodeId","worksheetId","nodeType","title","subtext","isDynamicSheet","Styled.QueueWrapper","Styled.QueueText","HomeworkCard","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 type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../../ui/types';\nimport type { IHomeworkDetails } from './api/get-homeworks';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport * as Styled from './hw-card-list-styled';\nimport { getWaitForReviewSheetsCount } from './hw-card-list-utils';\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}\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}) => {\n const [isLeftHovered, setIsLeftHovered] = useState(false);\n const [isRightHovered, setIsRightHovered] = useState(false);\n const scrollRef = useRef<HTMLDivElement>(null);\n\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={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 />\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={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","isLeftHovered","setIsLeftHovered","useState","isRightHovered","setIsRightHovered","scrollRef","useRef","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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"}