diff --git a/website/src/lib/components/Logo.svelte b/website/src/lib/components/Logo.svelte
index eb0205d2..a256453e 100644
--- a/website/src/lib/components/Logo.svelte
+++ b/website/src/lib/components/Logo.svelte
@@ -1,20 +1,22 @@
{#if company === 'gpx.studio'}
{:else if company === 'mapbox'}
diff --git a/website/src/lib/components/Menu.svelte b/website/src/lib/components/Menu.svelte
index ae00b296..966cea99 100644
--- a/website/src/lib/components/Menu.svelte
+++ b/website/src/lib/components/Menu.svelte
@@ -70,9 +70,7 @@
import LayerControlSettings from '$lib/components/layer-control/LayerControlSettings.svelte';
import { allowedPastes, ListFileItem, ListTrackItem } from '$lib/components/file-list/FileList';
import Export from '$lib/components/Export.svelte';
-
- import { resetMode, setMode, systemPrefersMode } from 'mode-watcher';
-
+ import { mode, setMode, systemPrefersMode } from 'mode-watcher';
import { _, locale } from 'svelte-i18n';
import { languages } from '$lib/languages';
import { goto } from '$app/navigation';
@@ -84,7 +82,6 @@
temperatureUnits,
elevationProfile,
verticalFileView,
- mode,
currentBasemap,
previousBasemap,
currentOverlays,
@@ -94,12 +91,6 @@
streetViewSource
} = settings;
- $: if ($mode === 'system') {
- resetMode();
- } else {
- setMode($mode);
- }
-
let undoDisabled = derived(canUndo, ($canUndo) => !$canUndo);
let redoDisabled = derived(canRedo, ($canRedo) => !$canRedo);
@@ -126,6 +117,8 @@
}
let layerSettingsOpen = false;
+
+ $: selectedMode = $mode ?? $systemPrefersMode ?? 'light';
@@ -385,26 +378,22 @@
- {#if $mode === 'system'}
- {#if $systemPrefersMode === 'light'}
-
- {:else if $systemPrefersMode === 'dark'}
-
- {:else}
-
- {/if}
- {:else if $mode === 'light'}
+ {#if selectedMode === 'light'}
- {:else if $mode === 'dark'}
+ {:else}
{/if}
{$_('menu.mode')}
-
+ {
+ setMode(value);
+ }}
+ >
{$_('menu.light')}
{$_('menu.dark')}
- {$_('menu.system')}
diff --git a/website/src/lib/components/ModeSwitch.svelte b/website/src/lib/components/ModeSwitch.svelte
index aa17f50c..854eaa5c 100644
--- a/website/src/lib/components/ModeSwitch.svelte
+++ b/website/src/lib/components/ModeSwitch.svelte
@@ -2,45 +2,30 @@
import * as Popover from '$lib/components/ui/popover';
import { Button } from '$lib/components/ui/button';
import { Moon, Sun } from 'lucide-svelte';
- import { resetMode, setMode, systemPrefersMode } from 'mode-watcher';
- import { settings } from '$lib/db';
+ import { mode, resetMode, setMode, systemPrefersMode } from 'mode-watcher';
import { _ } from 'svelte-i18n';
- const { mode } = settings;
-
- $: if ($mode === 'system') {
- resetMode();
- } else {
- setMode($mode);
- }
-
export let size = '20';
let open = false;
+
+ $: selectedMode = $mode ?? $systemPrefersMode ?? 'light';
- {#if $mode === 'system'}
- {#if $systemPrefersMode === 'light'}
-
- {:else if $systemPrefersMode === 'dark'}
-
- {:else}
-
- {/if}
- {:else if $mode === 'light'}
+ {#if selectedMode === 'light'}
- {:else if $mode === 'dark'}
+ {:else}
{/if}
- {#each ['light', 'dark', 'system'] as m}
+ {#each ['light', 'dark'] as m}
diff --git a/website/src/lib/db.ts b/website/src/lib/db.ts
index a51ba00e..7141368b 100644
--- a/website/src/lib/db.ts
+++ b/website/src/lib/db.ts
@@ -3,7 +3,6 @@ import { GPXFile, GPXStatistics, Track, TrackSegment, Waypoint, TrackPoint, type
import { enableMapSet, enablePatches, applyPatches, type Patch, type WritableDraft, freeze, produceWithPatches } from 'immer';
import { writable, get, derived, type Readable, type Writable } from 'svelte/store';
import { gpxStatistics, initTargetMapBounds, splitAs, updateAllHidden, updateTargetMapBounds } from './stores';
-import { mode } from 'mode-watcher';
import { defaultBasemap, defaultBasemapTree, defaultOverlayTree, defaultOverlays, type CustomLayer, defaultOpacities } from './assets/layers';
import { applyToOrderedItemsFromFile, applyToOrderedSelectedItemsFromFile, selection } from '$lib/components/file-list/Selection';
import { ListFileItem, ListItem, ListTrackItem, ListLevel, ListTrackSegmentItem, ListWaypointItem, ListRootItem } from '$lib/components/file-list/FileList';
@@ -88,13 +87,6 @@ export const settings = {
additionalDatasets: dexieSettingStore('additionalDatasets', []),
elevationFill: dexieSettingStore<'slope' | 'surface' | undefined>('elevationFill', undefined),
verticalFileView: dexieSettingStore('fileView', false),
- mode: dexieSettingStore('mode', (() => {
- let currentMode: string | undefined = get(mode);
- if (currentMode === undefined) {
- currentMode = 'system';
- }
- return currentMode;
- })()),
minimizeRoutingMenu: dexieSettingStore('minimizeRoutingMenu', false),
routing: dexieSettingStore('routing', true),
routingProfile: dexieSettingStore('routingProfile', 'bike'),
diff --git a/website/src/locales/en.json b/website/src/locales/en.json
index 28d64ae9..d31c4f5b 100644
--- a/website/src/locales/en.json
+++ b/website/src/locales/en.json
@@ -45,7 +45,6 @@
"mode": "Mode",
"light": "Light",
"dark": "Dark",
- "system": "System",
"street_view_source": "Street view source",
"mapillary": "Mapillary",
"google": "Google",