import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Shield, Lock, FileText, Settings, Activity, RefreshCw } from 'lucide-react'; import { IpAccessLogs } from '../components/security/IpAccessLogs'; import { BlacklistManager } from '../components/security/BlacklistManager'; import { WhitelistManager } from '../components/security/WhitelistManager'; import { SecurityConfig } from '../components/security/SecurityConfig'; import { IpStatistics } from '../components/security/IpStatistics'; const Security: React.FC = () => { const { t } = useTranslation(); const [activeTab, setActiveTab] = useState<'logs' | 'stats' | 'blacklist' | 'whitelist' | 'config'>('logs'); const [refreshKey, setRefreshKey] = useState(0); const handleRefresh = () => { setRefreshKey(prev => prev + 1); }; const renderContent = () => { switch (activeTab) { case 'logs': return ; case 'stats': return ; case 'blacklist': return ; case 'whitelist': return ; case 'config': return ; default: return ; } }; const tabs = [ { id: 'logs', label: t('security.tab_logs'), icon: FileText }, { id: 'stats', label: t('security.tab_stats'), icon: Activity }, { id: 'blacklist', label: t('security.tab_blacklist'), icon: Shield }, { id: 'whitelist', label: t('security.tab_whitelist'), icon: Lock }, { id: 'config', label: t('security.tab_config'), icon: Settings }, ]; return (

{t('security.title')}

{activeTab !== 'config' && ( )}
{tabs.map((tab) => ( ))}
{/* Content is rendered here, often components handle their own padding/layout */}
{renderContent()}
); }; export default Security;