feat(dees-geo-map): Add dark/light theme support for UI and map tiles, subscribe to theme changes and add traffic toggle in navigation
This commit is contained in:
@@ -65,6 +65,10 @@ export interface INavigationControllerCallbacks {
|
||||
end: [number, number],
|
||||
mode: TNavigationMode
|
||||
) => Promise<ITrafficAwareRoute | null>;
|
||||
/** Optional callback when traffic toggle is changed */
|
||||
onTrafficToggle?: (enabled: boolean) => void;
|
||||
/** Optional callback to get current traffic state */
|
||||
getTrafficEnabled?: () => boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -832,6 +836,7 @@ export class NavigationController {
|
||||
private renderPlanningView(extraClass?: string): TemplateResult {
|
||||
const { isLoading, error, startPoint, endPoint } = this.navigationState;
|
||||
const canCalculate = startPoint && endPoint && !isLoading;
|
||||
const trafficEnabled = this.callbacks.getTrafficEnabled?.() ?? false;
|
||||
|
||||
return html`
|
||||
<div class="navigation-panel ${extraClass || ''}">
|
||||
@@ -864,6 +869,22 @@ export class NavigationController {
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="nav-traffic-toggle">
|
||||
<div class="nav-traffic-toggle-label">
|
||||
${renderIcon('traffic')}
|
||||
<span>Traffic-aware routing</span>
|
||||
</div>
|
||||
<button
|
||||
class="nav-traffic-toggle-btn ${trafficEnabled ? 'active' : ''}"
|
||||
@click=${() => this.callbacks.onTrafficToggle?.(!trafficEnabled)}
|
||||
title="${trafficEnabled ? 'Disable traffic' : 'Enable traffic'}"
|
||||
>
|
||||
<span class="toggle-track">
|
||||
<span class="toggle-thumb"></span>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="nav-inputs">
|
||||
${this.renderNavInput('start', 'Start point', this.navStartSearchQuery, this.navStartSearchResults)}
|
||||
${this.renderNavInput('end', 'End point', this.navEndSearchQuery, this.navEndSearchResults)}
|
||||
|
||||
Reference in New Issue
Block a user