import React, { useState } from 'react'; import { AlertTriangle, Info, Lock, Shield, CheckCircle } from 'lucide-react'; import { SecurityCategorySectionProps, SecuritySetting } from '@/types/security'; import SecuritySetting from './SecuritySetting'; const SecurityCategorySection: React.FC = ({ title, description, settings, onSettingChange, disabled = false, loading = false, error = null, }) => { const [expandedInfo, setExpandedInfo] = useState(null); // Group settings by type for better organization const groupedSettings = settings.reduce((acc, setting) => { const group = setting.type === 'toggle' ? 'main' : 'advanced'; if (!acc[group]) acc[group] = []; acc[group].push(setting); return acc; }, {} as Record); const isSectionEnabled = settings.find(s => s.key === 'enabled')?.value ?? true; return (
{/* Header */}

{title}

{isSectionEnabled ? ( ) : ( )}

{description}

{error && (
)}
{/* Loading State */} {loading && (
)} {/* Settings Grid */} {!loading && (
{/* Main Settings (Toggles) */} {groupedSettings.main && groupedSettings.main.length > 0 && (
{groupedSettings.main.map((setting) => (
onSettingChange(setting.key, value)} disabled={disabled || setting.disabled} error={null} /> {setting.description && (

{setting.description}

{setting.key === 'enabled' && !setting.value && (

Disabling this feature may reduce system security

)}
)}
))}
)} {/* Advanced Settings */} {groupedSettings.advanced && groupedSettings.advanced.length > 0 && (

Advanced Configuration

{groupedSettings.advanced.map((setting) => (
onSettingChange(setting.key, value)} disabled={disabled || setting.disabled || !isSectionEnabled} error={null} /> {setting.description && (

{setting.description}

)}
))}
)}
)} {/* Section Footer Info */} {!loading && !error && (
{isSectionEnabled ? 'Feature is active' : 'Feature is disabled'}
{settings.length} settings {settings.filter(s => s.disabled).length > 0 && ( {settings.filter(s => s.disabled).length} disabled )}
)}
); }; export default SecurityCategorySection;