Sanitized mirror from private repository - 2026-04-18 11:19:59 UTC
This commit is contained in:
28
dashboard/ui/components/status-badge.tsx
Normal file
28
dashboard/ui/components/status-badge.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
const colorStyles: Record<string, { bg: string; shadow: string }> = {
|
||||
green: { bg: "bg-green-500", shadow: "0 0 8px rgba(34, 197, 94, 0.5)" },
|
||||
red: { bg: "bg-red-500", shadow: "0 0 8px rgba(239, 68, 68, 0.5)" },
|
||||
amber: { bg: "bg-amber-500", shadow: "0 0 8px rgba(245, 158, 11, 0.5)" },
|
||||
blue: { bg: "bg-blue-500", shadow: "0 0 8px rgba(59, 130, 246, 0.5)" },
|
||||
purple: { bg: "bg-purple-500", shadow: "0 0 8px rgba(139, 92, 246, 0.5)" },
|
||||
};
|
||||
|
||||
interface StatusBadgeProps {
|
||||
color: "green" | "red" | "amber" | "blue" | "purple";
|
||||
label?: string;
|
||||
}
|
||||
|
||||
export function StatusBadge({ color, label }: StatusBadgeProps) {
|
||||
const style = colorStyles[color] ?? { bg: "bg-gray-500", shadow: "none" };
|
||||
|
||||
return (
|
||||
<span className="inline-flex items-center gap-1.5 text-xs">
|
||||
<span
|
||||
className={cn("w-2 h-2 rounded-full shrink-0", style.bg)}
|
||||
style={{ boxShadow: style.shadow }}
|
||||
/>
|
||||
{label && <span className="text-muted-foreground">{label}</span>}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user