import { cn } from '@/lib/utils'; /** * 控制台状态胶囊组件 * 统一展示 enabled/disabled/error/warning/info/incomplete/loading 状态 */ // 支持的状态类型 export type StatusVariant = 'enabled' | 'disabled' | 'error' | 'warning' | 'info' | 'incomplete' | 'loading' | 'success'; interface StatusPillProps { /** 状态类型 */ status: StatusVariant; /** 显示文本,为空则使用状态默认文本 */ label?: string; /** 是否显示状态点 */ showDot?: boolean; /** 额外的 className */ className?: string; } // 状态映射配置:每种状态的颜色和默认文本 const statusConfig: Record = { enabled: { dot: 'bg-console-status-enabled', text: '已启用', bg: 'bg-console-status-enabled-bg text-console-status-enabled', }, disabled: { dot: 'bg-console-status-disabled', text: '已禁用', bg: 'bg-console-status-disabled-bg text-console-status-disabled', }, error: { dot: 'bg-console-status-error', text: '错误', bg: 'bg-console-status-error-bg text-console-status-error', }, warning: { dot: 'bg-console-status-warning', text: '警告', bg: 'bg-console-status-warning-bg text-console-status-warning', }, info: { dot: 'bg-console-status-info', text: '信息', bg: 'bg-console-status-info-bg text-console-status-info', }, incomplete: { dot: 'bg-console-status-warning', text: '不完整', bg: 'bg-console-status-warning-bg text-console-status-warning', }, loading: { dot: 'bg-console-text-muted animate-pulse', text: '加载中', bg: 'bg-muted text-console-text-muted', }, success: { dot: 'bg-console-status-enabled', text: '成功', bg: 'bg-console-status-enabled-bg text-console-status-enabled', }, }; /** * 状态胶囊组件 * 用于控制台中统一展示各种状态 */ export function StatusPill({ status, label, showDot = true, className, }: StatusPillProps) { const config = statusConfig[status] || statusConfig.info; const displayLabel = label || config.text; return ( {showDot && ( ); }