'use client'; import { useState, useEffect } from 'react'; import { X, ShieldAlert } from 'lucide-react'; import { useTranslations } from 'next-intl'; const BLOG_POST_URL = 'https://blog.palebluedot.live/2026/03/19/malware-openclaw-skills-security-advisory/'; const STORAGE_KEY = 'security-alert-openclaw-dismissed'; export function SecurityAlertBanner() { const [isVisible, setIsVisible] = useState(false); const t = useTranslations('securityAlert'); useEffect(() => { const dismissed = localStorage.getItem(STORAGE_KEY); if (!dismissed) { setIsVisible(true); } }, []); const handleDismiss = () => { setIsVisible(false); localStorage.setItem(STORAGE_KEY, 'true'); }; if (!isVisible) return null; return (
{t('label')} {t('text')} {t('link')}
); }