'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}
))}
); }