apoorvrajdev's picture
feat(frontend): complete Phase 2B frontend-backend integration
a8f12e6
export default function ErrorBanner({ message, onDismiss }) {
if (!message) return null;
return (
<div
role="alert"
className="flex items-start gap-3 rounded-xl border border-red-500/30 bg-red-500/10 px-4 py-3"
>
<svg
viewBox="0 0 24 24"
className="w-5 h-5 text-red-400 shrink-0 mt-0.5"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
>
<circle cx="12" cy="12" r="10" />
<line x1="12" y1="8" x2="12" y2="12" />
<line x1="12" y1="16" x2="12.01" y2="16" />
</svg>
<div className="flex-1 min-w-0">
<p className="text-sm text-red-100 font-medium">Something went wrong</p>
<p className="text-sm text-red-200/80 mt-0.5 break-words">{message}</p>
</div>
{onDismiss && (
<button
type="button"
onClick={onDismiss}
className="text-red-200/60 hover:text-red-100 transition-colors"
aria-label="Dismiss error"
>
<svg
viewBox="0 0 24 24"
className="w-4 h-4"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
>
<line x1="18" y1="6" x2="6" y2="18" />
<line x1="6" y1="6" x2="18" y2="18" />
</svg>
</button>
)}
</div>
);
}