From a5dc0126ed0d23c920bd2a8faf76525c92b359ea Mon Sep 17 00:00:00 2001 From: 15945162479 <15945162479@qq.com> Date: Sat, 13 Dec 2025 14:46:17 +0800 Subject: [PATCH] Add File --- src/family/components/ConfirmDialog.tsx | 93 +++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/family/components/ConfirmDialog.tsx diff --git a/src/family/components/ConfirmDialog.tsx b/src/family/components/ConfirmDialog.tsx new file mode 100644 index 0000000..3740f1c --- /dev/null +++ b/src/family/components/ConfirmDialog.tsx @@ -0,0 +1,93 @@ +import React from 'react'; +import { AlertTriangle, X } from 'lucide-react'; + +interface ConfirmDialogProps { + title?: string; + message: string; + confirmText?: string; + cancelText?: string; + type?: 'danger' | 'warning' | 'info'; + onConfirm: () => void; + onCancel: () => void; +} + +/** + * 确认对话框组件 + * 用于需要用户确认的操作 + */ +export const ConfirmDialog: React.FC = ({ + title = '确认操作', + message, + confirmText = '确定', + cancelText = '取消', + type = 'warning', + onConfirm, + onCancel, +}) => { + const getColors = () => { + switch (type) { + case 'danger': + return { + icon: 'text-red-500', + button: 'bg-red-600 hover:bg-red-700', + }; + case 'warning': + return { + icon: 'text-orange-500', + button: 'bg-orange-600 hover:bg-orange-700', + }; + default: + return { + icon: 'text-blue-500', + button: 'bg-blue-600 hover:bg-blue-700', + }; + } + }; + + const colors = getColors(); + + return ( +
+
+ {/* 头部 */} +
+
+ +

{title}

+
+ +
+ + {/* 内容 */} +
+

{message}

+
+ + {/* 底部按钮 */} +
+ + +
+
+
+ ); +};