import React, { useState } from 'react'; import Modal from 'react-modal'; import { useAuth } from './AuthContext'; Modal.setAppElement('#root'); const AuthModal = ({ isOpen, onRequestClose }) => { const [isLogin, setIsLogin] = useState(true); const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const { login, register } = useAuth(); const [error, setError] = useState(''); const handleSubmit = async (e) => { e.preventDefault(); setError(''); try { if (isLogin) { await login({ username, password }); } else { await register({ username, password }); } onRequestClose(); } catch (err) { setError(err.message); } }; const toggleAuthMode = () => { setIsLogin(!isLogin); setUsername(''); setPassword(''); setError(''); }; const modalStyles = { overlay: { backgroundColor: 'rgba(0, 0, 0, 0.5)' }, content: { top: '50%', left: '50%', right: 'auto', bottom: 'auto', marginRight: '-50%', transform: 'translate(-50%, -50%)', padding: '20px', width: '300px', borderRadius: '8px', boxShadow: '0 4px 8px rgba(0, 0, 0, 0.1)', border: 'none' } }; const formStyles = { display: 'flex', flexDirection: 'column', gap: '15px' }; const inputStyles = { padding: '10px', borderRadius: '4px', border: '1px solid #ccc', fontSize: '16px' }; const buttonStyles = { padding: '12px', borderRadius: '4px', border: 'none', backgroundColor: '#242323', color: 'white', fontSize: '16px', cursor: 'pointer', ':hover': { backgroundColor: '#0056b3' } }; const toggleButtonStyles = { background: 'none', border: 'none', color: '#007bff', cursor: 'pointer', fontSize: '14px', textDecoration: 'underline' }; return (

{isLogin ? 'Login' : 'Register'}

{error &&

{error}

}
setUsername(e.target.value)} style={inputStyles} />
setPassword(e.target.value)} style={inputStyles} />
); }; export default AuthModal;