import React, {useState} from 'react'; import Card from '@material-ui/core/Card'; import CardHeader from '@material-ui/core/CardHeader'; import CardContent from '@material-ui/core/CardContent'; import IconButton from '@material-ui/core/IconButton'; import Icon from '@material-ui/core/Icon'; import CardActions from '@material-ui/core/CardActions'; import Button from '@material-ui/core/Button'; import {useTranslation} from 'react-i18next'; import EditPassword from './EditPassword'; import {useToast} from '../../contexts/Toast'; import ProfileField from './ProfileField'; import {makeStyles} from '@material-ui/core'; const Profile = ({profile, updateProfile, logout}) => { const {t} = useTranslation(); const {addToast} = useToast(); const classes = useStyles(); const [isEditing, setIsEditing] = useState(false); const [isEditingPassword, setIsEditingPassword] = useState(false); const [firstName, setFirstName] = useState(profile.firstName); const [lastName, setLastName] = useState(profile.lastName); const [email, setEmail] = useState(profile.email); const [oldPassword, setOldPassword] = useState(''); const [newPassword, setNewPassword] = useState(''); const [errorPassword, setErrorPassword] = useState(''); const savePassword = async () => { try { await updateProfile({ old_password: oldPassword, password: newPassword, }); addToast(t('profile.password_changed')); } catch (err) { if (err.kind === 'bad_data') { setErrorPassword(t('profile.errors.password_nomatch')); return; } } setIsEditingPassword(false); }; if (isEditingPassword) return ( { setIsEditingPassword(false); setNewPassword(''); setOldPassword(''); }} /> ); return (
{ if (evt.preventDefault) evt.preventDefault(); if (isEditing) { try { updateProfile({firstName, lastName, email}); } catch (err) { console.log(err); return; } addToast(t('profile.updated')); } setIsEditing(!isEditing); }} > {isEditing ? 'done' : 'edit'} } title={t('profile.title')} /> {isEditing && ( )} {!isEditing && ( )}
); }; const useStyles = makeStyles(theme => ({ actions: { marginTop: theme.spacing(2), }, })); export default Profile;