'use client'; import { useTranslations } from 'next-intl'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import type { WAFIPGroupAutoTestResult } from '@/lib/services/openflare'; interface IPGroupTestDialogProps { open: boolean; loading: boolean; result: WAFIPGroupAutoTestResult | null; onOpenChange: (open: boolean) => void; } export function IPGroupTestDialog({ open, loading, result, onOpenChange, }: IPGroupTestDialogProps) { const t = useTranslations('ipGroups.testDialog'); return ( {t('title')} {t('description')} {loading ? (

{t('testing')}

) : result ? (

{t('summary', { lookback: result.lookback, rules: result.rule_count, matched: result.matched_count, })}

{t('testedAt', { time: new Date(result.tested_at).toLocaleString(), })}

{result.matched_count > 0 ? (
                {result.matched_ips.join('\n')}
              
) : (

{t('noMatch')}

)}
) : (

{t('empty')}

)}
); }