56 lines
1.6 KiB
JavaScript
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'
|
|
}
|