From a0d2ce1dc7e64e18956a4edf12a9b77457b31ac1 Mon Sep 17 00:00:00 2001 From: itskovacs Date: Sat, 25 Oct 2025 13:48:07 +0200 Subject: [PATCH] :lipstick: toggle dark: if default tile_layer, switch tile_layer to dark --- .../dashboard/dashboard.component.ts | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/src/app/components/dashboard/dashboard.component.ts b/src/src/app/components/dashboard/dashboard.component.ts index 188906d..bcf75dc 100644 --- a/src/src/app/components/dashboard/dashboard.component.ts +++ b/src/src/app/components/dashboard/dashboard.component.ts @@ -864,12 +864,34 @@ export class DashboardComponent implements OnInit, AfterViewInit { } toggleDarkMode() { + if (!this.settings) return; + + let data: Partial = { mode_dark: this.isDarkMode }; + // If user uses default tile, we also update tile_layer to dark/voyager + if ( + !this.settings.mode_dark && + this.settings.tile_layer == 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png' + ) + data.tile_layer = 'https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png'; + else if ( + this.settings.mode_dark && + this.settings.tile_layer == 'https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png' + ) + data.tile_layer = 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png'; + this.apiService - .putSettings({ mode_dark: this.isDarkMode }) + .putSettings(data) .pipe(take(1)) .subscribe({ - next: (_) => { + next: (settings) => { this.utilsService.toggleDarkMode(); + const refreshMap = this.settings?.tile_layer != settings.tile_layer; + this.settings = settings; + if (refreshMap) { + this.map?.remove(); + this.initMap(); + this.updateMarkersAndClusters(); + } }, }); }