import React, { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { tokenService } from '../services/TokenService'; import { userApi } from '../api/loginApi'; import './ProfileForm.css'; const ProfileForm = () => { const navigate = useNavigate(); const [activeView, setActiveView] = useState('profile'); const [subView, setSubView] = useState('details'); const [formData, setFormData] = useState({ firstname: '', lastname: '', phone: '', username: '', createdDate: new Date().toISOString().split('T')[0], lastLoginDate: new Date().toISOString().split('T')[0], }); const [passwordData, setPasswordData] = useState({ currentPassword: '', newPassword: '', confirmNewPassword: '', }); useEffect(() => { const fetchData = async () => { const userId = tokenService.getUserId(); const response = await userApi.get_user_profile(userId); if (response) { const userProfile = response.data[0]; setFormData((prev) => ({ ...prev, firstname: userProfile.firstname, lastname: userProfile.lastname, phone: userProfile.phone_number, username: userProfile.username, createdDate: userProfile.created, lastLoginDate: userProfile.last_login, })); } else { console.error('Error getting user profile'); } }; fetchData(); }, []); const handleChange = (e) => { const { name, value } = e.target; setFormData({ ...formData, [name]: value }); }; const handlePasswordChange = (e) => { const { name, value } = e.target; setPasswordData((prev) => ({ ...prev, [name]: value, })); }; const handleNavClick = (view) => { if (view === 'profile') { navigate('/user/profile'); } else { navigate(`/${view}`); } }; const handlePasswordSubmit = async (e) => { e.preventDefault(); try { const userId = tokenService.getUserId(); const currentPassword = passwordData.currentPassword; const newPassword = passwordData.newPassword; const confirmNewPassword = passwordData.confirmNewPassword; const response = await userApi.update_password( userId, currentPassword, newPassword, confirmNewPassword ); if (response) { console.log('Successfully updated password'); } else { console.error('Error updating password'); } } catch (error) { console.error('Login error:', error); } finally { } }; const renderPasswordForm = () => (