'use client'; import { Globe2, MoreHorizontal, Pencil, ShieldCheck, Trash2, } from 'lucide-react'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; import type { WAFRule } from '@/lib/services/openflare'; import { formatDateTime } from '@/lib/utils'; interface RuleGroupsTableProps { groups: WAFRule[]; onEdit: (group: WAFRule) => void; onDelete: (group: WAFRule) => void; } export function RuleGroupsTable({ groups, onEdit, onDelete, }: RuleGroupsTableProps) { return ( 名称 类型 状态 节点数 应用范围 更新时间 操作 {groups.map((group) => (
{group.is_global ? ( ) : ( )} {group.name}
{group.is_global ? '全局' : '自定义'} {group.enabled ? '启用' : '停用'} {group.graph.nodes.length} {group.is_global ? '全部网站' : `${group.applied_site_count} 个网站`} {group.updated_at ? formatDateTime(group.updated_at) : '—'} onEdit(group)}> 编排 {!group.is_global ? ( <> onDelete(group)} > 删除 ) : null}
))}
); }