Spaces:
Configuration error
Configuration error
| 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> | |
| ); | |
| } | |