d7fb7b7a7b
Build & Deploy / Build & Push Docker Image (push) Failing after 47s
Build & Deploy / Deploy to VPS (push) Has been skipped
Test / API Unit Tests (push) Failing after 5m4s
Test / Marketplace Unit Tests (push) Failing after 4m55s
Test / Admin Unit Tests (push) Successful in 9m37s
Test / Dashboard Unit Tests (push) Successful in 9m37s
Test / API Integration Tests (push) Successful in 9m54s
30 lines
677 B
TypeScript
30 lines
677 B
TypeScript
import { Icon, type ApprovedIconName } from './Icon';
|
|
import styles from './StatusBadge.module.css';
|
|
|
|
export type StatusTone = 'neutral' | 'info' | 'success' | 'warning' | 'error';
|
|
|
|
const icons: Partial<Record<StatusTone, ApprovedIconName>> = {
|
|
info: 'info',
|
|
success: 'check',
|
|
warning: 'warning',
|
|
error: 'error',
|
|
};
|
|
|
|
export function StatusBadge({
|
|
children,
|
|
tone = 'neutral',
|
|
showIcon = false,
|
|
}: {
|
|
children: string;
|
|
tone?: StatusTone;
|
|
showIcon?: boolean;
|
|
}) {
|
|
const icon = icons[tone];
|
|
return (
|
|
<span className={`${styles.badge} ${styles[tone]}`}>
|
|
{showIcon && icon ? <Icon name={icon} size="sm" /> : null}
|
|
{children}
|
|
</span>
|
|
);
|
|
}
|