@cuemath/leap 2.8.25-rj-13 → 2.8.25-rj-15

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,43 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import T from "lottie-web";
3
- import { memo as h, useState as R, useRef as S, useMemo as x, useEffect as V } from "react";
4
- import { CircularLoader as G } from "../../ui/loader/circular-loader/circular-loader.js";
5
- import { useCircleSounds as M } from "../hooks/use-circle-sounds/use-circle-sounds.js";
6
- import { Carousel as z } from "./comps/carousel/carousel.js";
2
+ import h from "lottie-web";
3
+ import { memo as R, useState as S, useRef as G, useMemo as P, useEffect as x } from "react";
4
+ import { CircularLoader as M } from "../../ui/loader/circular-loader/circular-loader.js";
5
+ import { useCircleSounds as _ } from "../hooks/use-circle-sounds/use-circle-sounds.js";
6
+ import { Carousel as V } from "./comps/carousel/carousel.js";
7
7
  import { SegmentedGameCard as t } from "./comps/segmented-game-card/segmented-game-card.js";
8
- import { GAME_LAUNCHER_ANALYTICS_EVENTS as C } from "./game-launcher-analytics-events.js";
9
- import { SleepyBoiLottyContainer as _ } from "./game-launcher-styled.js";
10
- import { useGameLauncherJourney as B } from "./use-game-launcher-journey/use-game-launcher-journey.js";
8
+ import { GAME_LAUNCHER_ANALYTICS_EVENTS as z } from "./game-launcher-analytics-events.js";
9
+ import { SleepyBoiLottyContainer as B } from "./game-launcher-styled.js";
10
+ import { useGameLauncherJourney as J } from "./use-game-launcher-journey/use-game-launcher-journey.js";
11
11
  import { ProjectType as i } from "../games/web-view/enums/project-type-enum.js";
