import React, { useEffect } from 'react'; import ReactDOM from 'react-dom'; import './StatusPortal.css'; interface StatusPortalProps { status: 'success' | 'warning' | 'failed'; message: string; onClose?: () => void; } const StatusPortal: React.FC = ({ status, message, onClose }) => { const portalRoot = document.getElementById('portal-root') || document.body; useEffect(() => { const timer = setTimeout(() => { if (onClose) onClose(); }, 3000); return () => clearTimeout(timer); }, [onClose]); const getIcon = () => { switch (status) { case 'success': return '✔️'; case 'warning': return '⚠️'; case 'failed': return '❌'; default: return ''; } }; return ReactDOM.createPortal(
{getIcon()}
{status.charAt(0).toUpperCase() + status.slice(1)}
{message}
, portalRoot ); }; export default StatusPortal;