import React, { useRef, useEffect } from "react"; type LoginCardProps = { onClose: () => void; onSubmit: (username: string, password: string) => void; }; const LoginCard: React.FC = ({ onClose, onSubmit }) => { const [username, setUsername] = React.useState(""); const [password, setPassword] = React.useState(""); const cardRef = useRef(null); useEffect(() => { const handler = (e: MouseEvent) => { if (cardRef.current && !cardRef.current.contains(e.target as Node)) { onClose(); } }; document.addEventListener("mousedown", handler); return () => document.removeEventListener("mousedown", handler); }, [onClose]); return (
Login
{ e.preventDefault(); onSubmit(username, password); }} >
); }; export default LoginCard;