@cuemath/leap 3.5.45 → 3.5.46

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 (23) hide show
  1. package/dist/features/analytics-events/whitelist-events.js +16 -14
  2. package/dist/features/analytics-events/whitelist-events.js.map +1 -1
  3. package/dist/features/circle-games/games/web-view/web-view-analytics-events.js.map +1 -1
  4. package/dist/features/circle-games/hooks/use-circle-sounds/constants.js +7 -4
  5. package/dist/features/circle-games/hooks/use-circle-sounds/constants.js.map +1 -1
  6. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js +51 -110
  7. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
  8. package/dist/features/hooks/use-audio-player/use-audio-player.js +164 -0
  9. package/dist/features/hooks/use-audio-player/use-audio-player.js.map +1 -0
  10. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game-analytics-events.js +11 -0
  11. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game-analytics-events.js.map +1 -0
  12. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js +144 -120
  13. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
  14. package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js +61 -57
  15. package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js.map +1 -1
  16. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +86 -82
  17. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
  18. package/dist/index.d.ts +14 -4
  19. package/package.json +2 -2
  20. package/dist/features/circle-games/hooks/use-circle-sounds/helper.js +0 -19
  21. package/dist/features/circle-games/hooks/use-circle-sounds/helper.js.map +0 -1
  22. package/dist/features/hooks/use-audio-player.js +0 -54
  23. package/dist/features/hooks/use-audio-player.js.map +0 -1
@@ -1,165 +1,189 @@
1
- import { jsxs as s, Fragment as K, jsx as t } from "react/jsx-runtime";
2
- import { memo as Q, useRef as X, useState as ee, useMemo as h, useCallback as m, useEffect as re } from "react";
3
- import { getTimeStrInFormatHMS as te } from "../../../../helpers/date-time.js";
4
- import { useWebViewGames as ae } from "../../../circle-games/games/web-view/hooks/use-webview-games.js";
5
- import { WebView as ie } from "../../../circle-games/games/web-view/web-view.js";
6
- import v from "../../../ui/layout/flex-view.js";
7
- import E from "../../../ui/separator/separator.js";
8
- import d from "../../../ui/text/text.js";
9
- import { useTrialSessionContext as oe } from "../../context/use-trial-session-context.js";
1
+ import { jsxs as u, Fragment as te, jsx as t } from "react/jsx-runtime";
2
+ import { memo as ae, useRef as b, useState as ie, useMemo as h, useCallback as p, useEffect as k } from "react";
3
+ import { getTimeStrInFormatHMS as oe } from "../../../../helpers/date-time.js";
4
+ import { useWebViewGames as ne } from "../../../circle-games/games/web-view/hooks/use-webview-games.js";
5
+ import { WebView as ce } from "../../../circle-games/games/web-view/web-view.js";
6
+ import { useUIContext as le } from "../../../ui/context/context.js";
7
+ import M from "../../../ui/layout/flex-view.js";
8
+ import I from "../../../ui/separator/separator.js";
9
+ import f from "../../../ui/text/text.js";
10
+ import { useTrialSessionContext as se } from "../../context/use-trial-session-context.js";
10
11
  import { TrialPageId as y } from "../../trial-session-constants.js";