12
- const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js"), Q = h(
13
- ({ onSegmentClick: o, onJourneyComplete: b, journeyId: n, data: e, isLoading: m, defaultIndex: g = 0 }) => {
14
- const [v, A] = R(g), u = S(null), { playSwipSound: a } = M(), {
15
- gameRefs: p,
16
- lessonRefs: c,
17
- puzzleRefs: f,
18
- startJourney: y,
19
- carouselNextBtnRef: L,
20
- isJourneyInProgress: P
21
- } = B({
22
- setCarouselIndex: A,
12
+ const Y = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js"), W = R(
13
+ ({
14
+ onSegmentClick: o,
15
+ onJourneyComplete: g,
16
+ journeyId: n,
17
+ data: e,
18
+ isLoading: C,
19
+ error: b = !1,
20
+ defaultIndex: v = 0
21
+ }) => {
22
+ const [A, E] = S(v), m = G(null), { playSwipSound: u } = _(), {
23
+ gameRefs: a,
24
+ lessonRefs: f,
25
+ puzzleRefs: p,
26
+ startJourney: c,
27
+ carouselNextBtnRef: y,
28
+ isJourneyInProgress: L
29
+ } = J({
30
+ setCarouselIndex: E,
23
31
  onSegmentClick: o,
24
- onJourneyComplete: b
25
- }), E = x(() => {
32
+ onJourneyComplete: g
33
+ }), I = P(() => {
26
34
  let l = [];
27
35
  return e && (e.lessons && (l = [
28
36
  ...l,
29
37
  /* @__PURE__ */ r(
30
38
  t,
31
39
  {
32
- ref: c,
40
+ ref: f,
33
41
  label: e.lessons.label,
34
42
  value: e.lessons.data.filter((s) => s.status === "completed").length,
35
43
  maxValue: e.lessons.data.length,
@@ -47,7 +55,7 @@ const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js
47
55
  /* @__PURE__ */ r(
48
56
  t,
49
57
  {
50
- ref: p,
58
+ ref: a,
51
59
  label: e.games.label,
52
60
  value: e.games.data.filter((s) => s.isPlayed).length,
53
61
  maxValue: e.games.data.length,
@@ -63,7 +71,7 @@ const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js
63
71
  /* @__PURE__ */ r(
64
72
  t,
65
73
  {
66
- ref: f,
74
+ ref: p,
67
75
  label: e.puzzles.label,
68
76
  value: e.puzzles.data.filter((s) => s.solved).length,
69
77
  maxValue: e.puzzles.data.length,
@@ -77,17 +85,17 @@ const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js
77
85
  }
78
86
  )
79
87
  ]), l;
80
- }, [e, p, c, o, f]), I = x(
81
- () => [/* @__PURE__ */ r(_, { ref: u })],
88
+ }, [e, a, f, o, p]), N = P(
89
+ () => [/* @__PURE__ */ r(B, { ref: m })],
82
90
  []
83
91
  );
84
- return V(() => {
92
+ return x(() => {
85
93
  let l = null;
86
94
  return (async () => {
87
- const N = (await J()).default;
88
- l = T.loadAnimation({
89
- container: u.current,
90
- animationData: N,
95
+ const T = (await Y()).default;
96
+ l = h.loadAnimation({
97
+ container: m.current,
98
+ animationData: T,
91
99
  autoplay: !0,
92
100
  loop: !0,
93
101
  renderer: "canvas"
@@ -95,13 +103,13 @@ const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js
95
103
  })(), () => {
96
104
  l == null || l.destroy();
97
105
  };
98
- }, []), V(() => {
99
- e != null && e.puzzles && n && P && y(e == null ? void 0 : e.puzzles, !!(e != null && e.lessons), n);
100
- }, [e == null ? void 0 : e.lessons, e == null ? void 0 : e.puzzles, P, n, y]), m ? /* @__PURE__ */ r(G, {}) : !e && !m ? /* @__PURE__ */ r(
101
- z,
106
+ }, []), x(() => {
107
+ e != null && e.puzzles && n && L && c(e == null ? void 0 : e.puzzles, !!(e != null && e.lessons), n);
108
+ }, [e == null ? void 0 : e.lessons, e == null ? void 0 : e.puzzles, L, n, c]), C ? /* @__PURE__ */ r(M, {}) : b ? /* @__PURE__ */ r(
109
+ V,
102
110
  {
103
- ref: L,
104
- items: I,
111
+ ref: y,
112
+ items: N,
105
113
  analyticsNext: {
106
114
  analyticsLabel: ""
107
115
  },
@@ -110,24 +118,24 @@ const J = () => import("../../../assets/lotties/circle/sleepy-boi-lottie.json.js
110
118
  }
111
119
  }
112
120
  ) : /* @__PURE__ */ r(
113
- z,
121
+ V,
114
122
  {
115
- ref: L,
116
- items: E,
117
- defaultIndex: v,
118
- onNext: a,
119
- onPrev: a,
123
+ ref: y,
124
+ items: I,
125
+ defaultIndex: A,
126
+ onNext: u,
127
+ onPrev: u,
120
128
  analyticsNext: {
121
- analyticsLabel: C.NEXT_ACTIVITY
129
+ analyticsLabel: z.NEXT_ACTIVITY
122
130
  },
123
131
  analyticsPrev: {
124
- analyticsLabel: C.PREV_ACTIVITY
132
+ analyticsLabel: z.PREV_ACTIVITY
125
133
  }
126
134
  }
127
135
  );
128
136
  }
129
137
  );
130
138
  export {
131
- Q as GameLauncher
139
+ W as GameLauncher
132
140
  };
133
141
  //# 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 && !isLoading) {\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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"}
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 ({\n onSegmentClick,\n onJourneyComplete,\n journeyId,\n data,\n isLoading,\n error = false,\n defaultIndex = 0,\n }) => {\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 (error) {\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","error","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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"}
package/dist/index.d.ts CHANGED
@@ -1087,6 +1087,7 @@ declare interface IGame extends IBaseProject<GameId> {
1087
1087
  declare interface IGameLauncherProps {
1088
1088
  onSegmentClick: (projectDetail: Game | Puzzle | Lesson, projectType: ProjectType) => void;
1089
1089
  isLoading?: boolean;
1090
+ error?: boolean;
1090
1091
  data: IProjects | null;
1091
1092
  defaultIndex?: number;
1092
1093
  journeyId?: TJourneyId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "2.8.25-rj-13",
3
+ "version": "2.8.25-rj-15",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"