import React from 'react'; import { Shield, AlertTriangle, X } from 'lucide-react'; interface ProtectionWarningProps { type: 'devtools' | 'screenshot' | 'violation' | 'general'; message?: string; onClose?: () => void; severity?: 'low' | 'medium' | 'high'; autoClose?: boolean; autoCloseDelay?: number; } export const ProtectionWarning: React.FC = ({ type, message, onClose, severity = 'medium', autoClose = false, autoCloseDelay = 5000 }) => { // Auto close functionality React.useEffect(() => { if (autoClose && autoCloseDelay > 0 && onClose) { const timer = setTimeout(() => { onClose(); }, autoCloseDelay); return () => clearTimeout(timer); } }, [autoClose, autoCloseDelay, onClose]); const getWarningConfig = () => { switch (type) { case 'devtools': return { icon: , title: 'Developer Tools Detected', defaultMessage: 'Developer tools access has been detected. This action has been logged for security purposes.', bgColor: 'bg-red-500', textColor: 'text-white' }; case 'screenshot': return { icon: , title: 'Screenshot Attempt Detected', defaultMessage: 'A screenshot attempt has been detected. This gallery is protected from unauthorized copying.', bgColor: 'bg-orange-500', textColor: 'text-white' }; case 'violation': return { icon: , title: 'Protection Violation', defaultMessage: 'An unauthorized action has been detected and blocked.', bgColor: severity === 'high' ? 'bg-red-500' : severity === 'medium' ? 'bg-orange-500' : 'bg-yellow-500', textColor: 'text-white' }; default: return { icon: , title: 'Security Notice', defaultMessage: 'This content is protected. Unauthorized access attempts are monitored.', bgColor: 'bg-blue-500', textColor: 'text-white' }; } }; const config = getWarningConfig(); return (
{config.icon}
{config.title}
{message || config.defaultMessage}
{onClose && ( )}
{autoClose && (
)}
); };