This commit is contained in:
nocnico
2025-07-25 01:11:53 +02:00
parent 08c4cfe082
commit 26430c00ea
9 changed files with 249 additions and 104 deletions

View File

@@ -8,6 +8,8 @@ import { editUserAPI, getUserAPI } from "_querys/user";
import { useSession } from "next-auth/react";
import { useAudioStore } from "_store/audioStore";
import toast from "react-hot-toast";
import { useMapStore } from "_store/mapStore";
import { set } from "date-fns";
export const SettingsBtn = () => {
const session = useSession();
@@ -41,6 +43,7 @@ export const SettingsBtn = () => {
});
const { setSettings: setAudioSettings } = useAudioStore((state) => state);
const { setUserSettings: setUserSettings } = useMapStore((state) => state);
useEffect(() => {
if (user) {
@@ -56,8 +59,11 @@ export const SettingsBtn = () => {
radioVolume: user.settingsRadioVolume || 0.8,
autoCloseMapPopup: user.settingsAutoCloseMapPopup || false,
});
setUserSettings({
settingsAutoCloseMapPopup: user.settingsAutoCloseMapPopup || false,
});
}
}, [user, setSettings, setAudioSettings]);
}, [user, setSettings, setAudioSettings, setUserSettings]);
const setSettingsPartial = (newSettings: Partial<typeof settings>) => {
setSettings((prev) => ({
@@ -178,15 +184,19 @@ export const SettingsBtn = () => {
</div>
<div className="flex w-full justify-center">
<div className="divider w-full">
<div>
<legend className="fieldset-legend">Login options</legend>
<label className="label">
<input type="checkbox" defaultChecked className="toggle" />
Remember me
</label>
</div>
</div>
<div className="divider w-full">Disponenten Einstellungen</div>
</div>
<div className="flex w-full items-center gap-2">
<input
type="checkbox"
className="toggle"
checked={settings.autoCloseMapPopup}
onChange={(e) => {
setSettingsPartial({ autoCloseMapPopup: e.target.checked });
}}
/>
Popups automatisch schließen
</div>
<div className="modal-action flex justify-between">
@@ -213,6 +223,7 @@ export const SettingsBtn = () => {
settingsMicDevice: settings.micDeviceId,
settingsMicVolume: settings.micVolume,
settingsRadioVolume: settings.radioVolume,
settingsAutoCloseMapPopup: settings.autoCloseMapPopup,
},
});
setAudioSettings({
@@ -220,6 +231,9 @@ export const SettingsBtn = () => {
micVolume: settings.micVolume,
radioVolume: settings.radioVolume,
});
setUserSettings({
settingsAutoCloseMapPopup: settings.autoCloseMapPopup,
});
modalRef.current?.close();
toast.success("Einstellungen gespeichert");
}}