22 lines
1.0 KiB
TypeScript
22 lines
1.0 KiB
TypeScript
export type StatusDotTone = 'green' | 'amber' | 'red' | 'blue' | 'neutral';
|
|
|
|
export function statusDotToneClass(tone: StatusDotTone) {
|
|
const tones: Record<StatusDotTone, string> = {
|
|
green: 'bg-emerald-400 shadow-[0_0_0_3px_rgba(52,211,153,0.15)]',
|
|
amber: 'bg-amber-400 shadow-[0_0_0_3px_rgba(251,191,36,0.15)]',
|
|
red: 'bg-rose-400 shadow-[0_0_0_3px_rgba(251,113,133,0.15)]',
|
|
blue: 'bg-sky-400 shadow-[0_0_0_3px_rgba(56,189,248,0.15)]',
|
|
neutral: 'bg-muted-foreground/60 shadow-[0_0_0_3px_rgba(148,163,184,0.12)]'
|
|
};
|
|
|
|
return tones[tone];
|
|
}
|
|
|
|
export function runtimeStatusDotClass(status?: string | null) {
|
|
if (['Running', 'Bound', 'ClusterIP', 'LoadBalancer', 'Normal'].includes(status ?? '')) return statusDotToneClass('green');
|
|
if (['Pending', 'ContainerCreating', 'Warning'].includes(status ?? '')) return statusDotToneClass('amber');
|
|
if (['Error', 'CrashLoopBackOff', 'ImagePullBackOff', 'Failed'].includes(status ?? '')) return statusDotToneClass('red');
|
|
return statusDotToneClass('neutral');
|
|
}
|
|
|