@cuemath/leap 3.3.15-as1 → 3.3.15-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.
- package/dist/features/ui/timers/class-time/class-time.js +81 -91
- package/dist/features/ui/timers/class-time/class-time.js.map +1 -1
- package/dist/features/ui/timers/class-time/constants.js +15 -16
- package/dist/features/ui/timers/class-time/constants.js.map +1 -1
- package/dist/index.d.ts +2 -4
- package/package.json +1 -1
|
@@ -1,104 +1,94 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import { START_TIMER as
|
|
11
|
-
const
|
|
1
|
+
import { jsx as c, jsxs as D } from "react/jsx-runtime";
|
|
2
|
+
import { memo as X, useMemo as d, useState as x, useCallback as p, useEffect as E, useRef as G } from "react";
|
|
3
|
+
import j from "../../../../assets/line-icons/icons/clock2.js";
|
|
4
|
+
import W from "../../../hooks/use-visibility-change.js";
|
|
5
|
+
import S from "../../layout/flex-view.js";
|
|
6
|
+
import Y from "../clock/clock.js";
|
|
7
|
+
import q from "../timer/timer.js";
|
|
8
|
+
import z from "./animate.js";
|
|
9
|
+
import B from "./animations/ripple.js";
|
|
10
|
+
import { START_TIMER as H, getClockColor as J, ANIMATION_TIME as k, LAST_FIVE as K, IconWrapper as P } from "./constants.js";
|
|
11
|
+
const Q = (M) => {
|
|
12
12
|
const {
|
|
13
13
|
classDuration: e,
|
|
14
14
|
classStartedTime: i,
|
|
15
|
-
extendedTime:
|
|
16
|
-
ongoing:
|
|
15
|
+
extendedTime: n,
|
|
16
|
+
ongoing: y,
|
|
17
17
|
onComplete: o,
|
|
18
|
-
onExtendClass:
|
|
19
|
-
onExtendedTimeStart:
|
|
20
|
-
showExtendIcon:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
updateWithExtendedTime: c,
|
|
28
|
-
extendedTime: t || 0,
|
|
18
|
+
onExtendClass: L,
|
|
19
|
+
onExtendedTimeStart: f,
|
|
20
|
+
showExtendIcon: F = !1
|
|
21
|
+
} = M, m = (+/* @__PURE__ */ new Date() - +i) / 1e3, s = W(), h = d(() => n ? Math.floor(e - m) <= n * 60 : !1, [e, n, m]), [a, N] = x(h), l = Math.floor(e - m), C = d(
|
|
22
|
+
() => e + +i / 1e3,
|
|
23
|
+
[e, i]
|
|
24
|
+
), $ = d(() => !!(m >= e - H || a || n), [m, e, a, n]), [I, A] = x(!1), [R, b] = x($), v = J({
|
|
25
|
+
remainingTime: l,
|
|
26
|
+
extendedTime: n || 0,
|
|
29
27
|
extendedTimeStarted: a
|
|
30
|
-
}),
|
|
31
|
-
|
|
32
|
-
}, [
|
|
33
|
-
|
|
34
|
-
}, []),
|
|
28
|
+
}), T = p(() => {
|
|
29
|
+
N(!0), f == null || f();
|
|
30
|
+
}, [f]), u = p(() => {
|
|
31
|
+
A(!0);
|
|
32
|
+
}, []), w = d(
|
|
35
33
|
() => [
|
|
36
34
|
{
|
|
37
|
-
at:
|
|
38
|
-
callback:
|
|
35
|
+
at: k.LAST_TEN,
|
|
36
|
+
callback: u,
|
|
39
37
|
id: "rem-10min"
|
|
40
38
|
},
|
|
41
39
|
{
|
|
42
|
-
at:
|
|
43
|
-
callback:
|
|
40
|
+
at: k.LAST_FIVE,
|
|
41
|
+
callback: u,
|
|
44
42
|
id: "rem-5min"
|
|
45
43
|
}
|
|
46
44
|
],
|
|
47
|
-
[
|
|
48
|
-
),
|
|
49
|
-
if (
|
|
50
|
-
|
|
45
|
+
[u]
|
|
46
|
+
), O = p(() => {
|
|
47
|
+
if (n && !a) {
|
|
48
|
+
T();
|
|
51
49
|
return;
|
|
52
50
|
}
|
|
53
51
|
o == null || o();
|
|
54
|
-
}, [
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
o
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
])
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}, [i, s, C, m]);
|
|
71
|
-
const L = q(/* @__PURE__ */ new Set()), r = f(
|
|
72
|
-
() => y.filter((n) => {
|
|
73
|
-
const p = n.id || `multi-reminder-${n.at}`;
|
|
74
|
-
return !L.current.has(p) && T >= n.at;
|
|
75
|
-
}).sort((n, p) => p.at - n.at)[0],
|
|
76
|
-
[y, T]
|
|
77
|
-
), j = $(() => {
|
|
52
|
+
}, [n, a, o, T]);
|
|
53
|
+
E(() => {
|
|
54
|
+
const t = +/* @__PURE__ */ new Date() / 1e3 >= +i / 1e3 + e && e;
|
|
55
|
+
s && t && (o == null || o());
|
|
56
|
+
}, [e, i, s, o]), E(() => {
|
|
57
|
+
s && h && !a && T();
|
|
58
|
+
}, [s, T, a, h]), E(() => {
|
|
59
|
+
e && i && s && b($);
|
|
60
|
+
}, [i, e, $, s]);
|
|
61
|
+
const _ = G(/* @__PURE__ */ new Set()), r = d(
|
|
62
|
+
() => w.filter((t) => {
|
|
63
|
+
const g = t.id || `multi-reminder-${t.at}`;
|
|
64
|
+
return !_.current.has(g) && l >= t.at;
|
|
65
|
+
}).sort((t, g) => g.at - t.at)[0],
|
|
66
|
+
[w, l]
|
|
67
|
+
), V = p(() => {
|
|
78
68
|
if (!r) return;
|
|
79
|
-
const
|
|
80
|
-
|
|
69
|
+
const t = r.id || `multi-reminder-${r.at}`;
|
|
70
|
+
_.current.add(t), typeof r.callback == "function" && r.callback();
|
|
81
71
|
}, [r]);
|
|
82
|
-
return !
|
|
83
|
-
/* @__PURE__ */
|
|
84
|
-
|
|
72
|
+
return !y || m >= 0 && l <= 0 ? null : /* @__PURE__ */ c(S, { $flexDirection: "row", $alignItems: "center", children: /* @__PURE__ */ D(S, { $position: "relative", $flexDirection: "row", $alignItems: "center", children: [
|
|
73
|
+
/* @__PURE__ */ c(
|
|
74
|
+
z,
|
|
85
75
|
{
|
|
86
|
-
animateClock:
|
|
76
|
+
animateClock: I,
|
|
87
77
|
classStartedTime: +i,
|
|
88
|
-
duration:
|
|
89
|
-
onExtendClass:
|
|
90
|
-
setAnimateClock:
|
|
91
|
-
setStartTimer:
|
|
92
|
-
showExtendIcon: !a &&
|
|
78
|
+
duration: e,
|
|
79
|
+
onExtendClass: L,
|
|
80
|
+
setAnimateClock: A,
|
|
81
|
+
setStartTimer: b,
|
|
82
|
+
showExtendIcon: !a && F
|
|
93
83
|
}
|
|
94
84
|
),
|
|
95
|
-
/* @__PURE__ */
|
|
96
|
-
|
|
85
|
+
/* @__PURE__ */ c(
|
|
86
|
+
B,
|
|
97
87
|
{
|
|
98
|
-
color:
|
|
99
|
-
visible: !
|
|
100
|
-
children: /* @__PURE__ */
|
|
101
|
-
|
|
88
|
+
color: l <= K ? "ORANGE_3" : "YELLOW_3",
|
|
89
|
+
visible: !I && R,
|
|
90
|
+
children: /* @__PURE__ */ D(
|
|
91
|
+
S,
|
|
102
92
|
{
|
|
103
93
|
$flexDirection: "row",
|
|
104
94
|
$alignItems: "center",
|
|
@@ -109,21 +99,21 @@ const te = (N) => {
|
|
|
109
99
|
$flexGapX: 0.25,
|
|
110
100
|
$position: "relative",
|
|
111
101
|
children: [
|
|
112
|
-
/* @__PURE__ */
|
|
113
|
-
|
|
114
|
-
|
|
102
|
+
/* @__PURE__ */ c(P, { $iconColor: v, children: /* @__PURE__ */ c(j, {}) }),
|
|
103
|
+
s && (R ? /* @__PURE__ */ c(
|
|
104
|
+
q,
|
|
115
105
|
{
|
|
116
|
-
endTime:
|
|
117
|
-
onComplete:
|
|
106
|
+
endTime: C,
|
|
107
|
+
onComplete: O,
|
|
118
108
|
reminder: r == null ? void 0 : r.at,
|
|
119
|
-
onReminder:
|
|
109
|
+
onReminder: V
|
|
120
110
|
},
|
|
121
|
-
|
|
122
|
-
) : /* @__PURE__ */
|
|
123
|
-
|
|
111
|
+
C
|
|
112
|
+
) : /* @__PURE__ */ c(
|
|
113
|
+
Y,
|
|
124
114
|
{
|
|
125
|
-
completionTime: e -
|
|
126
|
-
onComplete:
|
|
115
|
+
completionTime: e - k.LAST_TEN,
|
|
116
|
+
onComplete: u,
|
|
127
117
|
startedOn: new Date(i)
|
|
128
118
|
}
|
|
129
119
|
))
|
|
@@ -133,8 +123,8 @@ const te = (N) => {
|
|
|
133
123
|
}
|
|
134
124
|
)
|
|
135
125
|
] }) });
|
|
136
|
-
},
|
|
126
|
+
}, me = X(Q);
|
|
137
127
|
export {
|
|
138
|
-
|
|
128
|
+
me as default
|
|
139
129
|
};
|
|
140
130
|
//# sourceMappingURL=class-time.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-time.js","sources":["../../../../../src/features/ui/timers/class-time/class-time.tsx"],"sourcesContent":["import type { IClassTimeProps } from './class-time-types';\n\nimport { useState, useCallback, useEffect, useMemo, useRef, memo } from 'react';\n\nimport Clock2Icon from '../../../../assets/line-icons/icons/clock2';\nimport useVisibilityChange from '../../../hooks/use-visibility-change';\nimport FlexView from '../../layout/flex-view';\nimport Clock from '../clock/clock';\nimport Timer from '../timer/timer';\nimport Animate from './animate';\nimport Ripple from './animations/ripple';\nimport { ANIMATION_TIME, getClockColor, IconWrapper, LAST_FIVE, START_TIMER } from './constants';\n\nconst ClassTime = (props: IClassTimeProps) => {\n const {\n classDuration,\n classStartedTime,\n extendedTime,\n ongoing,\n onComplete,\n onExtendClass,\n onExtendedTimeStart,\n showExtendIcon = false,\n updateWithExtendedTime = false,\n } = props;\n\n const elapsedTime = (+new Date() - +classStartedTime) / 1000;\n const isTabActive = useVisibilityChange();\n\n const hasExtendedTimeStarted = useMemo(() => {\n if (!extendedTime) return false;\n\n const orgRemainingTime = Math.floor(classDuration - elapsedTime);\n\n return orgRemainingTime <= extendedTime * 60;\n }, [classDuration, extendedTime, elapsedTime]);\n\n const [extendedTimeStarted, setExtendedTimeStarted] = useState(hasExtendedTimeStarted);\n\n const computedDuration = useMemo(() => {\n const elapsedT = (+new Date() - +classStartedTime) / 1000;\n const remainingT = Math.floor(classDuration - elapsedT);\n\n if (updateWithExtendedTime || !extendedTime || remainingT <= extendedTime * 60)\n return classDuration;\n\n return classDuration - extendedTime * 60;\n }, [classDuration, extendedTime, classStartedTime, updateWithExtendedTime]);\n\n const [duration, setDuration] = useState(computedDuration);\n const endTime = useMemo(() => duration + +classStartedTime / 1000, [duration, classStartedTime]);\n\n const canStartTimer = useMemo(() => {\n return !!(\n elapsedTime >= duration - START_TIMER ||\n extendedTimeStarted ||\n (updateWithExtendedTime && extendedTime)\n );\n }, [elapsedTime, duration, extendedTimeStarted, updateWithExtendedTime, extendedTime]);\n\n const [animateClock, setAnimateClock] = useState(false);\n const remainingTime = Math.floor(duration - elapsedTime); // in seconds\n const [startTimer, setStartTimer] = useState(canStartTimer);\n const clockColor = getClockColor({\n remainingTime,\n updateWithExtendedTime,\n extendedTime: extendedTime || 0,\n extendedTimeStarted,\n });\n\n const handleStartExtendedTime = useCallback(() => {\n setExtendedTimeStarted(true);\n setDuration(computedDuration);\n onExtendedTimeStart?.();\n }, [computedDuration, onExtendedTimeStart]);\n\n const handleStartAnimation = useCallback(() => {\n setAnimateClock(true);\n }, []);\n\n const animationReminders = useMemo(\n () => [\n {\n at: ANIMATION_TIME.LAST_TEN,\n callback: handleStartAnimation,\n id: 'rem-10min',\n },\n\n {\n at: ANIMATION_TIME.LAST_FIVE,\n callback: handleStartAnimation,\n id: 'rem-5min',\n },\n ],\n [handleStartAnimation],\n );\n\n const handleTimerComplete = useCallback(() => {\n if (extendedTime && !extendedTimeStarted && !updateWithExtendedTime) {\n handleStartExtendedTime();\n\n return;\n }\n onComplete?.();\n }, [\n extendedTime,\n extendedTimeStarted,\n onComplete,\n handleStartExtendedTime,\n updateWithExtendedTime,\n ]);\n\n useEffect(() => {\n const isClassCompleted =\n +new Date() / 1000 >= +classStartedTime / 1000 + classDuration && classDuration;\n\n if (isTabActive && isClassCompleted) {\n onComplete?.();\n }\n }, [classDuration, classStartedTime, isTabActive, onComplete]);\n\n useEffect(() => {\n if (classDuration) {\n setDuration(computedDuration);\n }\n }, [classDuration, computedDuration]);\n\n useEffect(() => {\n if (isTabActive && hasExtendedTimeStarted && !extendedTimeStarted) {\n handleStartExtendedTime();\n }\n }, [isTabActive, handleStartExtendedTime, extendedTimeStarted, hasExtendedTimeStarted]);\n\n useEffect(() => {\n if (duration && classStartedTime && isTabActive) {\n setStartTimer(canStartTimer);\n }\n }, [classStartedTime, duration, canStartTimer, isTabActive]);\n\n const firedReminders = useRef<Set<string>>(new Set());\n const nextReminder = useMemo(\n () =>\n animationReminders\n .filter((r: (typeof animationReminders)[number]) => {\n const key = r.id || `multi-reminder-${r.at}`;\n const alreadyFired = firedReminders.current.has(key);\n\n return !alreadyFired && remainingTime >= r.at;\n })\n .sort((a: { at: number }, b: { at: number }) => b.at - a.at)[0],\n [animationReminders, remainingTime],\n );\n\n const handleMultiReminder = useCallback(() => {\n if (!nextReminder) return;\n\n const key = nextReminder.id || `multi-reminder-${nextReminder.at}`;\n\n firedReminders.current.add(key);\n\n if (typeof nextReminder.callback === 'function') {\n nextReminder.callback();\n }\n }, [nextReminder]);\n\n if (!ongoing || (elapsedTime >= 0 && remainingTime <= 0)) {\n return null;\n }\n\n return (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\">\n <FlexView $position=\"relative\" $flexDirection=\"row\" $alignItems=\"center\">\n <Animate\n animateClock={animateClock}\n classStartedTime={+classStartedTime}\n duration={duration}\n onExtendClass={onExtendClass}\n setAnimateClock={setAnimateClock}\n setStartTimer={setStartTimer}\n showExtendIcon={!extendedTimeStarted && showExtendIcon}\n />\n <Ripple\n color={remainingTime <= LAST_FIVE ? 'ORANGE_3' : 'YELLOW_3'}\n visible={!animateClock && startTimer}\n >\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $background=\"GREY_1\"\n $borderRadiusX={1.25}\n $gutterX={0.5}\n $gapX={0.25}\n $flexGapX={0.25}\n $position=\"relative\"\n >\n <IconWrapper $iconColor={clockColor}>\n <Clock2Icon />\n </IconWrapper>\n {isTabActive &&\n (startTimer ? (\n <Timer\n endTime={endTime}\n key={endTime}\n onComplete={handleTimerComplete}\n reminder={nextReminder?.at}\n onReminder={handleMultiReminder}\n />\n ) : (\n <Clock\n completionTime={classDuration - ANIMATION_TIME.LAST_TEN}\n onComplete={handleStartAnimation}\n startedOn={new Date(classStartedTime)}\n />\n ))}\n </FlexView>\n </Ripple>\n </FlexView>\n </FlexView>\n );\n};\n\nexport default memo(ClassTime);\n"],"names":["ClassTime","props","classDuration","classStartedTime","extendedTime","ongoing","onComplete","onExtendClass","onExtendedTimeStart","showExtendIcon","updateWithExtendedTime","elapsedTime","isTabActive","useVisibilityChange","hasExtendedTimeStarted","useMemo","extendedTimeStarted","setExtendedTimeStarted","useState","computedDuration","elapsedT","remainingT","duration","setDuration","endTime","canStartTimer","START_TIMER","animateClock","setAnimateClock","remainingTime","startTimer","setStartTimer","clockColor","getClockColor","handleStartExtendedTime","useCallback","handleStartAnimation","animationReminders","ANIMATION_TIME","handleTimerComplete","useEffect","isClassCompleted","firedReminders","useRef","nextReminder","r","key","a","b","handleMultiReminder","jsx","FlexView","jsxs","Animate","Ripple","LAST_FIVE","IconWrapper","Clock2Icon","Timer","Clock","classTime","memo"],"mappings":";;;;;;;;;;AAaA,MAAMA,KAAY,CAACC,MAA2B;AACtC,QAAA;AAAA,IACJ,eAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,gBAAAC,IAAiB;AAAA,IACjB,wBAAAC,IAAyB;AAAA,EACvB,IAAAT,GAEEU,KAAe,CAAC,oBAAI,KAAK,IAAI,CAACR,KAAoB,KAClDS,IAAcC,KAEdC,IAAyBC,EAAQ,MAChCX,IAEoB,KAAK,MAAMF,IAAgBS,CAAW,KAEpCP,IAAe,KAJhB,IAKzB,CAACF,GAAeE,GAAcO,CAAW,CAAC,GAEvC,CAACK,GAAqBC,CAAsB,IAAIC,EAASJ,CAAsB,GAE/EK,IAAmBJ,EAAQ,MAAM;AACrC,UAAMK,KAAY,CAAC,oBAAI,KAAK,IAAI,CAACjB,KAAoB,KAC/CkB,IAAa,KAAK,MAAMnB,IAAgBkB,CAAQ;AAEtD,WAAIV,KAA0B,CAACN,KAAgBiB,KAAcjB,IAAe,KACnEF,IAEFA,IAAgBE,IAAe;AAAA,KACrC,CAACF,GAAeE,GAAcD,GAAkBO,CAAsB,CAAC,GAEpE,CAACY,GAAUC,CAAW,IAAIL,EAASC,CAAgB,GACnDK,IAAUT,EAAQ,MAAMO,IAAW,CAACnB,IAAmB,KAAM,CAACmB,GAAUnB,CAAgB,CAAC,GAEzFsB,IAAgBV,EAAQ,MACrB,CAAC,EACNJ,KAAeW,IAAWI,KAC1BV,KACCN,KAA0BN,IAE5B,CAACO,GAAaW,GAAUN,GAAqBN,GAAwBN,CAAY,CAAC,GAE/E,CAACuB,GAAcC,CAAe,IAAIV,EAAS,EAAK,GAChDW,IAAgB,KAAK,MAAMP,IAAWX,CAAW,GACjD,CAACmB,GAAYC,CAAa,IAAIb,EAASO,CAAa,GACpDO,IAAaC,EAAc;AAAA,IAC/B,eAAAJ;AAAA,IACA,wBAAAnB;AAAA,IACA,cAAcN,KAAgB;AAAA,IAC9B,qBAAAY;AAAA,EAAA,CACD,GAEKkB,IAA0BC,EAAY,MAAM;AAChD,IAAAlB,EAAuB,EAAI,GAC3BM,EAAYJ,CAAgB,GACNX,KAAA,QAAAA;AAAA,EAAA,GACrB,CAACW,GAAkBX,CAAmB,CAAC,GAEpC4B,IAAuBD,EAAY,MAAM;AAC7C,IAAAP,EAAgB,EAAI;AAAA,EACtB,GAAG,CAAE,CAAA,GAECS,IAAqBtB;AAAA,IACzB,MAAM;AAAA,MACJ;AAAA,QACE,IAAIuB,EAAe;AAAA,QACnB,UAAUF;AAAA,QACV,IAAI;AAAA,MACN;AAAA,MAEA;AAAA,QACE,IAAIE,EAAe;AAAA,QACnB,UAAUF;AAAA,QACV,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,CAACA,CAAoB;AAAA,EAAA,GAGjBG,IAAsBJ,EAAY,MAAM;AAC5C,QAAI/B,KAAgB,CAACY,KAAuB,CAACN,GAAwB;AAC3C,MAAAwB;AAExB;AAAA,IACF;AACa,IAAA5B,KAAA,QAAAA;AAAA,EAAA,GACZ;AAAA,IACDF;AAAA,IACAY;AAAA,IACAV;AAAA,IACA4B;AAAA,IACAxB;AAAA,EAAA,CACD;AAED,EAAA8B,EAAU,MAAM;AACR,UAAAC,IACJ,CAAK,oBAAA,SAAS,OAAQ,CAACtC,IAAmB,MAAOD,KAAiBA;AAEpE,IAAIU,KAAe6B,MACJnC,KAAA,QAAAA;AAAA,KAEd,CAACJ,GAAeC,GAAkBS,GAAaN,CAAU,CAAC,GAE7DkC,EAAU,MAAM;AACd,IAAItC,KACFqB,EAAYJ,CAAgB;AAAA,EAC9B,GACC,CAACjB,GAAeiB,CAAgB,CAAC,GAEpCqB,EAAU,MAAM;AACV,IAAA5B,KAAeE,KAA0B,CAACE,KACpBkB;KAEzB,CAACtB,GAAasB,GAAyBlB,GAAqBF,CAAsB,CAAC,GAEtF0B,EAAU,MAAM;AACV,IAAAlB,KAAYnB,KAAoBS,KAClCmB,EAAcN,CAAa;AAAA,KAE5B,CAACtB,GAAkBmB,GAAUG,GAAeb,CAAW,CAAC;AAE3D,QAAM8B,IAAiBC,EAAwB,oBAAA,IAAK,CAAA,GAC9CC,IAAe7B;AAAA,IACnB,MACEsB,EACG,OAAO,CAACQ,MAA2C;AAClD,YAAMC,IAAMD,EAAE,MAAM,kBAAkBA,EAAE,EAAE;AAGnC,aAAA,CAFcH,EAAe,QAAQ,IAAII,CAAG,KAE3BjB,KAAiBgB,EAAE;AAAA,IAAA,CAC5C,EACA,KAAK,CAACE,GAAmBC,MAAsBA,EAAE,KAAKD,EAAE,EAAE,EAAE,CAAC;AAAA,IAClE,CAACV,GAAoBR,CAAa;AAAA,EAAA,GAG9BoB,IAAsBd,EAAY,MAAM;AAC5C,QAAI,CAACS,EAAc;AAEnB,UAAME,IAAMF,EAAa,MAAM,kBAAkBA,EAAa,EAAE;AAEjD,IAAAF,EAAA,QAAQ,IAAII,CAAG,GAE1B,OAAOF,EAAa,YAAa,cACnCA,EAAa,SAAS;AAAA,EACxB,GACC,CAACA,CAAY,CAAC;AAEjB,SAAI,CAACvC,KAAYM,KAAe,KAAKkB,KAAiB,IAC7C,OAIN,gBAAAqB,EAAAC,GAAA,EAAS,gBAAe,OAAM,aAAY,UACzC,UAAC,gBAAAC,EAAAD,GAAA,EAAS,WAAU,YAAW,gBAAe,OAAM,aAAY,UAC9D,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,cAAA1B;AAAA,QACA,kBAAkB,CAACxB;AAAA,QACnB,UAAAmB;AAAA,QACA,eAAAf;AAAA,QACA,iBAAAqB;AAAA,QACA,eAAAG;AAAA,QACA,gBAAgB,CAACf,KAAuBP;AAAA,MAAA;AAAA,IAC1C;AAAA,IACA,gBAAAyC;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,OAAOzB,KAAiB0B,IAAY,aAAa;AAAA,QACjD,SAAS,CAAC5B,KAAgBG;AAAA,QAE1B,UAAA,gBAAAsB;AAAA,UAACD;AAAA,UAAA;AAAA,YACC,gBAAe;AAAA,YACf,aAAY;AAAA,YACZ,aAAY;AAAA,YACZ,gBAAgB;AAAA,YAChB,UAAU;AAAA,YACV,OAAO;AAAA,YACP,WAAW;AAAA,YACX,WAAU;AAAA,YAEV,UAAA;AAAA,cAAA,gBAAAD,EAACM,IAAY,EAAA,YAAYxB,GACvB,UAAA,gBAAAkB,EAACO,IAAW,CAAA,GACd;AAAA,cACC7C,MACEkB,IACC,gBAAAoB;AAAA,gBAACQ;AAAA,gBAAA;AAAA,kBACC,SAAAlC;AAAA,kBAEA,YAAYe;AAAA,kBACZ,UAAUK,KAAA,gBAAAA,EAAc;AAAA,kBACxB,YAAYK;AAAA,gBAAA;AAAA,gBAHPzB;AAAA,cAAA,IAMP,gBAAA0B;AAAA,gBAACS;AAAA,gBAAA;AAAA,kBACC,gBAAgBzD,IAAgBoC,EAAe;AAAA,kBAC/C,YAAYF;AAAA,kBACZ,WAAW,IAAI,KAAKjC,CAAgB;AAAA,gBAAA;AAAA,cAAA;AAAA,YACtC;AAAA,UAAA;AAAA,QAEN;AAAA,MAAA;AAAA,IACF;AAAA,EAAA,EACF,CAAA,EACF,CAAA;AAEJ,GAEeyD,KAAAC,EAAK7D,EAAS;"}
|
|
1
|
+
{"version":3,"file":"class-time.js","sources":["../../../../../src/features/ui/timers/class-time/class-time.tsx"],"sourcesContent":["import type { IClassTimeProps } from './class-time-types';\n\nimport { useState, useCallback, useEffect, useMemo, useRef, memo } from 'react';\n\nimport Clock2Icon from '../../../../assets/line-icons/icons/clock2';\nimport useVisibilityChange from '../../../hooks/use-visibility-change';\nimport FlexView from '../../layout/flex-view';\nimport Clock from '../clock/clock';\nimport Timer from '../timer/timer';\nimport Animate from './animate';\nimport Ripple from './animations/ripple';\nimport { ANIMATION_TIME, getClockColor, IconWrapper, LAST_FIVE, START_TIMER } from './constants';\n\nconst ClassTime = (props: IClassTimeProps) => {\n const {\n classDuration,\n classStartedTime,\n extendedTime,\n ongoing,\n onComplete,\n onExtendClass,\n onExtendedTimeStart,\n showExtendIcon = false,\n } = props;\n\n const elapsedTime = (+new Date() - +classStartedTime) / 1000;\n const isTabActive = useVisibilityChange();\n\n const hasExtendedTimeStarted = useMemo(() => {\n if (!extendedTime) return false;\n\n const orgRemainingTime = Math.floor(classDuration - elapsedTime);\n\n return orgRemainingTime <= extendedTime * 60;\n }, [classDuration, extendedTime, elapsedTime]);\n\n const [extendedTimeStarted, setExtendedTimeStarted] = useState(hasExtendedTimeStarted);\n const remainingTime = Math.floor(classDuration - elapsedTime); // in seconds\n const endTime = useMemo(\n () => classDuration + +classStartedTime / 1000,\n [classDuration, classStartedTime],\n );\n\n const canStartTimer = useMemo(() => {\n return !!(elapsedTime >= classDuration - START_TIMER || extendedTimeStarted || extendedTime);\n }, [elapsedTime, classDuration, extendedTimeStarted, extendedTime]);\n\n const [animateClock, setAnimateClock] = useState(false);\n const [startTimer, setStartTimer] = useState(canStartTimer);\n const clockColor = getClockColor({\n remainingTime,\n extendedTime: extendedTime || 0,\n extendedTimeStarted,\n });\n\n const handleStartExtendedTime = useCallback(() => {\n setExtendedTimeStarted(true);\n onExtendedTimeStart?.();\n }, [onExtendedTimeStart]);\n\n const handleStartAnimation = useCallback(() => {\n setAnimateClock(true);\n }, []);\n\n const animationReminders = useMemo(\n () => [\n {\n at: ANIMATION_TIME.LAST_TEN,\n callback: handleStartAnimation,\n id: 'rem-10min',\n },\n\n {\n at: ANIMATION_TIME.LAST_FIVE,\n callback: handleStartAnimation,\n id: 'rem-5min',\n },\n ],\n [handleStartAnimation],\n );\n\n const handleTimerComplete = useCallback(() => {\n if (extendedTime && !extendedTimeStarted) {\n handleStartExtendedTime();\n\n return;\n }\n onComplete?.();\n }, [extendedTime, extendedTimeStarted, onComplete, handleStartExtendedTime]);\n\n useEffect(() => {\n const isClassCompleted =\n +new Date() / 1000 >= +classStartedTime / 1000 + classDuration && classDuration;\n\n if (isTabActive && isClassCompleted) {\n onComplete?.();\n }\n }, [classDuration, classStartedTime, isTabActive, onComplete]);\n\n useEffect(() => {\n if (isTabActive && hasExtendedTimeStarted && !extendedTimeStarted) {\n handleStartExtendedTime();\n }\n }, [isTabActive, handleStartExtendedTime, extendedTimeStarted, hasExtendedTimeStarted]);\n\n useEffect(() => {\n if (classDuration && classStartedTime && isTabActive) {\n setStartTimer(canStartTimer);\n }\n }, [classStartedTime, classDuration, canStartTimer, isTabActive]);\n\n const firedReminders = useRef<Set<string>>(new Set());\n const nextReminder = useMemo(\n () =>\n animationReminders\n .filter((r: (typeof animationReminders)[number]) => {\n const key = r.id || `multi-reminder-${r.at}`;\n const alreadyFired = firedReminders.current.has(key);\n\n return !alreadyFired && remainingTime >= r.at;\n })\n .sort((a: { at: number }, b: { at: number }) => b.at - a.at)[0],\n [animationReminders, remainingTime],\n );\n\n const handleMultiReminder = useCallback(() => {\n if (!nextReminder) return;\n\n const key = nextReminder.id || `multi-reminder-${nextReminder.at}`;\n\n firedReminders.current.add(key);\n\n if (typeof nextReminder.callback === 'function') {\n nextReminder.callback();\n }\n }, [nextReminder]);\n\n if (!ongoing || (elapsedTime >= 0 && remainingTime <= 0)) {\n return null;\n }\n\n return (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\">\n <FlexView $position=\"relative\" $flexDirection=\"row\" $alignItems=\"center\">\n <Animate\n animateClock={animateClock}\n classStartedTime={+classStartedTime}\n duration={classDuration}\n onExtendClass={onExtendClass}\n setAnimateClock={setAnimateClock}\n setStartTimer={setStartTimer}\n showExtendIcon={!extendedTimeStarted && showExtendIcon}\n />\n <Ripple\n color={remainingTime <= LAST_FIVE ? 'ORANGE_3' : 'YELLOW_3'}\n visible={!animateClock && startTimer}\n >\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $background=\"GREY_1\"\n $borderRadiusX={1.25}\n $gutterX={0.5}\n $gapX={0.25}\n $flexGapX={0.25}\n $position=\"relative\"\n >\n <IconWrapper $iconColor={clockColor}>\n <Clock2Icon />\n </IconWrapper>\n {isTabActive &&\n (startTimer ? (\n <Timer\n endTime={endTime}\n key={endTime}\n onComplete={handleTimerComplete}\n reminder={nextReminder?.at}\n onReminder={handleMultiReminder}\n />\n ) : (\n <Clock\n completionTime={classDuration - ANIMATION_TIME.LAST_TEN}\n onComplete={handleStartAnimation}\n startedOn={new Date(classStartedTime)}\n />\n ))}\n </FlexView>\n </Ripple>\n </FlexView>\n </FlexView>\n );\n};\n\nexport default memo(ClassTime);\n"],"names":["ClassTime","props","classDuration","classStartedTime","extendedTime","ongoing","onComplete","onExtendClass","onExtendedTimeStart","showExtendIcon","elapsedTime","isTabActive","useVisibilityChange","hasExtendedTimeStarted","useMemo","extendedTimeStarted","setExtendedTimeStarted","useState","remainingTime","endTime","canStartTimer","START_TIMER","animateClock","setAnimateClock","startTimer","setStartTimer","clockColor","getClockColor","handleStartExtendedTime","useCallback","handleStartAnimation","animationReminders","ANIMATION_TIME","handleTimerComplete","useEffect","isClassCompleted","firedReminders","useRef","nextReminder","r","key","a","b","handleMultiReminder","jsx","FlexView","jsxs","Animate","Ripple","LAST_FIVE","IconWrapper","Clock2Icon","Timer","Clock","classTime","memo"],"mappings":"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"}
|
|
@@ -1,31 +1,30 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
const
|
|
1
|
+
import e from "styled-components";
|
|
2
|
+
import n from "../../layout/flex-view.js";
|
|
3
|
+
const _ = e(n)`
|
|
4
4
|
svg {
|
|
5
5
|
color: ${(t) => t.theme.colors[t.$iconColor]};
|
|
6
6
|
}
|
|
7
|
-
`, o = 60 * 10, r = 60 * 5,
|
|
7
|
+
`, o = 60 * 10, r = 60 * 5, I = {
|
|
8
8
|
LAST_TEN: o + 2,
|
|
9
9
|
LAST_FIVE: r + 2
|
|
10
|
-
},
|
|
10
|
+
}, L = 2e3, A = 1500, l = [
|
|
11
11
|
{
|
|
12
12
|
name: "ALERT",
|
|
13
13
|
url: "https://static.qumath.in/static/intel-student/cmpress/alert.mp3"
|
|
14
14
|
}
|
|
15
|
-
],
|
|
15
|
+
], i = ({
|
|
16
16
|
remainingTime: t,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}) => t <= r ? "ORANGE_3" : t <= o || c && s || e ? "YELLOW_3" : "BLACK_3";
|
|
17
|
+
extendedTime: c,
|
|
18
|
+
extendedTimeStarted: s
|
|
19
|
+
}) => t <= r ? "ORANGE_3" : t <= o || c || s ? "YELLOW_3" : "BLACK_3";
|
|
21
20
|
export {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
l as ALERT_AUDIO_LIST,
|
|
22
|
+
I as ANIMATION_TIME,
|
|
23
|
+
A as EXTEND_IDLE,
|
|
24
|
+
_ as IconWrapper,
|
|
26
25
|
r as LAST_FIVE,
|
|
27
26
|
o as START_TIMER,
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
L as TIME_LEFT_IDLE,
|
|
28
|
+
i as getClockColor
|
|
30
29
|
};
|
|
31
30
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../../src/features/ui/timers/class-time/constants.ts"],"sourcesContent":["import type { TColorNames } from '../../types';\n\nimport styled from 'styled-components';\n\nimport FlexView from '../../layout/flex-view';\n\nconst IconWrapper = styled(FlexView)<{ $iconColor: TColorNames }>`\n svg {\n color: ${props => props.theme.colors[props.$iconColor]};\n }\n`;\n\nconst START_TIMER = 60 * 10; // 10 minutes\nconst LAST_FIVE = 60 * 5; // 5 minutes\nconst ANIMATION_TIME = {\n LAST_TEN: START_TIMER + 2,\n LAST_FIVE: LAST_FIVE + 2,\n};\n\nconst TIME_LEFT_IDLE = 2000;\nconst EXTEND_IDLE = 1500;\n\ninterface IClockColorParams {\n remainingTime: number;\n
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../../src/features/ui/timers/class-time/constants.ts"],"sourcesContent":["import type { TColorNames } from '../../types';\n\nimport styled from 'styled-components';\n\nimport FlexView from '../../layout/flex-view';\n\nconst IconWrapper = styled(FlexView)<{ $iconColor: TColorNames }>`\n svg {\n color: ${props => props.theme.colors[props.$iconColor]};\n }\n`;\n\nconst START_TIMER = 60 * 10; // 10 minutes\nconst LAST_FIVE = 60 * 5; // 5 minutes\nconst ANIMATION_TIME = {\n LAST_TEN: START_TIMER + 2,\n LAST_FIVE: LAST_FIVE + 2,\n};\n\nconst TIME_LEFT_IDLE = 2000;\nconst EXTEND_IDLE = 1500;\n\ninterface IClockColorParams {\n remainingTime: number;\n extendedTime: number;\n extendedTimeStarted: boolean;\n}\n\nexport const ALERT_AUDIO_LIST = [\n {\n name: 'ALERT',\n url: 'https://static.qumath.in/static/intel-student/cmpress/alert.mp3',\n },\n];\n\nconst getClockColor = ({\n remainingTime,\n extendedTime,\n extendedTimeStarted,\n}: IClockColorParams): TColorNames => {\n if (remainingTime <= LAST_FIVE) return 'ORANGE_3';\n\n if (remainingTime <= START_TIMER || extendedTime || extendedTimeStarted) return 'YELLOW_3';\n\n return 'BLACK_3';\n};\n\nexport {\n getClockColor,\n IconWrapper,\n ANIMATION_TIME,\n START_TIMER,\n LAST_FIVE,\n TIME_LEFT_IDLE,\n EXTEND_IDLE,\n};\n"],"names":["IconWrapper","styled","FlexView","props","START_TIMER","LAST_FIVE","ANIMATION_TIME","TIME_LEFT_IDLE","EXTEND_IDLE","ALERT_AUDIO_LIST","getClockColor","remainingTime","extendedTime","extendedTimeStarted"],"mappings":";;AAMM,MAAAA,IAAcC,EAAOC,CAAQ;AAAA;AAAA,aAEtB,OAASC,EAAM,MAAM,OAAOA,EAAM,UAAU,CAAC;AAAA;AAAA,GAIpDC,IAAc,KAAK,IACnBC,IAAY,KAAK,GACjBC,IAAiB;AAAA,EACrB,UAAUF,IAAc;AAAA,EACxB,WAAWC,IAAY;AACzB,GAEME,IAAiB,KACjBC,IAAc,MAQPC,IAAmB;AAAA,EAC9B;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,EACP;AACF,GAEMC,IAAgB,CAAC;AAAA,EACrB,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,qBAAAC;AACF,MACMF,KAAiBN,IAAkB,aAEnCM,KAAiBP,KAAeQ,KAAgBC,IAA4B,aAEzE;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1381,8 +1381,8 @@ declare interface IClassTimeProps {
|
|
|
1381
1381
|
/** Class duration in seconds */
|
|
1382
1382
|
classDuration: number;
|
|
1383
1383
|
/** When the class started */
|
|
1384
|
-
classStartedTime:
|
|
1385
|
-
/** Extended time in
|
|
1384
|
+
classStartedTime: Date;
|
|
1385
|
+
/** Extended time in minutes */
|
|
1386
1386
|
extendedTime?: number;
|
|
1387
1387
|
/** Whether class is ongoing */
|
|
1388
1388
|
ongoing?: boolean;
|
|
@@ -1394,8 +1394,6 @@ declare interface IClassTimeProps {
|
|
|
1394
1394
|
onExtendedTimeStart?: () => void;
|
|
1395
1395
|
/** Whether to show the extend class icon (default: false) there is conditions for teacher where we are also not showing this icon */
|
|
1396
1396
|
showExtendIcon?: boolean;
|
|
1397
|
-
/** Whether to update timer with extended time (overrides userType default) */
|
|
1398
|
-
updateWithExtendedTime?: boolean;
|
|
1399
1397
|
}
|
|
1400
1398
|
|
|
1401
1399
|
export declare interface IClickableAnalyticsProps {
|