import React, { useState, useEffect } from 'react'; import './UserModal.css'; const UserModal = ({ isOpen, onClose, token }) => { const [user, setUser] = useState(null); const [newPassword, setNewPassword] = useState(''); const [message, setMessage] = useState(''); useEffect(() => { if (isOpen && token) { fetchUserDetails(); } }, [isOpen, token]); const fetchUserDetails = async () => { try { const response = await fetch('http://localhost:8000/user/me', { headers: { 'Authorization': `Bearer ${token}` } }); if (response.ok) { const data = await response.json(); setUser(data); } } catch (error) { console.error('Error fetching user details:', error); } }; const handlePasswordUpdate = async (e) => { e.preventDefault(); try { const response = await fetch('http://localhost:8000/user/update-password', { method: 'PUT', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}` }, body: JSON.stringify({ password: newPassword }) }); if (response.ok) { setMessage('Password updated successfully'); setNewPassword(''); } else { const error = await response.json(); setMessage(error.detail); } } catch (error) { setMessage('Failed to update password'); } }; if (!isOpen) return null; return (

User Profile

{user && (

Username: {user.username}

setNewPassword(e.target.value)} placeholder="Enter new password" />
{message &&

{message}

}
)}
); }; export default UserModal;