@cuemath/leap 2.8.63-akm → 2.8.63-akm-1
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.
@@ -29,17 +29,17 @@ const u = {
|
|
29
29
|
}, d = {}, U = () => {
|
30
30
|
const s = r((e) => {
|
31
31
|
if (!u[e]) {
|
32
|
-
const
|
33
|
-
|
32
|
+
const o = new Audio(m[e]);
|
33
|
+
o.preload = "auto", u[e] = o;
|
34
34
|
}
|
35
35
|
}, []), p = _(/* @__PURE__ */ new Set());
|
36
36
|
R(() => {
|
37
37
|
const e = () => {
|
38
|
-
document.visibilityState === "hidden" ? Object.keys(u).forEach((
|
39
|
-
const l = u[
|
40
|
-
l && !l.paused && (l.pause(), p.current.add(
|
41
|
-
}) : document.visibilityState === "visible" && (p.current.forEach((
|
42
|
-
const l = u[
|
38
|
+
document.visibilityState === "hidden" ? (console.log("Pausing sounds"), Object.keys(u).forEach((o) => {
|
39
|
+
const l = u[o];
|
40
|
+
l && !l.paused && (l.pause(), p.current.add(o));
|
41
|
+
})) : document.visibilityState === "visible" && (p.current.forEach((o) => {
|
42
|
+
const l = u[o];
|
43
43
|
l == null || l.play();
|
44
44
|
}), p.current.clear());
|
45
45
|
};
|
@@ -48,42 +48,42 @@ const u = {
|
|
48
48
|
};
|
49
49
|
}, []);
|
50
50
|
const C = r(() => {
|
51
|
-
var
|
51
|
+
var o;
|
52
52
|
I.forEach((l) => {
|
53
53
|
s(l);
|
54
54
|
});
|
55
55
|
const e = I[a] || n.SWIPE_01;
|
56
|
-
a < I.length - 1 ? a++ : a = 0, (
|
56
|
+
a < I.length - 1 ? a++ : a = 0, (o = u[e]) == null || o.play();
|
57
57
|
}, [s]), S = r(() => {
|
58
|
-
var
|
59
|
-
return s(n.TOGGLE), (
|
58
|
+
var o;
|
59
|
+
return s(n.TOGGLE), (o = u[n.TOGGLE]) == null ? void 0 : o.play();
|
60
60
|
}, [s]), f = r(
|
61
|
-
(e,
|
61
|
+
(e, o = !0, l = !1) => {
|
62
62
|
s(e);
|
63
|
-
const
|
64
|
-
if (!
|
65
|
-
if (
|
66
|
-
|
67
|
-
const c =
|
63
|
+
const t = u[e];
|
64
|
+
if (!t) return;
|
65
|
+
if (t.loop = l, o) {
|
66
|
+
t.volume = 1;
|
67
|
+
const c = t.play();
|
68
68
|
d[e] = c;
|
69
69
|
return;
|
70
70
|
}
|
71
|
-
|
72
|
-
const E =
|
71
|
+
t.volume = 0;
|
72
|
+
const E = t.play();
|
73
73
|
d[e] = E;
|
74
74
|
const i = setInterval(() => {
|
75
|
-
if (!
|
76
|
-
const c =
|
77
|
-
c < 1 ?
|
75
|
+
if (!t) return;
|
76
|
+
const c = t.volume || 0;
|
77
|
+
c < 1 ? t.volume = c + 0.1 : clearInterval(i);
|
78
78
|
}, 100);
|
79
|
-
return
|
79
|
+
return t;
|
80
80
|
},
|
81
81
|
[s]
|
82
|
-
), v = r((e,
|
83
|
-
var
|
82
|
+
), v = r((e, o = !0) => {
|
83
|
+
var t;
|
84
84
|
const l = u[e];
|
85
|
-
d[e] !== void 0 && ((
|
86
|
-
if (
|
85
|
+
d[e] !== void 0 && ((t = d[e]) == null || t.then(() => {
|
86
|
+
if (o) {
|
87
87
|
l == null || l.pause();
|
88
88
|
return;
|
89
89
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-circle-sounds.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.ts"],"sourcesContent":["
|
1
|
+
{"version":3,"file":"use-circle-sounds.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport { CircleSoundKeyMapper, SWIPE_SOUND_ORDER } from './constants';\nimport { CircleSoundKey } from './use-circle-sounds-enums';\n\nlet swipeSoundIndex = 0;\n\nexport const soundMapper: Record<keyof typeof CircleSoundKeyMapper, null | HTMLAudioElement> = {\n [CircleSoundKey.BACKGROUND]: null,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: null,\n [CircleSoundKey.TUTORIAL]: null,\n [CircleSoundKey.SWIPE_01]: null,\n [CircleSoundKey.SWIPE_02]: null,\n [CircleSoundKey.SWIPE_03]: null,\n [CircleSoundKey.SWIPE_04]: null,\n [CircleSoundKey.SWIPE_DOWN]: null,\n [CircleSoundKey.TOGGLE]: null,\n [CircleSoundKey.POINTS_AWARDED]: null,\n [CircleSoundKey.POINTS_ADDED]: null,\n [CircleSoundKey.GAME_CARD_CLICK]: null,\n [CircleSoundKey.CLOCK_IN]: null,\n [CircleSoundKey.CLOCK_OUT]: null,\n [CircleSoundKey.ACCURACY_IN]: null,\n [CircleSoundKey.ACCURACY_OUT]: null,\n [CircleSoundKey.STREAK_IN]: null,\n [CircleSoundKey.STREAK_OUT]: null,\n [CircleSoundKey.ACCURACY_INTRO]: null,\n [CircleSoundKey.ACCURACY_TARGET]: null,\n [CircleSoundKey.TIME_INTRO]: null,\n [CircleSoundKey.TIME_TARGET]: null,\n [CircleSoundKey.METER_FILL]: null,\n};\n\nconst soundInstancePromise: Partial<Record<keyof typeof CircleSoundKeyMapper, Promise<void>>> = {};\n\nexport const useCircleSounds = () => {\n const loadSound = useCallback((key: CircleSoundKey) => {\n if (!soundMapper[key]) {\n const loadedSound = new Audio(CircleSoundKeyMapper[key]);\n\n loadedSound.preload = 'auto';\n soundMapper[key] = loadedSound;\n }\n }, []);\n\n const pausedSoundsRef = useRef<Set<CircleSoundKey>>(new Set());\n\n useEffect(() => {\n const handleVisibilityChange = () => {\n if (document.visibilityState === 'hidden') {\n // Pause all playing sounds and track them\n console.log('Pausing sounds');\n (Object.keys(soundMapper) as CircleSoundKey[]).forEach(key => {\n const sound = soundMapper[key];\n\n if (sound && !sound.paused) {\n sound.pause();\n pausedSoundsRef.current.add(key);\n }\n });\n } else if (document.visibilityState === 'visible') {\n // Resume only previously paused sounds\n pausedSoundsRef.current.forEach(key => {\n const sound = soundMapper[key];\n\n sound?.play();\n });\n pausedSoundsRef.current.clear();\n }\n };\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n };\n }, []);\n\n const playSwipSound = useCallback(() => {\n SWIPE_SOUND_ORDER.forEach(key => {\n loadSound(key);\n });\n\n const key = SWIPE_SOUND_ORDER[swipeSoundIndex] || CircleSoundKey.SWIPE_01;\n\n if (swipeSoundIndex < SWIPE_SOUND_ORDER.length - 1) {\n swipeSoundIndex++;\n } else {\n swipeSoundIndex = 0;\n }\n soundMapper[key]?.play();\n }, [loadSound]);\n\n const playButtonSound = useCallback(() => {\n loadSound(CircleSoundKey.TOGGLE);\n const sound = soundMapper[CircleSoundKey.TOGGLE]?.play();\n\n return sound;\n }, [loadSound]);\n\n const play = useCallback(\n (key: CircleSoundKey, immediately: boolean = true, loop = false) => {\n loadSound(key);\n const soundInstance = soundMapper[key];\n\n if (!soundInstance) return;\n\n soundInstance.loop = loop;\n if (immediately) {\n soundInstance.volume = 1;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n return;\n }\n\n soundInstance.volume = 0;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = soundInstance.volume || 0;\n\n if (vol < 1) {\n soundInstance.volume = vol + 0.1;\n } else {\n clearInterval(intervalId);\n }\n }, 100);\n\n return soundInstance;\n },\n [loadSound],\n );\n\n const stop = useCallback((key: CircleSoundKey, immediately: boolean = true) => {\n const soundInstance = soundMapper[key];\n\n if (soundInstancePromise[key] !== undefined) {\n soundInstancePromise[key]?.then(() => {\n if (immediately) {\n soundInstance?.pause();\n\n return;\n }\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = soundInstance.volume || 0;\n\n if (vol - 0.1 <= 0) {\n soundInstance.volume = 0;\n soundInstance.pause();\n clearInterval(intervalId);\n } else {\n soundInstance.volume = vol - 0.1;\n }\n }, 100);\n });\n }\n }, []);\n\n return { playSwipSound, play, stop, playButtonSound };\n};\n"],"names":["swipeSoundIndex","soundMapper","CircleSoundKey","soundInstancePromise","useCircleSounds","loadSound","useCallback","key","loadedSound","CircleSoundKeyMapper","pausedSoundsRef","useRef","useEffect","handleVisibilityChange","sound","playSwipSound","SWIPE_SOUND_ORDER","_a","playButtonSound","play","immediately","loop","soundInstance","promise","intervalId","vol","stop"],"mappings":"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"}
|