From 8bfea197dbf4734668f200f20b8873f7fc293ab2 Mon Sep 17 00:00:00 2001 From: 15945162479 <15945162479@qq.com> Date: Sat, 13 Dec 2025 14:46:09 +0800 Subject: [PATCH] Add File --- src/elderly/components/ToastMessage.tsx | 63 +++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/elderly/components/ToastMessage.tsx diff --git a/src/elderly/components/ToastMessage.tsx b/src/elderly/components/ToastMessage.tsx new file mode 100644 index 0000000..a45857b --- /dev/null +++ b/src/elderly/components/ToastMessage.tsx @@ -0,0 +1,63 @@ +import React from 'react'; +import { CheckCircle, AlertCircle, Phone } from 'lucide-react'; + +interface ToastMessageProps { + type: 'success' | 'info' | 'calling'; + message: string; + onClose: () => void; +} + +/** + * 老人友好的提示消息组件 + * 替代浏览器的 alert + */ +export const ToastMessage: React.FC = ({ type, message, onClose }) => { + const getIcon = () => { + switch (type) { + case 'success': + return ; + case 'calling': + return ; + default: + return ; + } + }; + + const getColor = () => { + switch (type) { + case 'success': + return 'bg-green-50 border-green-300'; + case 'calling': + return 'bg-blue-50 border-blue-300'; + default: + return 'bg-blue-50 border-blue-300'; + } + }; + + // 不自动关闭,由调用方控制关闭时间 + // React.useEffect(() => { + // const timer = setTimeout(() => { + // onClose(); + // }, 3000); + // return () => clearTimeout(timer); + // }, [onClose]); + + return ( +
+
+
+ {getIcon()} +

+ {message} +

+ +
+
+
+ ); +};