diff --git a/apps/frontend/src/ui/hooks/useSettings.tsx b/apps/frontend/src/ui/hooks/useSettings.tsx index e7fe81ae..d5bf4de4 100644 --- a/apps/frontend/src/ui/hooks/useSettings.tsx +++ b/apps/frontend/src/ui/hooks/useSettings.tsx @@ -38,6 +38,7 @@ export function SettingsProvider(props: ParentProps) { }); }, save: (settings) => { + console.log('saving settings'); bridge.commands.setSettings(settings).then(() => { syncSettings(settings); refetch(); diff --git a/apps/frontend/src/ui/pages/settings/launcher/SettingsAppearance.tsx b/apps/frontend/src/ui/pages/settings/launcher/SettingsAppearance.tsx index cbd28ddf..4d683005 100644 --- a/apps/frontend/src/ui/pages/settings/launcher/SettingsAppearance.tsx +++ b/apps/frontend/src/ui/pages/settings/launcher/SettingsAppearance.tsx @@ -9,7 +9,7 @@ import Sidebar from '~ui/components/Sidebar'; import useSettingsContext from '~ui/hooks/useSettings'; function SettingsAppearance() { - const settings = useSettingsContext(); + const { settings, saveOnLeave } = useSettingsContext(); const [shouldReload, setShouldReload] = createSignal(false); useBeforeLeave((e) => { @@ -20,6 +20,10 @@ function SettingsAppearance() { } }); + saveOnLeave(() => ({ + disable_animations: settings().disable_animations!, + })); + return (

Appearance

@@ -42,9 +46,9 @@ function SettingsAppearance() { icon={} > settings().disable_animations ?? false} onChecked={(value) => { - settings.disable_animations = value; + settings().disable_animations = value; setShouldReload(true); }} /> diff --git a/apps/frontend/src/ui/pages/settings/launcher/SettingsGeneral.tsx b/apps/frontend/src/ui/pages/settings/launcher/SettingsGeneral.tsx index d7bed38d..1d9e68d0 100644 --- a/apps/frontend/src/ui/pages/settings/launcher/SettingsGeneral.tsx +++ b/apps/frontend/src/ui/pages/settings/launcher/SettingsGeneral.tsx @@ -9,7 +9,13 @@ import Button from '~ui/components/base/Button'; import DiscordIcon from '~assets/logos/discord.svg?component-solid'; function SettingsGeneral() { - const settings = useSettingsContext(); + const { settings, saveOnLeave } = useSettingsContext(); + + saveOnLeave(() => ({ + disable_discord: settings().disable_discord!, + hide_close_prompt: settings().hide_close_prompt!, + disable_analytics: settings().disable_analytics!, + })); return ( @@ -22,8 +28,8 @@ function SettingsGeneral() { icon={} > settings.disable_discord = !value} + checked={() => !(settings().disable_discord ?? false)} + onChecked={value => settings().disable_discord = !value} /> @@ -33,8 +39,8 @@ function SettingsGeneral() { icon={} > settings.hide_close_prompt = value} + checked={() => settings().hide_close_prompt ?? true} + onChecked={value => settings().hide_close_prompt = value} /> @@ -44,8 +50,8 @@ function SettingsGeneral() { icon={} > settings.disable_analytics = !value} + checked={() => !(settings().disable_analytics ?? false)} + onChecked={value => settings().disable_analytics = !value} /> @@ -53,15 +59,15 @@ function SettingsGeneral() { } >