Der Kopf traegt jetzt Name, Zustand und Kennzahlen: Der Status sitzt als farbiges Dropdown direkt hinter dem Namen und nennt darunter, wann und von wem er gemeldet wurde. Laenge und Hoehenmeter stehen mit Icons daneben. Karte und Hoehenprofil links, Marker, Kommentare und Versionen rechts daneben in einer Spalte. Die Reiter entfallen - alles ist gleichzeitig zu sehen. Versionen sind Archiv und deshalb eingeklappt; der GPX-Upload sitzt dort statt im Kopf. Marker lassen sich jetzt auch loeschen und auch ueber das Hoehenprofil setzen: Die angeklickte Stelle wird auf dieselbe Linie zurueckgerechnet, die ein Klick auf der Karte trifft. Die Flag-Icons wurden bisher gespeichert, aber nirgends gezeichnet. Sie erscheinen jetzt in der Karte, im Popup, in der Markerliste und in der Verwaltung. Erlaubt ist jeder Name von lucide.dev - moeglich macht das ein Glob ueber die Icon-Dateien, der jedes Icon zu einem eigenen, erst bei Bedarf geladenen Chunk macht. Die Liste im Dialog sind nur Vorschlaege. Die Karte kommt von CARTO statt von OSM direkt: zurueckhaltend gezeichnet, sodass die Trail-Linie darueber steht, und mit einer echten dunklen Fassung. Das vorherige Abdunkeln der OSM-Kacheln ergab nur ein dunkleres Bild, keine dunkle Karte. In der Kachelvorschau der Liste sind Zoom, Massstab und Quellenangabe abgeschaltet - dort ist die Karte Bild, nicht Werkzeug; die grosse Karte traegt die Angabe weiterhin. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014dh9W1i7aLSdPYJzQPid5o
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
/**
|
|
* Zustände eines Trails samt Farbe und Beschriftung.
|
|
*
|
|
* An einer Stelle, weil dieselben Farben in der Kartenlinie, im Abzeichen und
|
|
* im Auswahlmenü auftauchen — liefen sie auseinander, hieße Grün auf der Karte
|
|
* etwas anderes als Grün daneben.
|
|
*/
|
|
export type TrailStatusValue = 'offen' | 'eingeschraenkt' | 'gesperrt'
|
|
|
|
export type TrailStatusInfo = {
|
|
value: TrailStatusValue
|
|
label: string
|
|
/** Als CSS-Farbe, auch für MapLibre-Paint-Eigenschaften verwendbar. */
|
|
color: string
|
|
/** Kurzer Hinweis, was der Zustand bedeutet. */
|
|
hint: string
|
|
}
|
|
|
|
export const TRAIL_STATUS: TrailStatusInfo[] = [
|
|
{ value: 'offen', label: 'Offen', color: '#16a34a', hint: 'befahrbar' },
|
|
{
|
|
value: 'eingeschraenkt',
|
|
label: 'Eingeschränkt',
|
|
color: '#ca8a04',
|
|
hint: 'befahrbar, aber mit Hindernissen',
|
|
},
|
|
{ value: 'gesperrt', label: 'Gesperrt', color: '#dc2626', hint: 'nicht befahren' },
|
|
]
|
|
|
|
const BY_VALUE = new Map(TRAIL_STATUS.map((s) => [s.value, s]))
|
|
|
|
export function trailStatus(value: string | undefined): TrailStatusInfo {
|
|
return (value && BY_VALUE.get(value as TrailStatusValue)) || TRAIL_STATUS[0]
|
|
}
|
|
|
|
export function trailStatusColor(value: string | undefined): string {
|
|
return trailStatus(value).color
|
|
}
|