/* eslint-disable import/extensions */ import { t } from 'i18next'; import React, { useEffect, useState } from 'react'; import { toast } from 'sonner'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Label } from '@/components/ui/label'; import SimpleInput from '../../components/input/SimpleInput'; import { fetchUsername } from '../../services/audits'; export const Profile = () => { const [role, setRole] = useState(null); const [formData, setFormData] = useState<{ username: string; firstname: string; lastname: string; email: string; phone: string; newPassword?: string; confirmPassword?: string; currentPassword?: string; }>({ username: '', firstname: '', lastname: '', email: '', phone: '', }); useEffect(() => { fetchUsername() .then(user => { setRole(user.datas.role); setFormData({ username: user.datas.username, firstname: user.datas.firstname, lastname: user.datas.lastname, email: user.datas.email ?? '', phone: user.datas.phone ?? '', }); }) .catch(console.error); }, []); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); fetch(`${import.meta.env.VITE_API_URL}/api/users/me`, { method: 'PUT', headers: { 'Content-Type': 'application/json', }, credentials: 'include', body: JSON.stringify({ ...formData, ...(formData.newPassword === '' && { newPassword: formData.newPassword, }), ...(formData.confirmPassword === '' && { confirmPassword: formData.confirmPassword, }), ...(formData.currentPassword === '' && { currentPassword: formData.currentPassword, }), }), }) .then(res => { if (res.ok) { toast.success(t('msg.profileUpdateOk')); } else { toast.error(t('failedUpdateProfile')); } }) .catch(console.error); }; return ( {t('profile')}
{role}
{ setFormData(prev => ({ ...prev, username: value })); }} placeholder={t('username')} type="text" value={formData.username} /> { setFormData(prev => ({ ...prev, firstname: value })); }} placeholder={t('firstname')} type="text" value={formData.firstname} /> { setFormData(prev => ({ ...prev, lastname: value })); }} placeholder={t('lastname')} type="text" value={formData.lastname} /> { setFormData(prev => ({ ...prev, email: value })); }} placeholder={t('email')} type="text" value={formData.email} /> { setFormData(prev => ({ ...prev, phone: value })); }} placeholder={t('phone')} type="text" value={formData.phone} />
{ setFormData(prev => ({ ...prev, newPassword: value })); }} placeholder={t('newPassword')} type="password" value={formData.newPassword ?? ''} /> { setFormData(prev => ({ ...prev, confirmPassword: value })); }} placeholder={t('confirmPassword')} type="password" value={formData.confirmPassword ?? ''} />
{ setFormData(prev => ({ ...prev, currentPassword: value })); }} placeholder={t('currentPassword')} requiredField type="password" value={formData.currentPassword ?? ''} />
); };