import React from 'react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/index'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/index'; import { Button } from '@/components/ui/index'; import { MoreHorizontal, Trash2 } from 'lucide-react'; interface FirewallRuleInfo { ruleNum: number; action: string; protocol: string; source: string; destination: string; port?: string; enabled: boolean; } interface FirewallRuleListProps { rules: FirewallRuleInfo[]; onRefresh?: () => void; isLoading?: boolean; onEdit?: (rule: FirewallRuleInfo) => void; onDelete?: (rule: FirewallRuleInfo) => void; onEnable?: (rule: FirewallRuleInfo) => void; onDisable?: (rule: FirewallRuleInfo) => void; onMoveUp?: (rule: FirewallRuleInfo) => void; onMoveDown?: (rule: FirewallRuleInfo) => void; } export function FirewallRuleList({ rules, onRefresh, isLoading, onEdit, onDelete, onEnable, onDisable, onMoveUp, onMoveDown, }: FirewallRuleListProps) { const enabledCount = rules.filter((r) => r.enabled).length; const disabledCount = rules.filter((r) => !r.enabled).length; return ( Firewall Rules
{enabledCount} Enabled
{disabledCount} Disabled
# Action Protocol Source Destination Port Status Actions {rules.map((rule) => ( {rule.ruleNum} {rule.action} {rule.protocol} {rule.source} {rule.destination} {rule.port || '-'} {rule.enabled ? 'Enabled' : 'Disabled'}
))}
); }