Files
tickte-system/src/components/projectTones.js
T

56 lines
1.6 KiB
JavaScript

/* Tonabbildung der Projekt-Bausteine: reine Zuordnung, ohne JSX (Test: tests/unit/projectTones.test.mjs).
Die Töne sind die Namen der Logik aus Badge.jsx: ok, warn, info, danger, muted, plain.
Jede Zuordnung ist eine Map, kein Objekt: sonst liefert ein Schlüssel wie 'constructor' eine Funktion. */
// previewStatus().color (lib/previewView.js)
const PREVIEW_COLOR_TONES = new Map([
['green', 'ok'],
['yellow', 'warn'],
['red', 'danger'],
['grey', 'plain'],
])
// previewState der Services-Antwort (online, building, starting, sleeping, failed, off)
const PREVIEW_STATE_TONES = new Map([
['online', 'ok'],
['building', 'warn'],
['starting', 'warn'],
['sleeping', 'warn'],
['failed', 'danger'],
])
// analyseStatus().color (lib/analyseView.js)
const ANALYSE_COLOR_TONES = new Map([
['green', 'ok'],
['red', 'danger'],
])
// status und provisioningStatus eines Projekts, wie die Farbtabelle STATUS_COLORS in AssignedProjectCard heute.
// 'deployed' ist absichtlich nicht dabei: es blieb dort in der Standardfarbe (grau).
const STATUS_VALUE_TONES = new Map([
['ready', 'ok'],
['live', 'ok'],
['online', 'ok'],
['provisioning', 'warn'],
['pending', 'warn'],
['building', 'info'],
['error', 'danger'],
['failed', 'danger'],
])
export function previewColorTone(color) {
return PREVIEW_COLOR_TONES.get(color) ?? 'plain'
}
export function previewStateTone(state) {
return PREVIEW_STATE_TONES.get(state) ?? 'plain'
}
export function analyseColorTone(color) {
return ANALYSE_COLOR_TONES.get(color) ?? 'muted'
}
export function statusValueTone(value) {
return STATUS_VALUE_TONES.get(String(value ?? '').toLowerCase()) ?? 'muted'
}