11
- import { TrialCircleGameLaunchScreen as ne } from "./trial-circle-game-launch-screen/trial-circle-game-launch-screen.js";
12
- import { GameContainer as le, GameWrapper as ce, GameLaunchOverlay as se } from "./trial-circle-game-styled.js";
13
- import { ProjectType as e } from "../../../circle-games/games/web-view/enums/project-type-enum.js";
14
- import S from "../../../../node_modules/uuid/dist/esm-browser/v4.js";
15
- const me = {
16
- [y.CIRCLE_GAME]: e.GAME,
17
- [y.CIRCLE_PUZZLE]: e.PUZZLE,
18
- [y.CIRCLE_SKILL]: e.LESSON
19
- }, _e = Q(function() {
20
- const { slideConfig: b, trialGameUrl: j, circleGames: A, formData: k, handleInfoMessage: $, updateSlideConfig: o } = oe(), {
21
- showCircleGameScreen: g = !0,
22
- isCircleGamePlayed: u = !1,
23
- isCirclePuzzleSolved: c = !1,
24
- isCircleSkillCompleted: p = !1,
25
- accuracyStr: C = "",
26
- totalTimeTaken: G = 0,
27
- matchmakingId: f
28
- } = k || {}, I = X(null), { playGame: P } = ae({ webViewRef: I }), [T, L] = ee(!0), { header: U, id: M } = b, r = me[M], { circleConfig: O, playerDetails: W } = A, { games: l, puzzles: n, lessons: a } = O ?? {}, _ = h(() => ({
29
- [e.GAME]: u,
30
- [e.PUZZLE]: c,
31
- [e.LESSON]: p
32
- }), [u, c, p]), w = h(() => {
33
- const i = {
34
- [e.GAME]: u ? l.game_card : l.tutorial,
35
- [e.PUZZLE]: c ? n.game_card : n.tutorial,
36
- [e.LESSON]: p ? a.game_card : a.tutorial
12
+ import { TRIAL_CIRCLE_GAME_ANALYTICS_EVENTS as U } from "./trial-circle-game-analytics-events.js";
13
+ import { TrialCircleGameLaunchScreen as me } from "./trial-circle-game-launch-screen/trial-circle-game-launch-screen.js";
14
+ import { GameContainer as de, GameWrapper as ue, GameLaunchOverlay as pe } from "./trial-circle-game-styled.js";
15
+ import { ProjectType as r } from "../../../circle-games/games/web-view/enums/project-type-enum.js";
16
+ import T from "../../../../node_modules/uuid/dist/esm-browser/v4.js";
17
+ const fe = {
18
+ [y.CIRCLE_GAME]: r.GAME,
19
+ [y.CIRCLE_PUZZLE]: r.PUZZLE,
20
+ [y.CIRCLE_SKILL]: r.LESSON
21
+ }, be = ae(function() {
22
+ const { slideConfig: D, trialGameUrl: $, circleGames: R, formData: O, handleInfoMessage: x, updateSlideConfig: o } = se(), {
23
+ showCircleGameScreen: L = !0,
24
+ isCircleGamePlayed: E = !1,
25
+ isCirclePuzzleSolved: m = !1,
26
+ isCircleSkillCompleted: S = !1,
27
+ accuracyStr: G = "",
28
+ totalTimeTaken: g = 0,
29
+ matchmakingId: l
30
+ } = O || {}, v = b(null), { playGame: A } = ne({ webViewRef: v }), { onEvent: C } = le(), [d, _] = ie(!0), P = b(0), { header: N, id: W } = D, e = fe[W], { circleConfig: H, playerDetails: z } = R, { games: s, puzzles: n, lessons: i } = H ?? {}, j = h(() => ({
31
+ [r.GAME]: E,
32
+ [r.PUZZLE]: m,
33
+ [r.LESSON]: S
34
+ }), [E, m, S]), w = h(() => {
35
+ const a = {
36
+ [r.GAME]: E ? s.game_card : s.tutorial,
37
+ [r.PUZZLE]: m ? n.game_card : n.tutorial,
38
+ [r.LESSON]: S ? i.game_card : i.tutorial
37
39
  };
38
- return r ? i[r] : "";
40
+ return e ? a[e] : "";
39
41
  }, [
40
- r,
41
- l.game_card,
42
- l.tutorial,
42
+ e,
43
+ s.game_card,
44
+ s.tutorial,
43
45
  n.game_card,
44
46
  n.tutorial,
45
- a.game_card,
46
- a.tutorial,
47
- u,
48
- c,
49
- p
50
- ]), x = h(() => r === e.PUZZLE && c ? "You've solved it!" : "", [r, c]), { circle_username: D, userId: H, grade: N, user_avatar: R, playerType: Z } = W ?? {}, z = {
51
- id: H,
52
- username: D,
53
- grade: N,
54
- avatar: R,
47
+ i.game_card,
48
+ i.tutorial,
49
+ E,
50
+ m,
51
+ S
52
+ ]), F = h(() => e === r.PUZZLE && m ? "You've solved it!" : "", [e, m]), { circle_username: B, userId: V, grade: q, user_avatar: Y, playerType: Z } = z ?? {}, J = {
53
+ id: V,
54
+ username: B,
55
+ grade: q,
56
+ avatar: Y,
55
57
  playerType: Z
56
- }, F = h(() => {
57
- const i = {
58
- joinByRoomId: f,
58
+ }, c = h(() => {
59
+ const a = {
60
+ joinByRoomId: l,
59
61
  enableCloseButton: !1,
60
62
  enablePlayerTurnIndicators: !0,
61
63
  enableSync: !0
62
64
  };
63
- return r === e.GAME ? {
64
- ...i,
65
- projectId: l.project_id,
66
- variant: l.variant,
67
- projectType: e.GAME
68
- } : r === e.PUZZLE ? {
69
- ...i,
65
+ return e === r.GAME ? {
66
+ ...a,
67
+ projectId: s.project_id,
68
+ variant: s.variant,
69
+ projectType: r.GAME
70
+ } : e === r.PUZZLE ? {
71
+ ...a,
70
72
  projectId: n.project_id,
71
73
  variant: n.variant,
72
74
  question: n.question,
73
75
  askHintPermission: !1,
74
- projectType: e.PUZZLE
76
+ projectType: r.PUZZLE
75
77
  } : {
76
- ...i,
77
- projectId: a.project_id,
78
- variant: a.variant,
79
- miniGameIdentifier: a.mini_game_identifier,
80
- sessionId: a.session_id,
81
- targetQuestions: a.target_questions,
82
- projectType: e.LESSON
78
+ ...a,
79
+ projectId: i.project_id,
80
+ variant: i.variant,
81
+ miniGameIdentifier: i.mini_game_identifier,
82
+ sessionId: i.session_id,
83
+ targetQuestions: i.target_questions,
84
+ projectType: r.LESSON
83
85
  };
84
- }, [l, n, a, r, f]), B = m(() => {
85
- L(!1);
86
- }, []), V = m(() => {
87
- L(!0), (r === e.GAME || r === e.PUZZLE || r === e.LESSON) && o({ showCircleGameScreen: !0, matchmakingId: S() });
88
- }, [r, o]), q = m(() => {
86
+ }, [s, n, i, e, l]), K = p(() => {
87
+ if (_(!1), e) {
88
+ const a = Date.now() - P.current;
89
+ C(U.CIRCLE_GAME_LOAD_SUCCESS, {
90
+ projectType: e,
91
+ projectId: c.projectId,
92
+ variant: c.variant,
93
+ loadTime: a
94
+ });
95
+ }
96
+ }, [e, c, C]), Q = p(() => {
97
+ _(!0), (e === r.GAME || e === r.PUZZLE || e === r.LESSON) && o({ showCircleGameScreen: !0, matchmakingId: T() });
98
+ }, [e, o]), X = p(() => {
89
99
  o({ showCircleGameScreen: !1, accuracyStr: "", totalTimeTaken: 0 });
90
- }, [o]), Y = m(
91
- (i) => {
92
- L(!0), r === e.LESSON ? o({
93
- accuracyStr: i.value,
94
- totalTimeTaken: i.timeSpent,
100
+ }, [o]), ee = p(
101
+ (a) => {
102
+ _(!0), e === r.LESSON ? o({
103
+ accuracyStr: a.value,
104
+ totalTimeTaken: a.timeSpent,
95
105
  isCircleSkillCompleted: !0,
96
106
  showCircleGameScreen: !0,
97
- matchmakingId: S()
98
- }) : r === e.GAME ? o({
107
+ matchmakingId: T()
108
+ }) : e === r.GAME ? o({
99
109
  isCircleGamePlayed: !0,
100
110
  showCircleGameScreen: !0,
101
- matchmakingId: S()
102
- }) : r === e.PUZZLE && o({
111
+ matchmakingId: T()
112
+ }) : e === r.PUZZLE && o({
103
113
  isCirclePuzzleSolved: !0,
104
114
  showCircleGameScreen: !0,
105
- matchmakingId: S()
115
+ matchmakingId: T()
106
116
  });
107
117
  },
108
- [o, r]
109
- ), J = m(() => C && G ? /* @__PURE__ */ s(K, { children: [
110
- /* @__PURE__ */ s(v, { $flexDirection: "row", children: [
111
- /* @__PURE__ */ t(d, { $renderAs: "ab2", $color: "WHITE", children: "Finished in" }),
112
- /* @__PURE__ */ t(E, { width: 5 }),
113
- /* @__PURE__ */ t(d, { $renderAs: "ab2-bold", $color: "WHITE", children: te(G) })
118
+ [o, e]
119
+ ), re = p(() => G && g ? /* @__PURE__ */ u(te, { children: [
120
+ /* @__PURE__ */ u(M, { $flexDirection: "row", children: [
121
+ /* @__PURE__ */ t(f, { $renderAs: "ab2", $color: "WHITE", children: "Finished in" }),
122
+ /* @__PURE__ */ t(I, { width: 5 }),
123
+ /* @__PURE__ */ t(f, { $renderAs: "ab2-bold", $color: "WHITE", children: oe(g) })
114
124
  ] }),
115
- /* @__PURE__ */ t(E, { height: 20 }),
116
- /* @__PURE__ */ s(v, { $flexDirection: "row", children: [
117
- /* @__PURE__ */ t(d, { $renderAs: "ab2", $color: "WHITE", children: "Accuracy:" }),
118
- /* @__PURE__ */ t(E, { width: 5 }),
119
- /* @__PURE__ */ t(d, { $renderAs: "ab2-bold", $color: "WHITE", children: C })
125
+ /* @__PURE__ */ t(I, { height: 20 }),
126
+ /* @__PURE__ */ u(M, { $flexDirection: "row", children: [
127
+ /* @__PURE__ */ t(f, { $renderAs: "ab2", $color: "WHITE", children: "Accuracy:" }),
128
+ /* @__PURE__ */ t(I, { width: 5 }),
129
+ /* @__PURE__ */ t(f, { $renderAs: "ab2-bold", $color: "WHITE", children: G })
120
130
  ] })
121
- ] }) : null, [C, G]);
122
- return re(() => {
123
- !T && !g && P();
124
- }, [g, P, T]), /* @__PURE__ */ s(le, { children: [
125
- /* @__PURE__ */ t(E, { height: 16 }),
126
- /* @__PURE__ */ t(d, { $renderAs: "ah3-bold", $color: "WHITE_T_87", $align: "center", $marginBottom: 16, children: U }),
127
- /* @__PURE__ */ s(ce, { children: [
128
- g && /* @__PURE__ */ t(se, { children: /* @__PURE__ */ t(
129
- ne,
131
+ ] }) : null, [G, g]);
132
+ return k(() => {
133
+ !d && !L && A();
134
+ }, [L, A, d]), k(() => {
135
+ d && l && (P.current = Date.now(), C(U.CIRCLE_GAME_LOAD_STARTED, {
136
+ projectType: e,
137
+ projectId: c.projectId,
138
+ variant: c.variant,
139
+ matchmakingId: l
140
+ }));
141
+ }, [
142
+ d,
143
+ l,
144
+ c.projectId,
145
+ c.variant,
146
+ e,
147
+ C
148
+ ]), /* @__PURE__ */ u(de, { children: [
149
+ /* @__PURE__ */ t(I, { height: 16 }),
150
+ /* @__PURE__ */ t(f, { $renderAs: "ah3-bold", $color: "WHITE_T_87", $align: "center", $marginBottom: 16, children: N }),
151
+ /* @__PURE__ */ u(ue, { children: [
152
+ L && /* @__PURE__ */ t(pe, { children: /* @__PURE__ */ t(
153
+ me,
130
154
  {
131
155
  assetUrl: w,
132
156
  assetUrlType: w.endsWith("mp4") ? "video" : "lottie",
133
- descriptionHeader: x,
157
+ descriptionHeader: F,
134
158
  playerType: Z,
135
- isLoading: T,
136
- isGamePlayed: (r && _[r]) ?? !1,
137
- onPlay: q,
138
- custEle: r === e.LESSON ? J() : void 0,
139
- celebrationText: r && _[r] ? "WELL DONE!" : ""
159
+ isLoading: d,
160
+ isGamePlayed: (e && j[e]) ?? !1,
161
+ onPlay: X,
162
+ custEle: e === r.LESSON ? re() : void 0,
163
+ celebrationText: e && j[e] ? "WELL DONE!" : ""
140
164
  }
141
165
  ) }),
142
- f && /* @__PURE__ */ t(
143
- ie,
166
+ l && /* @__PURE__ */ t(
167
+ ce,
144
168
  {
145
- ref: I,
169
+ ref: v,
146
170
  height: "100%",
147
171
  width: "100%",
148
- baseUrl: j,
149
- playerDetails: z,
150
- projectDetails: F,
151
- onGameLoad: B,
152
- onBack: V,
153
- handleInfoMessage: $,
154
- onGamePlayFinish: Y,
172
+ baseUrl: $,
173
+ playerDetails: J,
174
+ projectDetails: c,
175
+ onGameLoad: K,
176
+ onBack: Q,
177
+ handleInfoMessage: x,
178
+ onGamePlayFinish: ee,
155
179
  parentDomain: window.location.origin
156
180
  },
157
- f
181
+ l
158
182
  )
159
183
  ] })
160
184
  ] });
161
185
  });
162
186
  export {
163
- _e as default
187
+ be as default
164
188
  };
165
189
  //# sourceMappingURL=trial-circle-game.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trial-circle-game.js","sources":["../../../../../src/features/trial-session/comps/trial-circle-game/trial-circle-game.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef, useState, type RefObject } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { getTimeStrInFormatHMS } from '../../../../helpers/date-time';\nimport { ProjectType } from '../../../circle-games/games/web-view/enums';\nimport { useWebViewGames } from '../../../circle-games/games/web-view/hooks/use-webview-games';\nimport { WebView } from '../../../circle-games/games/web-view/web-view';\nimport type {\n ILessonWebGameProps,\n IMultiplayerWebGameProps,\n IPlayer,\n IPlayerStats,\n IPuzzleWebGameProps,\n} from '../../../circle-games/games/web-view/web-view-types';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { TrialPageId } from '../../trial-session-constants';\nimport { TrialCircleGameLaunchScreen } from './trial-circle-game-launch-screen/trial-circle-game-launch-screen';\nimport * as Styled from './trial-circle-game-styled';\n\nconst PROJECT_TYPE_MAP: Partial<Record<TrialPageId, Omit<ProjectType, ProjectType.TABLE>>> = {\n [TrialPageId.CIRCLE_GAME]: ProjectType.GAME,\n [TrialPageId.CIRCLE_PUZZLE]: ProjectType.PUZZLE,\n [TrialPageId.CIRCLE_SKILL]: ProjectType.LESSON,\n};\n\nconst TrialCircleGame = memo(function TrialCircleGame() {\n const { slideConfig, trialGameUrl, circleGames, formData, handleInfoMessage, updateSlideConfig } =\n useTrialSessionContext();\n const {\n showCircleGameScreen = true,\n isCircleGamePlayed = false,\n isCirclePuzzleSolved = false,\n isCircleSkillCompleted = false,\n accuracyStr = '',\n totalTimeTaken = 0,\n matchmakingId,\n } = formData || {};\n const webViewRef = useRef<HTMLIFrameElement>(null) as RefObject<HTMLIFrameElement>;\n const { playGame } = useWebViewGames({ webViewRef });\n const [isLoading, setIsLoading] = useState(true);\n\n const { header, id } = slideConfig;\n const projectType = PROJECT_TYPE_MAP[id];\n const { circleConfig, playerDetails } = circleGames;\n const { games, puzzles, lessons } = circleConfig ?? {};\n\n const isPlayed = useMemo(() => {\n const playedStats = {\n [ProjectType.GAME]: isCircleGamePlayed,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved,\n [ProjectType.LESSON]: isCircleSkillCompleted,\n };\n\n return playedStats;\n }, [isCircleGamePlayed, isCirclePuzzleSolved, isCircleSkillCompleted]);\n\n const assetUrl = useMemo(() => {\n const url: Omit<Record<ProjectType, string>, ProjectType.TABLE> = {\n [ProjectType.GAME]: isCircleGamePlayed ? games.game_card : games.tutorial,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved ? puzzles.game_card : puzzles.tutorial,\n [ProjectType.LESSON]: isCircleSkillCompleted ? lessons.game_card : lessons.tutorial,\n };\n\n return projectType\n ? url[projectType as keyof Omit<Record<ProjectType, string>, ProjectType.TABLE>]\n : '';\n }, [\n projectType,\n games.game_card,\n games.tutorial,\n puzzles.game_card,\n puzzles.tutorial,\n lessons.game_card,\n lessons.tutorial,\n isCircleGamePlayed,\n isCirclePuzzleSolved,\n isCircleSkillCompleted,\n ]);\n\n const descriptionHeader = useMemo(() => {\n if (projectType === ProjectType.PUZZLE && isCirclePuzzleSolved) {\n return \"You've solved it!\";\n }\n\n return '';\n }, [projectType, isCirclePuzzleSolved]);\n\n const { circle_username, userId, grade, user_avatar, playerType } = playerDetails ?? {};\n\n const playerData: IPlayer = {\n id: userId,\n username: circle_username,\n grade: grade,\n avatar: user_avatar,\n playerType,\n };\n\n const projectDetails = useMemo(() => {\n const commonConfig = {\n joinByRoomId: matchmakingId,\n enableCloseButton: false,\n enablePlayerTurnIndicators: true,\n enableSync: true,\n };\n\n if (projectType === ProjectType.GAME) {\n return {\n ...commonConfig,\n projectId: games.project_id,\n variant: games.variant,\n projectType: ProjectType.GAME,\n } as IMultiplayerWebGameProps;\n }\n\n if (projectType === ProjectType.PUZZLE) {\n return {\n ...commonConfig,\n projectId: puzzles.project_id,\n variant: puzzles.variant,\n question: puzzles.question,\n askHintPermission: false,\n projectType: ProjectType.PUZZLE,\n } as IPuzzleWebGameProps;\n }\n\n return {\n ...commonConfig,\n projectId: lessons.project_id,\n variant: lessons.variant,\n miniGameIdentifier: lessons.mini_game_identifier,\n sessionId: lessons.session_id,\n targetQuestions: lessons.target_questions,\n projectType: ProjectType.LESSON,\n } as ILessonWebGameProps;\n\n // return commonConfig;\n }, [games, puzzles, lessons, projectType, matchmakingId]);\n\n const onGameLoad = useCallback(() => {\n setIsLoading(false);\n }, []);\n\n const handleBack = useCallback(() => {\n setIsLoading(true);\n if (\n projectType === ProjectType.GAME ||\n projectType === ProjectType.PUZZLE ||\n projectType === ProjectType.LESSON\n ) {\n updateSlideConfig({ showCircleGameScreen: true, matchmakingId: uuidv4() });\n }\n }, [projectType, updateSlideConfig]);\n\n const onPlay = useCallback(() => {\n updateSlideConfig({ showCircleGameScreen: false, accuracyStr: '', totalTimeTaken: 0 });\n }, [updateSlideConfig]);\n\n const handleGameFinish = useCallback(\n (playerStats: IPlayerStats) => {\n setIsLoading(true);\n if (projectType === ProjectType.LESSON) {\n updateSlideConfig({\n accuracyStr: playerStats.value,\n totalTimeTaken: playerStats.timeSpent,\n isCircleSkillCompleted: true,\n showCircleGameScreen: true,\n matchmakingId: uuidv4(),\n });\n } else if (projectType === ProjectType.GAME) {\n updateSlideConfig({\n isCircleGamePlayed: true,\n showCircleGameScreen: true,\n matchmakingId: uuidv4(),\n });\n } else if (projectType === ProjectType.PUZZLE) {\n updateSlideConfig({\n isCirclePuzzleSolved: true,\n showCircleGameScreen: true,\n matchmakingId: uuidv4(),\n });\n }\n },\n [updateSlideConfig, projectType],\n );\n\n const getCustEle = useCallback(() => {\n if (accuracyStr && totalTimeTaken) {\n return (\n <>\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Finished in\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {getTimeStrInFormatHMS(totalTimeTaken)}\n </Text>\n </FlexView>\n <Separator height={20} />\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Accuracy:\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {accuracyStr}\n </Text>\n </FlexView>\n </>\n );\n }\n\n return null;\n }, [accuracyStr, totalTimeTaken]);\n\n useEffect(() => {\n if (!isLoading && !showCircleGameScreen) {\n playGame();\n }\n }, [showCircleGameScreen, playGame, isLoading]);\n\n return (\n <Styled.GameContainer>\n <Separator height={16} />\n <Text $renderAs=\"ah3-bold\" $color=\"WHITE_T_87\" $align=\"center\" $marginBottom={16}>\n {header}\n </Text>\n <Styled.GameWrapper>\n {showCircleGameScreen && (\n <Styled.GameLaunchOverlay>\n <TrialCircleGameLaunchScreen\n assetUrl={assetUrl}\n assetUrlType={assetUrl.endsWith('mp4') ? 'video' : 'lottie'}\n descriptionHeader={descriptionHeader}\n playerType={playerType}\n isLoading={isLoading}\n isGamePlayed={\n (projectType &&\n isPlayed[\n projectType as keyof Omit<Record<ProjectType, string>, ProjectType.TABLE>\n ]) ??\n false\n }\n onPlay={onPlay}\n custEle={projectType === ProjectType.LESSON ? getCustEle() : undefined}\n celebrationText={\n projectType &&\n isPlayed[projectType as keyof Omit<Record<ProjectType, string>, ProjectType.TABLE>]\n ? 'WELL DONE!'\n : ''\n }\n />\n </Styled.GameLaunchOverlay>\n )}\n {matchmakingId && (\n <WebView\n key={matchmakingId}\n ref={webViewRef}\n height=\"100%\"\n width=\"100%\"\n baseUrl={trialGameUrl}\n playerDetails={playerData}\n projectDetails={projectDetails}\n onGameLoad={onGameLoad}\n onBack={handleBack}\n handleInfoMessage={handleInfoMessage}\n onGamePlayFinish={handleGameFinish}\n parentDomain={window.location.origin}\n />\n )}\n </Styled.GameWrapper>\n </Styled.GameContainer>\n );\n});\n\nexport default TrialCircleGame;\n"],"names":["PROJECT_TYPE_MAP","TrialPageId","ProjectType","TrialCircleGame","memo","slideConfig","trialGameUrl","circleGames","formData","handleInfoMessage","updateSlideConfig","useTrialSessionContext","showCircleGameScreen","isCircleGamePlayed","isCirclePuzzleSolved","isCircleSkillCompleted","accuracyStr","totalTimeTaken","matchmakingId","webViewRef","useRef","playGame","useWebViewGames","isLoading","setIsLoading","useState","header","id","projectType","circleConfig","playerDetails","games","puzzles","lessons","isPlayed","useMemo","assetUrl","url","descriptionHeader","circle_username","userId","grade","user_avatar","playerType","playerData","projectDetails","commonConfig","onGameLoad","useCallback","handleBack","uuidv4","onPlay","handleGameFinish","playerStats","getCustEle","jsxs","Fragment","FlexView","jsx","Text","Separator","getTimeStrInFormatHMS","useEffect","Styled.GameContainer","Styled.GameWrapper","Styled.GameLaunchOverlay","TrialCircleGameLaunchScreen","WebView"],"mappings":"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"}
1
+ {"version":3,"file":"trial-circle-game.js","sources":["../../../../../src/features/trial-session/comps/trial-circle-game/trial-circle-game.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef, useState, type RefObject } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { getTimeStrInFormatHMS } from '../../../../helpers/date-time';\nimport { ProjectType } from '../../../circle-games/games/web-view/enums';\nimport { useWebViewGames } from '../../../circle-games/games/web-view/hooks/use-webview-games';\nimport { WebView } from '../../../circle-games/games/web-view/web-view';\nimport type {\n ILessonWebGameProps,\n IMultiplayerWebGameProps,\n IPlayer,\n IPlayerStats,\n IPuzzleWebGameProps,\n} from '../../../circle-games/games/web-view/web-view-types';\nimport { useUIContext } from '../../../ui/context/context';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { TrialPageId } from '../../trial-session-constants';\nimport { TRIAL_CIRCLE_GAME_ANALYTICS_EVENTS } from './trial-circle-game-analytics-events';\nimport { TrialCircleGameLaunchScreen } from './trial-circle-game-launch-screen/trial-circle-game-launch-screen';\nimport * as Styled from './trial-circle-game-styled';\n\nconst PROJECT_TYPE_MAP: Partial<Record<TrialPageId, Omit<ProjectType, ProjectType.TABLE>>> = {\n [TrialPageId.CIRCLE_GAME]: ProjectType.GAME,\n [TrialPageId.CIRCLE_PUZZLE]: ProjectType.PUZZLE,\n [TrialPageId.CIRCLE_SKILL]: ProjectType.LESSON,\n};\n\nconst TrialCircleGame = memo(function TrialCircleGame() {\n const { slideConfig, trialGameUrl, circleGames, formData, handleInfoMessage, updateSlideConfig } =\n useTrialSessionContext();\n const {\n showCircleGameScreen = true,\n isCircleGamePlayed = false,\n isCirclePuzzleSolved = false,\n isCircleSkillCompleted = false,\n accuracyStr = '',\n totalTimeTaken = 0,\n matchmakingId,\n } = formData || {};\n const webViewRef = useRef<HTMLIFrameElement>(null) as RefObject<HTMLIFrameElement>;\n const { playGame } = useWebViewGames({ webViewRef });\n const { onEvent: trackEvent } = useUIContext();\n const [isLoading, setIsLoading] = useState(true);\n const loadStartTimeRef = useRef<number>(0);\n\n const { header, id } = slideConfig;\n const projectType = PROJECT_TYPE_MAP[id];\n const { circleConfig, playerDetails } = circleGames;\n const { games, puzzles, lessons } = circleConfig ?? {};\n\n const isPlayed = useMemo(() => {\n const playedStats = {\n [ProjectType.GAME]: isCircleGamePlayed,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved,\n [ProjectType.LESSON]: isCircleSkillCompleted,\n };\n\n return playedStats;\n }, [isCircleGamePlayed, isCirclePuzzleSolved, isCircleSkillCompleted]);\n\n const assetUrl = useMemo(() => {\n const url: Omit<Record<ProjectType, string>, ProjectType.TABLE> = {\n [ProjectType.GAME]: isCircleGamePlayed ? games.game_card : games.tutorial,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved ? puzzles.game_card : puzzles.tutorial,\n [ProjectType.LESSON]: isCircleSkillCompleted ? lessons.game_card : lessons.tutorial,\n };\n\n return projectType\n ? url[projectType as keyof Omit<Record<ProjectType, string>, ProjectType.TABLE>]\n : '';\n }, [\n projectType,\n games.game_card,\n games.tutorial,\n puzzles.game_card,\n puzzles.tutorial,\n lessons.game_card,\n lessons.tutorial,\n isCircleGamePlayed,\n isCirclePuzzleSolved,\n isCircleSkillCompleted,\n ]);\n\n const descriptionHeader = useMemo(() => {\n if (projectType === ProjectType.PUZZLE && isCirclePuzzleSolved) {\n return \"You've solved it!\";\n }\n\n return '';\n }, [projectType, isCirclePuzzleSolved]);\n\n const { circle_username, userId, grade, user_avatar, playerType } = playerDetails ?? {};\n\n const playerData: IPlayer = {\n id: userId,\n username: circle_username,\n grade: grade,\n avatar: user_avatar,\n playerType,\n };\n\n const projectDetails = useMemo(() => {\n const commonConfig = {\n joinByRoomId: matchmakingId,\n enableCloseButton: false,\n enablePlayerTurnIndicators: true,\n enableSync: true,\n };\n\n if (projectType === ProjectType.GAME) {\n return {\n ...commonConfig,\n projectId: games.project_id,\n variant: games.variant,\n projectType: ProjectType.GAME,\n } as IMultiplayerWebGameProps;\n }\n\n if (projectType === ProjectType.PUZZLE) {\n return {\n ...commonConfig,\n projectId: puzzles.project_id,\n variant: puzzles.variant,\n question: puzzles.question,\n askHintPermission: false,\n projectType: ProjectType.PUZZLE,\n } as IPuzzleWebGameProps;\n }\n\n return {\n ...commonConfig,\n projectId: lessons.project_id,\n variant: lessons.variant,\n miniGameIdentifier: lessons.mini_game_identifier,\n sessionId: lessons.session_id,\n targetQuestions: lessons.target_questions,\n projectType: ProjectType.LESSON,\n } as ILessonWebGameProps;\n\n // return commonConfig;\n }, [games, puzzles, lessons, projectType, matchmakingId]);\n\n const onGameLoad = useCallback(() => {\n setIsLoading(false);\n\n if (projectType) {\n const loadTime = Date.now() - loadStartTimeRef.current;\n\n trackEvent(TRIAL_CIRCLE_GAME_ANALYTICS_EVENTS.CIRCLE_GAME_LOAD_SUCCESS, {\n projectType,\n projectId: projectDetails.projectId,\n variant: projectDetails.variant,\n loadTime,\n });\n }\n }, [projectType, projectDetails, trackEvent]);\n\n const handleBack = useCallback(() => {\n setIsLoading(true);\n if (\n projectType === ProjectType.GAME ||\n projectType === ProjectType.PUZZLE ||\n projectType === ProjectType.LESSON\n ) {\n updateSlideConfig({ showCircleGameScreen: true, matchmakingId: uuidv4() });\n }\n }, [projectType, updateSlideConfig]);\n\n const onPlay = useCallback(() => {\n updateSlideConfig({ showCircleGameScreen: false, accuracyStr: '', totalTimeTaken: 0 });\n }, [updateSlideConfig]);\n\n const handleGameFinish = useCallback(\n (playerStats: IPlayerStats) => {\n setIsLoading(true);\n if (projectType === ProjectType.LESSON) {\n updateSlideConfig({\n accuracyStr: playerStats.value,\n totalTimeTaken: playerStats.timeSpent,\n isCircleSkillCompleted: true,\n showCircleGameScreen: true,\n matchmakingId: uuidv4(),\n });\n } else if (projectType === ProjectType.GAME) {\n updateSlideConfig({\n isCircleGamePlayed: true,\n showCircleGameScreen: true,\n matchmakingId: uuidv4(),\n });\n } else if (projectType === ProjectType.PUZZLE) {\n updateSlideConfig({\n isCirclePuzzleSolved: true,\n showCircleGameScreen: true,\n matchmakingId: uuidv4(),\n });\n }\n },\n [updateSlideConfig, projectType],\n );\n\n const getCustEle = useCallback(() => {\n if (accuracyStr && totalTimeTaken) {\n return (\n <>\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Finished in\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {getTimeStrInFormatHMS(totalTimeTaken)}\n </Text>\n </FlexView>\n <Separator height={20} />\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Accuracy:\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {accuracyStr}\n </Text>\n </FlexView>\n </>\n );\n }\n\n return null;\n }, [accuracyStr, totalTimeTaken]);\n\n useEffect(() => {\n if (!isLoading && !showCircleGameScreen) {\n playGame();\n }\n }, [showCircleGameScreen, playGame, isLoading]);\n\n useEffect(() => {\n if (isLoading && matchmakingId) {\n loadStartTimeRef.current = Date.now();\n trackEvent(TRIAL_CIRCLE_GAME_ANALYTICS_EVENTS.CIRCLE_GAME_LOAD_STARTED, {\n projectType,\n projectId: projectDetails.projectId,\n variant: projectDetails.variant,\n matchmakingId,\n });\n }\n }, [\n isLoading,\n matchmakingId,\n projectDetails.projectId,\n projectDetails.variant,\n projectType,\n trackEvent,\n ]);\n\n return (\n <Styled.GameContainer>\n <Separator height={16} />\n <Text $renderAs=\"ah3-bold\" $color=\"WHITE_T_87\" $align=\"center\" $marginBottom={16}>\n {header}\n </Text>\n <Styled.GameWrapper>\n {showCircleGameScreen && (\n <Styled.GameLaunchOverlay>\n <TrialCircleGameLaunchScreen\n assetUrl={assetUrl}\n assetUrlType={assetUrl.endsWith('mp4') ? 'video' : 'lottie'}\n descriptionHeader={descriptionHeader}\n playerType={playerType}\n isLoading={isLoading}\n isGamePlayed={\n (projectType &&\n isPlayed[\n projectType as keyof Omit<Record<ProjectType, string>, ProjectType.TABLE>\n ]) ??\n false\n }\n onPlay={onPlay}\n custEle={projectType === ProjectType.LESSON ? getCustEle() : undefined}\n celebrationText={\n projectType &&\n isPlayed[projectType as keyof Omit<Record<ProjectType, string>, ProjectType.TABLE>]\n ? 'WELL DONE!'\n : ''\n }\n />\n </Styled.GameLaunchOverlay>\n )}\n {matchmakingId && (\n <WebView\n key={matchmakingId}\n ref={webViewRef}\n height=\"100%\"\n width=\"100%\"\n baseUrl={trialGameUrl}\n playerDetails={playerData}\n projectDetails={projectDetails}\n onGameLoad={onGameLoad}\n onBack={handleBack}\n handleInfoMessage={handleInfoMessage}\n onGamePlayFinish={handleGameFinish}\n parentDomain={window.location.origin}\n />\n )}\n </Styled.GameWrapper>\n </Styled.GameContainer>\n );\n});\n\nexport default TrialCircleGame;\n"],"names":["PROJECT_TYPE_MAP","TrialPageId","ProjectType","TrialCircleGame","memo","slideConfig","trialGameUrl","circleGames","formData","handleInfoMessage","updateSlideConfig","useTrialSessionContext","showCircleGameScreen","isCircleGamePlayed","isCirclePuzzleSolved","isCircleSkillCompleted","accuracyStr","totalTimeTaken","matchmakingId","webViewRef","useRef","playGame","useWebViewGames","trackEvent","useUIContext","isLoading","setIsLoading","useState","loadStartTimeRef","header","id","projectType","circleConfig","playerDetails","games","puzzles","lessons","isPlayed","useMemo","assetUrl","url","descriptionHeader","circle_username","userId","grade","user_avatar","playerType","playerData","projectDetails","commonConfig","onGameLoad","useCallback","loadTime","TRIAL_CIRCLE_GAME_ANALYTICS_EVENTS","handleBack","uuidv4","onPlay","handleGameFinish","playerStats","getCustEle","jsxs","Fragment","FlexView","jsx","Text","Separator","getTimeStrInFormatHMS","useEffect","Styled.GameContainer","Styled.GameWrapper","Styled.GameLaunchOverlay","TrialCircleGameLaunchScreen","WebView"],"mappings":"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"}
@@ -1,66 +1,70 @@
1
- import { useCallback as O, useImperativeHandle as C } from "react";
2
- import M from "../../../hooks/use-audio-player.js";
3
- import { TEACHER_VALIDATION_AUDIO_LIST as k } from "../constants.js";
4
- import { getQuestionMetadata as u, isConceptIntroWidget as H } from "../worksheet-helpers.js";
5
- import { QUESTIONS_RATING as V, QUESTION_TAGS as A } from "../worksheet-types.js";
6
- import { useWorksheetStore as G } from "./use-worksheet-store.js";
7
- const X = (b, { getTimeSpentOnQuestion: N }) => {
8
- const { onResponseChange: Q, onBulkResponsesChange: n, behavior: w, questions: s, setResponses: m } = G((t) => ({
1
+ import { useCallback as O, useImperativeHandle as k } from "react";
2
+ import { useAudioPlayer as H } from "../../../hooks/use-audio-player/use-audio-player.js";
3
+ import { useAutoPlayPermission as V } from "../../../hooks/use-auto-play-permission/use-auto-play-permission.js";
4
+ import { TEACHER_VALIDATION_AUDIO_LIST as G } from "../constants.js";
5
+ import { getQuestionMetadata as u, isConceptIntroWidget as $ } from "../worksheet-helpers.js";
6
+ import { QUESTIONS_RATING as j, QUESTION_TAGS as l } from "../worksheet-types.js";
7
+ import { useWorksheetStore as z } from "./use-worksheet-store.js";
8
+ const B = (b, { getTimeSpentOnQuestion: y }) => {
9
+ const { onResponseChange: Q, onBulkResponsesChange: n, behavior: w, questions: s, setResponses: m } = z((t) => ({
9
10
  onResponseChange: t.onResponseChange,
10
11
  onBulkResponsesChange: t.onBulkResponsesChange,
11
12
  behavior: t.behavior,
12
13
  questions: t.questions,
13
14
  setResponses: t.setResponses
14
- })), { navigationMode: h } = w, g = M(k), y = O(
15
- (t, r, c) => {
16
- g("VALIDATE");
17
- const a = N(t);
15
+ })), { navigationMode: g } = w, { canAutoPlayAudio: C } = V(), M = G.reduce(
16
+ (t, { name: r, url: d }) => (t[r] = d, t),
17
+ {}
18
+ ), h = H(M, C), N = O(
19
+ (t, r, d) => {
20
+ h.play("VALIDATE");
21
+ const a = y(t);
18
22
  m((e) => {
19
- var P, D;
20
- const d = s.findIndex((p) => p.response_id === t), i = s[d], o = {
23
+ var L, D;
24
+ const _ = s.findIndex((p) => p.response_id === t), i = s[_], o = {
21
25
  ...u(s, t),
22
26
  ...e[t],
23
27
  validatedByTeacher: !0,
24
- rating: r ? V[r] : void 0,
28
+ rating: r ? j[r] : void 0,
25
29
  timeSpent: a
26
30
  };
27
- if (h === "ADAPTIVE") {
28
- if ((P = e[t]) != null && P.validatedByTeacher)
31
+ if (g === "ADAPTIVE") {
32
+ if ((L = e[t]) != null && L.validatedByTeacher)
29
33
  return e;
30
- const p = i.item_tags_map[A.TRIAL_TOPIC], I = i.item_tags_map[A.QUESTION_CODE], T = I && I.length < 3 ? `${I}${r}` : "Q", _ = s.findIndex((f, l) => l <= d ? !1 : T !== "Q" ? f.item_tags_map[A.TRIAL_TOPIC] === p && f.item_tags_map[A.QUESTION_CODE] === T : f.item_tags_map[A.TRIAL_TOPIC] !== p), S = {
34
+ const p = i.item_tags_map[l.TRIAL_TOPIC], I = i.item_tags_map[l.QUESTION_CODE], A = I && I.length < 3 ? `${I}${r}` : "Q", c = s.findIndex((f, S) => S <= _ ? !1 : A !== "Q" ? f.item_tags_map[l.TRIAL_TOPIC] === p && f.item_tags_map[l.QUESTION_CODE] === A : f.item_tags_map[l.TRIAL_TOPIC] !== p), T = {
31
35
  [t]: o,
32
36
  ...s.reduce(
33
- (f, l, W) => (W <= d || _ > -1 && W >= _ || (f[l.response_id] = {
34
- ...u(s, l.response_id),
35
- ...e[l.response_id],
37
+ (f, S, W) => (W <= _ || c > -1 && W >= c || (f[S.response_id] = {
38
+ ...u(s, S.response_id),
39
+ ...e[S.response_id],
36
40
  assignStatus: "skipped"
37
41
  }), f),
38
42
  {}
39
43
  )
40
- }, E = (D = s[_]) == null ? void 0 : D.response_id;
44
+ }, E = (D = s[c]) == null ? void 0 : D.response_id;
41
45
  return E ? n == null || n({
42
- ...S,
46
+ ...T,
43
47
  [E]: {
44
48
  ...e[E],
45
49
  ...u(s, E),
46
50
  assignStatus: void 0
47
51
  }
48
- }) : n == null || n(S), {
52
+ }) : n == null || n(T), {
49
53
  ...e,
50
- ...S
54
+ ...T
51
55
  };
52
56
  }
53
- if (c) {
57
+ if (d) {
54
58
  const { item_reference: p } = i, I = {
55
59
  [t]: o,
56
60
  ...s.reduce(
57
- (T, _) => {
58
- var S;
59
- return _.response_id !== i.response_id && _.item_reference === p && !((S = e[_.response_id]) != null && S.validatedByTeacher) && (T[_.response_id] = {
60
- ...u(s, _.response_id),
61
- ...e[_.response_id],
61
+ (A, c) => {
62
+ var T;
63
+ return c.response_id !== i.response_id && c.item_reference === p && !((T = e[c.response_id]) != null && T.validatedByTeacher) && (A[c.response_id] = {
64
+ ...u(s, c.response_id),
65
+ ...e[c.response_id],
62
66
  assignStatus: "skipped"
63
- }), T;
67
+ }), A;
64
68
  },
65
69
  {}
66
70
  )
@@ -73,7 +77,7 @@ const X = (b, { getTimeSpentOnQuestion: N }) => {
73
77
  ...I
74
78
  };
75
79
  }
76
- return h === "CURRENT" && i.item_number === 0 ? n == null || n({
80
+ return g === "CURRENT" && i.item_number === 0 ? n == null || n({
77
81
  ...e,
78
82
  [t]: o
79
83
  }) : Q == null || Q({
@@ -88,24 +92,24 @@ const X = (b, { getTimeSpentOnQuestion: N }) => {
88
92
  });
89
93
  },
90
94
  [
91
- N,
92
- h,
95
+ y,
96
+ g,
93
97
  n,
94
98
  Q,
95
- g,
99
+ h,
96
100
  s,
97
101
  m
98
102
  ]
99
- ), U = O(
103
+ ), P = O(
100
104
  (t) => {
101
105
  m((r) => {
102
- const c = s.filter(
106
+ const d = s.filter(
103
107
  (e) => {
104
- var d;
105
- return t.startsWith("advanced-") ? (d = e.item_type) == null ? void 0 : d.startsWith("advanced-") : e.item_type === t;
108
+ var _;
109
+ return t.startsWith("advanced-") ? (_ = e.item_type) == null ? void 0 : _.startsWith("advanced-") : e.item_type === t;
106
110
  }
107
111
  ), a = {};
108
- return c.length > 0 ? (c.forEach((e) => {
112
+ return d.length > 0 ? (d.forEach((e) => {
109
113
  a[e.response_id] = {
110
114
  ...u(s, e.response_id),
111
115
  ...r[e.response_id],
@@ -118,16 +122,16 @@ const X = (b, { getTimeSpentOnQuestion: N }) => {
118
122
  });
119
123
  },
120
124
  [n, s, m]
121
- ), x = O(
125
+ ), U = O(
122
126
  (t) => {
123
127
  m((r) => {
124
- const c = s.filter(
125
- (d) => {
128
+ const d = s.filter(
129
+ (_) => {
126
130
  var i;
127
- return t.startsWith("advanced-") ? (i = d.item_type) == null ? void 0 : i.startsWith("advanced-") : d.item_type === t;
131
+ return t.startsWith("advanced-") ? (i = _.item_type) == null ? void 0 : i.startsWith("advanced-") : _.item_type === t;
128
132
  }
129
133
  ), a = {}, e = [];
130
- return c.length > 0 ? (c.forEach((i) => {
134
+ return d.length > 0 ? (d.forEach((i) => {
131
135
  const o = r[i.response_id];
132
136
  o != null && o.validatedByTeacher ? e.push(i) : a[i.response_id] = {
133
137
  ...u(s, i.response_id),
@@ -135,7 +139,7 @@ const X = (b, { getTimeSpentOnQuestion: N }) => {
135
139
  assignStatus: "skipped"
136
140
  };
137
141
  }), e.some(
138
- ({ instructor_stimulus: i }) => !(i === "SystemIntro" || H(i))
142
+ ({ instructor_stimulus: i }) => !(i === "SystemIntro" || $(i))
139
143
  ) || e.forEach((i) => {
140
144
  a[i.response_id] = {
141
145
  ...u(s, i.response_id),
@@ -149,15 +153,15 @@ const X = (b, { getTimeSpentOnQuestion: N }) => {
149
153
  });
150
154
  },
151
155
  [n, s, m]
152
- ), L = O(
153
- (t, r, c) => {
156
+ ), x = O(
157
+ (t, r, d) => {
154
158
  const a = r === "SIMULATION" ? "simState" : void 0;
155
159
  a && m((e) => {
156
160
  if (!s.find((o) => o.response_id === t)) return e;
157
161
  const i = {
158
162
  ...u(s, t),
159
163
  ...e[t],
160
- [a]: c
164
+ [a]: d
161
165
  };
162
166
  return {
163
167
  ...e,
@@ -167,18 +171,18 @@ const X = (b, { getTimeSpentOnQuestion: N }) => {
167
171
  },
168
172
  [s, m]
169
173
  );
170
- C(
174
+ k(
171
175
  b,
172
176
  () => ({
173
- validateQuestion: y,
174
- assignOptionalItems: U,
175
- skipOptionalItems: x,
176
- updateMediaState: L
177
+ validateQuestion: N,
178
+ assignOptionalItems: P,
179
+ skipOptionalItems: U,
180
+ updateMediaState: x
177
181
  }),
178
- [U, x, L, y]
182
+ [P, U, x, N]
179
183
  );
180
184
  };
181
185
  export {
182
- X as default
186
+ B as default
183
187
  };
184
188
  //# sourceMappingURL=use-create-imperative-handle.js.map