Skip to content

Commit 8716926

Browse files
committed
fix audio not loading
1 parent eaabf51 commit 8716926

File tree

3 files changed

+31
-31
lines changed

3 files changed

+31
-31
lines changed

src/components/MainMenu.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ export default function MainMenu() {
9090
setMainTimerBorder(restColor);
9191
}
9292
}
93+
9394
if (enableSounds) {
9495
if (whichInterval === "work" && time == 0) {
9596
if (preferredSound === "audio1") {

src/components/settings/EnableSounds.tsx

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,42 +7,25 @@ import sound1 from "../../assets/sounds/sound1.mp3";
77
import sound2 from "../../assets/sounds/sound2.mp3";
88
import start from "../../assets/sounds/start.mp3";
99
import stop from "../../assets/sounds/stop.mp3";
10-
import { useEffect } from "react";
1110

1211
type ToggleProps = {
1312
preferredLanguage: "en" | "pt" | "fr";
1413
handleToggleSetting: (key: string, setState: (value: boolean) => void, state: boolean) => void;
14+
soundsSettings: { item: string; state: boolean; setState: (value: boolean) => void; text: { en: string; pt: string; fr: string } } | undefined;
1515
};
1616

17-
export default function EnableSounds({ handleToggleSetting, preferredLanguage }: ToggleProps) {
18-
const [enableSounds, setEnableSounds] = useStore((state) => [state.enableSounds, state.setEnableSounds]);
17+
export default function EnableSounds({ handleToggleSetting, preferredLanguage, soundsSettings }: ToggleProps) {
1918
const [preferredSound, setPreferredSound] = useStore((state) => [state.preferredSound, state.setPreferredSound]);
2019
const playSoundsType1 = useAudio(sound1, sound2);
2120
const playSoundsType2 = useAudio(start, stop);
2221

23-
const soundsSettings = {
24-
item: "enableSounds",
25-
state: enableSounds,
26-
setState: setEnableSounds,
27-
text: {
28-
en: "Enable sounds",
29-
pt: "Ativar sons",
30-
fr: "Activer les sons",
31-
},
32-
};
33-
34-
useEffect(() => {
35-
const settings = JSON.parse(localStorage.getItem(soundsSettings.item) || "null");
36-
if (settings !== null) {
37-
setEnableSounds(settings);
38-
}
39-
}, []);
40-
4122
function onValueChange(sound: "audio1" | "audio2") {
4223
localStorage.setItem("audioType", sound);
4324
setPreferredSound(sound);
4425
}
4526

27+
if (!soundsSettings) return null;
28+
4629
return (
4730
<div className="flex">
4831
<Toggle

src/components/settings/SettingsMenu.tsx

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ export default function SettingsMenu() {
2020
const [prepOnEveryRound, setPrepOnEveryRound] = useStore((state) => [state.prepareonEveryRound, state.setPrepareonEveryRound]);
2121
const [enableVibrate, setEnableVibrate] = useStore((state) => [state.enableVibrate, state.setEnableVibrate]);
2222

23+
const [enableSounds, setEnableSounds] = useStore((state) => [state.enableSounds, state.setEnableSounds]);
24+
2325
const settings = [
2426
{
2527
item: "skipLastRest",
@@ -72,6 +74,16 @@ export default function SettingsMenu() {
7274
fr: "Activer la vibration",
7375
},
7476
},
77+
{
78+
item: "enableSounds",
79+
state: enableSounds,
80+
setState: setEnableSounds,
81+
text: {
82+
en: "Enable sounds",
83+
pt: "Ativar sons",
84+
fr: "Activer les sons",
85+
},
86+
},
7587
];
7688

7789
useEffect(() => {
@@ -89,7 +101,6 @@ export default function SettingsMenu() {
89101
setState(newValue);
90102
}
91103

92-
// language useEffect
93104
let supportedLanguages = ["en", "pt", "fr"];
94105

95106
useEffect(() => {
@@ -115,16 +126,21 @@ export default function SettingsMenu() {
115126
<>
116127
{settings.map((item) => {
117128
if (item.item === "enableVibrate" && !isOnMobileDevice) return null;
118-
return (
119-
<Toggle
120-
key={item.item}
121-
text={item.text[preferredLanguage]}
122-
isActive={item.state}
123-
toggleActive={() => handleToggleSetting(item.item, item.setState, item.state)}
124-
/>
125-
);
129+
if (item.item !== "enableSounds")
130+
return (
131+
<Toggle
132+
key={item.item}
133+
text={item.text[preferredLanguage]}
134+
isActive={item.state}
135+
toggleActive={() => handleToggleSetting(item.item, item.setState, item.state)}
136+
/>
137+
);
126138
})}
127-
<EnableSounds handleToggleSetting={handleToggleSetting} preferredLanguage={preferredLanguage} />
139+
<EnableSounds
140+
handleToggleSetting={handleToggleSetting}
141+
preferredLanguage={preferredLanguage}
142+
soundsSettings={settings.find((item) => item.item === "enableSounds")}
143+
/>
128144
<a href="https://www.buymeacoffee.com/macielg1" target="_blank" referrerPolicy="no-referrer" className="mx-auto my-1 inline-block">
129145
<img
130146
src={`https://img.buymeacoffee.com/button-api/?text=${supportText[preferredLanguage]}&emoji=☕&slug=macielg1&button_colour=0091ff&font_colour=000000&font_family=Inter&outline_colour=000000&coffee_colour=FFDD00`}

0 commit comments

Comments
 (0)