'use client'; import { useEffect, useState } from 'react'; import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Field, FieldGroup, FieldLabel } from '@/components/ui/field'; import { Input } from '@/components/ui/input'; import { Spinner } from '@/components/ui/spinner'; interface CreateRuleDialogProps { open: boolean; pending: boolean; onOpenChange: (open: boolean) => void; onCreate: (name: string) => Promise; } export function CreateRuleDialog({ open, pending, onOpenChange, onCreate, }: CreateRuleDialogProps) { const [name, setName] = useState(''); useEffect(() => { if (!open) setName(''); }, [open]); const trimmedName = name.trim(); return (
{ event.preventDefault(); if (!trimmedName || pending) return; await onCreate(trimmedName); }} > 新建 WAF 规则 创建后将进入编排页面,通过处理单元配置规则执行流程。 规则名称 setName(event.target.value)} placeholder='例如:入口防护' autoComplete='off' autoFocus />
); }