@cuemath/leap 2.8.25-rj-13 → 2.8.25-rj-14
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,35 +1,35 @@
|
|
1
|
-
import { jsx as
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
2
2
|
import T from "lottie-web";
|
3
|
-
import { memo as
|
4
|
-
import { CircularLoader as
|
3
|
+
import { memo as R, useState as I, useRef as G, useMemo as x, useEffect as z } from "react";
|
4
|
+
import { CircularLoader as S } from "../../ui/loader/circular-loader/circular-loader.js";
|
5
5
|
import { useCircleSounds as M } from "../hooks/use-circle-sounds/use-circle-sounds.js";
|
6
|
-
import { Carousel as
|
7
|
-
import { SegmentedGameCard as
|
6
|
+
import { Carousel as g } from "./comps/carousel/carousel.js";
|
7
|
+
import { SegmentedGameCard as i } from "./comps/segmented-game-card/segmented-game-card.js";
|
8
8
|
import { GAME_LAUNCHER_ANALYTICS_EVENTS as C } from "./game-launcher-analytics-events.js";
|
9
9
|
import { SleepyBoiLottyContainer as _ } from "./game-launcher-styled.js";
|
10
10
|
import { useGameLauncherJourney as B } from "./use-game-launcher-journey/use-game-launcher-journey.js";
|
11
|
-
import { ProjectType as
|
12
|
-
const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js"),
|
13
|
-
({ onSegmentClick:
|
14
|
-
const [v, A] =
|
11
|
+
import { ProjectType as t } from "../games/web-view/enums/project-type-enum.js";
|
12
|
+
const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js"), W = R(
|
13
|
+
({ onSegmentClick: r, onJourneyComplete: b, journeyId: n, data: e, isLoading: m, defaultIndex: u = 0 }) => {
|
14
|
+
const [v, A] = I(u), c = G(null), { playSwipSound: a } = M(), {
|
15
15
|
gameRefs: p,
|
16
|
-
lessonRefs:
|
17
|
-
puzzleRefs:
|
18
|
-
startJourney:
|
19
|
-
carouselNextBtnRef:
|
20
|
-
isJourneyInProgress:
|
16
|
+
lessonRefs: f,
|
17
|
+
puzzleRefs: y,
|
18
|
+
startJourney: L,
|
19
|
+
carouselNextBtnRef: P,
|
20
|
+
isJourneyInProgress: V
|
21
21
|
} = B({
|
22
22
|
setCarouselIndex: A,
|
23
|
-
onSegmentClick:
|
23
|
+
onSegmentClick: r,
|
24
24
|
onJourneyComplete: b
|
25
25
|
}), E = x(() => {
|
26
26
|
let l = [];
|
27
27
|
return e && (e.lessons && (l = [
|
28
28
|
...l,
|
29
|
-
/* @__PURE__ */
|
30
|
-
|
29
|
+
/* @__PURE__ */ o(
|
30
|
+
i,
|
31
31
|
{
|
32
|
-
ref:
|
32
|
+
ref: f,
|
33
33
|
label: e.lessons.label,
|
34
34
|
value: e.lessons.data.filter((s) => s.status === "completed").length,
|
35
35
|
maxValue: e.lessons.data.length,
|
@@ -38,14 +38,14 @@ const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js
|
|
38
38
|
card: s.cardLottie,
|
39
39
|
name: s.name,
|
40
40
|
isCompleted: s.status === "completed",
|
41
|
-
onPress: () => s.status === "completed" ? void 0 :
|
41
|
+
onPress: () => s.status === "completed" ? void 0 : r(s, t.LESSON)
|
42
42
|
}))
|
43
43
|
}
|
44
44
|
)
|
45
45
|
]), l = [
|
46
46
|
...l,
|
47
|
-
/* @__PURE__ */
|
48
|
-
|
47
|
+
/* @__PURE__ */ o(
|
48
|
+
i,
|
49
49
|
{
|
50
50
|
ref: p,
|
51
51
|
label: e.games.label,
|
@@ -56,14 +56,14 @@ const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js
|
|
56
56
|
card: s.cardLottie,
|
57
57
|
name: s.name,
|
58
58
|
isCompleted: !1,
|
59
|
-
onPress: () =>
|
59
|
+
onPress: () => r(s, t.GAME)
|
60
60
|
}))
|
61
61
|
}
|
62
62
|
),
|
63
|
-
/* @__PURE__ */
|
64
|
-
|
63
|
+
/* @__PURE__ */ o(
|
64
|
+
i,
|
65
65
|
{
|
66
|
-
ref:
|
66
|
+
ref: y,
|
67
67
|
label: e.puzzles.label,
|
68
68
|
value: e.puzzles.data.filter((s) => s.solved).length,
|
69
69
|
maxValue: e.puzzles.data.length,
|
@@ -72,21 +72,21 @@ const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js
|
|
72
72
|
card: s.cardLottie,
|
73
73
|
name: s.name,
|
74
74
|
isCompleted: s.solved,
|
75
|
-
onPress: () =>
|
75
|
+
onPress: () => r(s, t.PUZZLE)
|
76
76
|
}))
|
77
77
|
}
|
78
78
|
)
|
79
79
|
]), l;
|
80
|
-
}, [e, p,
|
81
|
-
() => [/* @__PURE__ */
|
80
|
+
}, [e, p, f, r, y]), h = x(
|
81
|
+
() => [/* @__PURE__ */ o(_, { ref: c })],
|
82
82
|
[]
|
83
83
|
);
|
84
|
-
return
|
84
|
+
return z(() => {
|
85
85
|
let l = null;
|
86
86
|
return (async () => {
|
87
87
|
const N = (await J()).default;
|
88
88
|
l = T.loadAnimation({
|
89
|
-
container:
|
89
|
+
container: c.current,
|
90
90
|
animationData: N,
|
91
91
|
autoplay: !0,
|
92
92
|
loop: !0,
|
@@ -95,24 +95,12 @@ const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js
|
|
95
95
|
})(), () => {
|
96
96
|
l == null || l.destroy();
|
97
97
|
};
|
98
|
-
}, []),
|
99
|
-
e != null && e.puzzles && n &&
|
100
|
-
}, [e == null ? void 0 : e.lessons, e == null ? void 0 : e.puzzles,
|
101
|
-
|
102
|
-
{
|
103
|
-
ref: L,
|
104
|
-
items: I,
|
105
|
-
analyticsNext: {
|
106
|
-
analyticsLabel: ""
|
107
|
-
},
|
108
|
-
analyticsPrev: {
|
109
|
-
analyticsLabel: ""
|
110
|
-
}
|
111
|
-
}
|
112
|
-
) : /* @__PURE__ */ r(
|
113
|
-
z,
|
98
|
+
}, []), z(() => {
|
99
|
+
e != null && e.puzzles && n && V && L(e == null ? void 0 : e.puzzles, !!(e != null && e.lessons), n);
|
100
|
+
}, [e == null ? void 0 : e.lessons, e == null ? void 0 : e.puzzles, V, n, L]), console.log("GameLauncher", { journeyId: n, data: e, isLoading: m, defaultIndex: u }), m ? /* @__PURE__ */ o(S, {}) : e ? /* @__PURE__ */ o(
|
101
|
+
g,
|
114
102
|
{
|
115
|
-
ref:
|
103
|
+
ref: P,
|
116
104
|
items: E,
|
117
105
|
defaultIndex: v,
|
118
106
|
onNext: a,
|
@@ -124,10 +112,22 @@ const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js
|
|
124
112
|
analyticsLabel: C.PREV_ACTIVITY
|
125
113
|
}
|
126
114
|
}
|
115
|
+
) : /* @__PURE__ */ o(
|
116
|
+
g,
|
117
|
+
{
|
118
|
+
ref: P,
|
119
|
+
items: h,
|
120
|
+
analyticsNext: {
|
121
|
+
analyticsLabel: ""
|
122
|
+
},
|
123
|
+
analyticsPrev: {
|
124
|
+
analyticsLabel: ""
|
125
|
+
}
|
126
|
+
}
|
127
127
|
);
|
128
128
|
}
|
129
129
|
);
|
130
130
|
export {
|
131
|
-
|
131
|
+
W as GameLauncher
|
132
132
|
};
|
133
133
|
//# sourceMappingURL=game-launcher.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"game-launcher.js","sources":["../../../../src/features/circle-games/game-launcher/game-launcher.tsx"],"sourcesContent":["import type { IGameLauncherProps } from './game-launcher-types';\nimport type { AnimationItem } from 'lottie-web';\nimport type { FC, ReactNode } from 'react';\n\nimport Lottie from 'lottie-web';\nimport { memo, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { CircularLoader } from '../../ui/loader/circular-loader/circular-loader';\nimport { ProjectType } from '../games/web-view/enums';\nimport { useCircleSounds } from '../hooks/use-circle-sounds/use-circle-sounds';\nimport { Carousel } from './comps/carousel/carousel';\nimport { SegmentedGameCard } from './comps/segmented-game-card/segmented-game-card';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from './game-launcher-analytics-events';\nimport * as Styled from './game-launcher-styled';\nimport { useGameLauncherJourney } from './use-game-launcher-journey/use-game-launcher-journey';\n\nconst sleepyBoi = () => import('../../../assets/lotties/circle/sleepy-boi-lottie.json');\n\nexport const GameLauncher: FC<IGameLauncherProps> = memo(\n ({ onSegmentClick, onJourneyComplete, journeyId, data, isLoading, defaultIndex = 0 }) => {\n const [currentIndex, setCurrentIndex] = useState(defaultIndex);\n\n const lottieContainerRef = useRef<HTMLDivElement>(null);\n const { playSwipSound } = useCircleSounds();\n\n const {\n gameRefs,\n lessonRefs,\n puzzleRefs,\n startJourney,\n carouselNextBtnRef,\n isJourneyInProgress,\n } = useGameLauncherJourney({\n setCarouselIndex: setCurrentIndex,\n onSegmentClick,\n onJourneyComplete,\n });\n\n const items = useMemo(() => {\n let itemTypes: ReactNode[] = [];\n\n if (data) {\n if (data.lessons) {\n itemTypes = [\n ...itemTypes,\n <SegmentedGameCard\n ref={lessonRefs}\n label={data.lessons.label}\n value={data.lessons.data.filter(lesson => lesson.status === 'completed').length}\n maxValue={data.lessons.data.length}\n initialValue={data.lessons.initialProgressValue}\n data={data?.lessons.data.map(lesson => ({\n card: lesson.cardLottie,\n name: lesson.name,\n isCompleted: lesson.status === 'completed',\n onPress: () =>\n lesson.status === 'completed'\n ? undefined\n : onSegmentClick(lesson, ProjectType.LESSON),\n }))}\n />,\n ];\n }\n\n itemTypes = [\n ...itemTypes,\n <SegmentedGameCard\n ref={gameRefs}\n label={data.games.label}\n value={data.games.data.filter(game => game.isPlayed).length}\n maxValue={data.games.data.length}\n initialValue={data.games.initialProgressValue}\n data={data.games.data.map(game => ({\n card: game.cardLottie,\n name: game.name,\n isCompleted: false,\n onPress: () => onSegmentClick(game, ProjectType.GAME),\n }))}\n />,\n <SegmentedGameCard\n ref={puzzleRefs}\n label={data.puzzles.label}\n value={data.puzzles.data.filter(puzzle => puzzle.solved).length}\n maxValue={data.puzzles.data.length}\n initialValue={data.puzzles.initialProgressValue}\n data={data.puzzles.data.map(puzzle => ({\n card: puzzle.cardLottie,\n name: puzzle.name,\n isCompleted: puzzle.solved,\n onPress: () => onSegmentClick(puzzle, ProjectType.PUZZLE),\n }))}\n />,\n ];\n }\n\n return itemTypes;\n }, [data, gameRefs, lessonRefs, onSegmentClick, puzzleRefs]);\n\n const sleepyBoiItem = useMemo(\n () => [<Styled.SleepyBoiLottyContainer ref={lottieContainerRef} />],\n [],\n );\n\n useEffect(() => {\n let animation: AnimationItem | null = null;\n const loadAnimation = async () => {\n const animationModule = await sleepyBoi();\n\n const animationData = animationModule.default;\n\n animation = Lottie.loadAnimation({\n container: lottieContainerRef.current as Element,\n animationData: animationData,\n autoplay: true,\n loop: true,\n renderer: 'canvas',\n });\n };\n\n loadAnimation();\n\n return () => {\n animation?.destroy();\n };\n }, []);\n\n // Start game launcher journey when the data for puzzles is available\n useEffect(() => {\n if (data?.puzzles && journeyId && isJourneyInProgress) {\n startJourney(data?.puzzles, !!data?.lessons, journeyId);\n }\n }, [data?.lessons, data?.puzzles, isJourneyInProgress, journeyId, startJourney]);\n\n if (isLoading) {\n return <CircularLoader />;\n }\n\n if (!data
|
1
|
+
{"version":3,"file":"game-launcher.js","sources":["../../../../src/features/circle-games/game-launcher/game-launcher.tsx"],"sourcesContent":["import type { IGameLauncherProps } from './game-launcher-types';\nimport type { AnimationItem } from 'lottie-web';\nimport type { FC, ReactNode } from 'react';\n\nimport Lottie from 'lottie-web';\nimport { memo, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { CircularLoader } from '../../ui/loader/circular-loader/circular-loader';\nimport { ProjectType } from '../games/web-view/enums';\nimport { useCircleSounds } from '../hooks/use-circle-sounds/use-circle-sounds';\nimport { Carousel } from './comps/carousel/carousel';\nimport { SegmentedGameCard } from './comps/segmented-game-card/segmented-game-card';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from './game-launcher-analytics-events';\nimport * as Styled from './game-launcher-styled';\nimport { useGameLauncherJourney } from './use-game-launcher-journey/use-game-launcher-journey';\n\nconst sleepyBoi = () => import('../../../assets/lotties/circle/sleepy-boi-lottie.json');\n\nexport const GameLauncher: FC<IGameLauncherProps> = memo(\n ({ onSegmentClick, onJourneyComplete, journeyId, data, isLoading, defaultIndex = 0 }) => {\n const [currentIndex, setCurrentIndex] = useState(defaultIndex);\n\n const lottieContainerRef = useRef<HTMLDivElement>(null);\n const { playSwipSound } = useCircleSounds();\n\n const {\n gameRefs,\n lessonRefs,\n puzzleRefs,\n startJourney,\n carouselNextBtnRef,\n isJourneyInProgress,\n } = useGameLauncherJourney({\n setCarouselIndex: setCurrentIndex,\n onSegmentClick,\n onJourneyComplete,\n });\n\n const items = useMemo(() => {\n let itemTypes: ReactNode[] = [];\n\n if (data) {\n if (data.lessons) {\n itemTypes = [\n ...itemTypes,\n <SegmentedGameCard\n ref={lessonRefs}\n label={data.lessons.label}\n value={data.lessons.data.filter(lesson => lesson.status === 'completed').length}\n maxValue={data.lessons.data.length}\n initialValue={data.lessons.initialProgressValue}\n data={data?.lessons.data.map(lesson => ({\n card: lesson.cardLottie,\n name: lesson.name,\n isCompleted: lesson.status === 'completed',\n onPress: () =>\n lesson.status === 'completed'\n ? undefined\n : onSegmentClick(lesson, ProjectType.LESSON),\n }))}\n />,\n ];\n }\n\n itemTypes = [\n ...itemTypes,\n <SegmentedGameCard\n ref={gameRefs}\n label={data.games.label}\n value={data.games.data.filter(game => game.isPlayed).length}\n maxValue={data.games.data.length}\n initialValue={data.games.initialProgressValue}\n data={data.games.data.map(game => ({\n card: game.cardLottie,\n name: game.name,\n isCompleted: false,\n onPress: () => onSegmentClick(game, ProjectType.GAME),\n }))}\n />,\n <SegmentedGameCard\n ref={puzzleRefs}\n label={data.puzzles.label}\n value={data.puzzles.data.filter(puzzle => puzzle.solved).length}\n maxValue={data.puzzles.data.length}\n initialValue={data.puzzles.initialProgressValue}\n data={data.puzzles.data.map(puzzle => ({\n card: puzzle.cardLottie,\n name: puzzle.name,\n isCompleted: puzzle.solved,\n onPress: () => onSegmentClick(puzzle, ProjectType.PUZZLE),\n }))}\n />,\n ];\n }\n\n return itemTypes;\n }, [data, gameRefs, lessonRefs, onSegmentClick, puzzleRefs]);\n\n const sleepyBoiItem = useMemo(\n () => [<Styled.SleepyBoiLottyContainer ref={lottieContainerRef} />],\n [],\n );\n\n useEffect(() => {\n let animation: AnimationItem | null = null;\n const loadAnimation = async () => {\n const animationModule = await sleepyBoi();\n\n const animationData = animationModule.default;\n\n animation = Lottie.loadAnimation({\n container: lottieContainerRef.current as Element,\n animationData: animationData,\n autoplay: true,\n loop: true,\n renderer: 'canvas',\n });\n };\n\n loadAnimation();\n\n return () => {\n animation?.destroy();\n };\n }, []);\n\n // Start game launcher journey when the data for puzzles is available\n useEffect(() => {\n if (data?.puzzles && journeyId && isJourneyInProgress) {\n startJourney(data?.puzzles, !!data?.lessons, journeyId);\n }\n }, [data?.lessons, data?.puzzles, isJourneyInProgress, journeyId, startJourney]);\n\n console.log('GameLauncher', { journeyId, data, isLoading, defaultIndex });\n\n if (isLoading) {\n return <CircularLoader />;\n }\n\n if (!data) {\n return (\n <Carousel\n ref={carouselNextBtnRef}\n items={sleepyBoiItem}\n analyticsNext={{\n analyticsLabel: '',\n }}\n analyticsPrev={{\n analyticsLabel: '',\n }}\n />\n );\n }\n\n return (\n <Carousel\n ref={carouselNextBtnRef}\n items={items}\n defaultIndex={currentIndex}\n onNext={playSwipSound}\n onPrev={playSwipSound}\n analyticsNext={{\n analyticsLabel: GAME_LAUNCHER_ANALYTICS_EVENTS.NEXT_ACTIVITY,\n }}\n analyticsPrev={{\n analyticsLabel: GAME_LAUNCHER_ANALYTICS_EVENTS.PREV_ACTIVITY,\n }}\n />\n );\n },\n);\n"],"names":["sleepyBoi","GameLauncher","memo","onSegmentClick","onJourneyComplete","journeyId","data","isLoading","defaultIndex","currentIndex","setCurrentIndex","useState","lottieContainerRef","useRef","playSwipSound","useCircleSounds","gameRefs","lessonRefs","puzzleRefs","startJourney","carouselNextBtnRef","isJourneyInProgress","useGameLauncherJourney","items","useMemo","itemTypes","jsx","SegmentedGameCard","lesson","ProjectType","game","puzzle","sleepyBoiItem","Styled.SleepyBoiLottyContainer","useEffect","animation","animationData","Lottie","CircularLoader","Carousel","GAME_LAUNCHER_ANALYTICS_EVENTS"],"mappings":"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"}
|