import { AlertCircle, CloudOff, Info, TriangleAlert, X } from "lucide-react"; import { useState } from "react"; import cn from "~/utils/cn"; type Variant = "info" | "warning" | "error" | "critical"; interface StatusBannerProps { variant: Variant; title: string; children: React.ReactNode; dismissable?: boolean; className?: string; } const icons: Record = { info: , warning: , error: , critical: , }; export default function StatusBanner({ variant, title, children, dismissable = true, className, }: StatusBannerProps) { const [dismissed, setDismissed] = useState(false); if (dismissed) { return null; } return (
{icons[variant]}

{title}

{children}
{dismissable && ( )}
); }