/
githubmirror
/
ydb-embedded-ui
Обзор
Документация
Войти
/
githubmirror
/
ydb-embedded-ui
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/components/StatusIcon/StatusIcon.tsx
55 строк
1 KB
Hellen
feat(Healthcheck): improve colors and refactor (#4216)
10 авг 2026, 15:16
Не верифицирован
10 авг 2026, 15:16
e83fccf
Код
Авторство
О чём код?
import { ArrowsRotateRight, CircleCheck, CircleExclamation, Flame, Ghost, TriangleExclamation, } from '@gravity-ui/icons'; import {Icon} from '@gravity-ui/uikit'; import {EFlag} from '../../types/api/enums'; import {cn} from '../../utils/cn'; import './StatusIcon.scss'; const b = cn('ydb-status-icon'); const icons = { [EFlag.Grey]: Ghost, [EFlag.Green]: CircleCheck, [EFlag.Blue]: ArrowsRotateRight, [EFlag.Yellow]: TriangleExclamation, [EFlag.Orange]: Flame, [EFlag.Red]: CircleExclamation, }; export type StatusIconMode = 'color' | 'icons'; export type StatusIconSize = 'xs' | 's' | 'm' | 'l'; interface StatusIconProps { status?: EFlag; size?: StatusIconSize; mode?: StatusIconMode; className?: string; } export function StatusIcon({ status = EFlag.Grey, size = 's', mode = 'color', className, }: StatusIconProps) { const modifiers = {state: status.toLowerCase(), size}; if (mode === 'icons' && status in icons) { return ( <Icon className={b('status-icon', modifiers, className)} data={icons[status as keyof typeof icons]} /> ); } return <div className={b('status-color', modifiers, className)} />; }