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 {StatusColor} from '../StatusColor/StatusColor'; 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 ( ); } return ; }