fix: Move staging banner to top-left to avoid overlap with activity monitor
All checks were successful
Dev Deployment (Zero Downtime) / deploy-dev (push) Successful in 13m7s

- Position banner at top-left instead of bottom-right
- Make banner more compact to reduce visual clutter
- Avoids overlap with ActivityFeed (bottom-right) and ChatWidget (bottom-left)
- Smaller, cleaner design that doesn't interfere with content
This commit is contained in:
2026-01-09 16:04:13 +01:00
parent e8248a6ee1
commit d8001fc2c4

View File

@@ -33,43 +33,40 @@ export function StagingBanner() {
return ( return (
<AnimatePresence> <AnimatePresence>
<motion.div <motion.div
initial={{ scale: 0, opacity: 0, x: 20, y: 20 }} initial={{ scale: 0, opacity: 0, x: -20, y: -20 }}
animate={{ scale: 1, opacity: 1, x: 0, y: 0 }} animate={{ scale: 1, opacity: 1, x: 0, y: 0 }}
exit={{ scale: 0, opacity: 0 }} exit={{ scale: 0, opacity: 0 }}
transition={{ type: "spring", damping: 20, stiffness: 300 }} transition={{ type: "spring", damping: 20, stiffness: 300 }}
className="fixed z-50 max-w-sm" className="fixed z-50 max-w-xs"
style={{ style={{
bottom: '1.5rem', top: '1rem',
right: '1.5rem', left: '1rem',
top: 'auto', bottom: 'auto',
left: 'auto' right: 'auto'
}} }}
> >
<div className="bg-gradient-to-br from-yellow-500 via-orange-500 to-red-500 text-white rounded-xl shadow-2xl border-2 border-white/20 backdrop-blur-sm overflow-hidden"> <div className="bg-gradient-to-br from-yellow-500 via-orange-500 to-red-500 text-white rounded-lg shadow-2xl border-2 border-white/20 backdrop-blur-sm overflow-hidden">
{/* Header */} {/* Compact Header with Close */}
<div className="bg-black/20 px-4 py-2 flex items-center justify-between"> <div className="px-3 py-2 flex items-center justify-between gap-2">
<div className="flex items-center gap-2"> <div className="flex items-center gap-2 flex-1 min-w-0">
<AlertTriangle className="w-4 h-4 animate-pulse" /> <AlertTriangle className="w-4 h-4 animate-pulse flex-shrink-0" />
<span className="font-bold text-xs uppercase tracking-wide"> <span className="font-bold text-xs uppercase tracking-wide truncate">
Test Environment 🧪 Test Environment
</span> </span>
</div> </div>
<button <button
onClick={() => setIsVisible(false)} onClick={() => setIsVisible(false)}
className="p-1 hover:bg-white/20 rounded transition-colors" className="p-1 hover:bg-white/20 rounded transition-colors flex-shrink-0"
aria-label="Close banner" aria-label="Close banner"
> >
<X className="w-3 h-3" /> <X className="w-3 h-3" />
</button> </button>
</div> </div>
{/* Content */} {/* Compact Content */}
<div className="px-4 py-3"> <div className="px-3 pb-2">
<p className="text-sm font-semibold mb-1"> <p className="text-xs text-white/95 leading-tight">
🧪 Development Version Not production-ready. Data may be unstable.
</p>
<p className="text-xs text-white/90 leading-relaxed">
This is a staging environment. Not production-ready. Data may be unstable.
</p> </p>
</div> </div>
</div> </div>