refactor: LdapConfigPage 删除确认弹框统一使用 ConfirmDialog 公共组件

- 移除 LdapConfigPage 自定义 ModalOverlay 确认弹框
- 替换为 ConfirmDialog(variant=danger) 保持风格统一
- 清理未使用的 AlertTriangle import
- 全站确认弹框现已全部统一使用 ConfirmDialog 组件
This commit is contained in:
logan committed 2026-05-31 22:58:10 +08:00
1 parent bef2f98f28
commit dce6b8cc28
1 file changed
+11 -26
+11 -26
View File
@@ -2,11 +2,12 @@ import { useState, useEffect, useCallback } from 'react';
import api from '@/api/request';
import { FormDialog } from '@/components/FormDialog';
import { ModalOverlay } from '@/components/ModalOverlay';
import { ConfirmDialog } from '@/components/ConfirmDialog';
import { toast } from '@/hooks/useToast';
import {
Save, ChevronRight, ChevronDown, RefreshCw,
CheckCircle, XCircle, Trash2, KeyRound, FolderOpen, Users,
Shield, AlertTriangle, Import, UserPlus,
Shield, Import, UserPlus,
} from 'lucide-react';
/* ── types ── */
@@ -845,31 +846,15 @@ export default function LdapConfigPage() {
)}
{/* ── 删除确认弹框 ── */}
{showDeleteConfirm && (
<ModalOverlay open={true} onClose={() => setShowDeleteConfirm(false)} width="max-w-sm">
<div className="w-full bg-[var(--dg-bg-secondary)] border border-[var(--dg-border)] rounded-xl p-5 shadow-xl">
<div className="flex items-center justify-between mb-4">
<div className="flex items-center gap-2">
<AlertTriangle className="w-4 h-4 text-red-400" />
<h3 className="text-sm font-semibold text-[var(--dg-text-primary)]">确认删除</h3>
</div>
<button onClick={() => setShowDeleteConfirm(false)} className="text-[var(--dg-text-muted)] hover:text-[var(--dg-text-primary)] transition-colors">✕</button>
</div>
<p className="text-sm text-[var(--dg-text-secondary)] mb-5">
确认删除 <span className="text-red-400 font-medium">{selectedDns.size}</span> 个 LDAP 用户?此操作不可逆。
</p>
<div className="flex justify-end gap-2">
<button onClick={() => setShowDeleteConfirm(false)} className="px-4 py-2 text-sm text-[var(--dg-text-muted)] hover:text-[var(--dg-text-primary)] transition-colors">取消</button>
<button
onClick={confirmDelete}
className="flex items-center gap-1.5 px-4 py-2 text-sm font-medium rounded-lg bg-red-500 text-white hover:bg-red-600 transition-colors"
>
<Trash2 className="w-3.5 h-3.5" />确认删除
</button>
</div>
</div>
</ModalOverlay>
)}
<ConfirmDialog
open={showDeleteConfirm}
title="确认删除"
description={`确认删除 ${selectedDns.size} 个 LDAP 用户?此操作不可逆。`}
confirmText="确认删除"
variant="danger"
onConfirm={() => { confirmDelete(); }}
onCancel={() => setShowDeleteConfirm(false)}
/>
</div>
);
}