mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-21 06:26:26 +00:00
1f66ef1d32
CARTO stamps an "API KEY REQUIRED" watermark onto every basemap tile fetched without a key since 26.08.2026, and both CartoDB presets plus the built-in fallback are CARTO. The key is free and needs no account, so add it as a setting rather than dropping the provider. carto_api_key sits next to mapbox_access_token: per user in Settings/Map, instance-wide under Admin/User Defaults, encrypted at rest, injected from CARTO_API_KEY on managed instances. Unlike Mapbox it never switches the map provider, since a raster key says nothing about the renderer. The key is appended as ?key= at render time instead of being stored in the template, so a saved URL stays portable and survives a rotation. That is also what reaches the four maps that pinned CARTO and ignored the user's tile setting: atlas, collections, the public trip share and the public journey. The two share pages read it from their token-gated payload, the same way baseCurrency already travels. Also lifts the release notice above page chrome. Its overlay sat at z-index 50, under the Vacay mode toolbar at 61, so the dialog was neither on top nor modal. Adds a six-step layer scale to index.css and moves the three notice shells onto it. Closes #2054 Closes #2052
22 lines
842 B
TypeScript
22 lines
842 B
TypeScript
import { useMemo } from 'react'
|
|
import { useSettingsStore } from '../store/settingsStore'
|
|
import { resolveTileUrl } from '../utils/tileUrl'
|
|
|
|
/**
|
|
* Every logged-in map reads its tile template through here so the CARTO key
|
|
* reaches all of them, including the ones that ignore map_tile_url and pin a
|
|
* basemap of their own (atlas, collections).
|
|
*/
|
|
export function useTileUrl(fallback: string, ignoreUserTemplate = false): string {
|
|
const template = useSettingsStore((s) => s.settings.map_tile_url)
|
|
const cartoKey = useSettingsStore((s) => s.settings.carto_api_key)
|
|
return useMemo(
|
|
() => resolveTileUrl(ignoreUserTemplate ? '' : template, fallback, cartoKey),
|
|
[template, fallback, cartoKey, ignoreUserTemplate]
|
|
)
|
|
}
|
|
|
|
export function useCartoApiKey(): string {
|
|
return useSettingsStore((s) => s.settings.carto_api_key) ?? ''
|
|
}
|