import React, { useCallback } from 'react'; import PropTypes from 'prop-types'; import { useTranslation } from 'react-i18next'; import { Button, Divider, Header, Tab } from 'semantic-ui-react'; import EditInformation from './EditInformation'; import EditAvatarPopup from './EditAvatarPopup'; import EditUsernamePopup from './EditUsernamePopup'; import EditEmailPopup from './EditEmailPopup'; import EditPasswordPopup from './EditPasswordPopup'; import User from '../../User'; import styles from './AccountPane.module.css'; const AccountPane = React.memo( ({ email, name, username, avatar, isAvatarUploading, usernameUpdateForm, emailUpdateForm, passwordUpdateForm, onUpdate, onAvatarUpload, onUsernameUpdate, onUsernameUpdateMessageDismiss, onEmailUpdate, onEmailUpdateMessageDismiss, onPasswordUpdate, onPasswordUpdateMessageDismiss, }) => { const [t] = useTranslation(); const handleAvatarDelete = useCallback(() => { onUpdate({ avatar: null, }); }, [onUpdate]); return (

{t('common.authentication', { context: 'title', })}
); }, ); AccountPane.propTypes = { email: PropTypes.string.isRequired, name: PropTypes.string.isRequired, username: PropTypes.string, avatar: PropTypes.string, isAvatarUploading: PropTypes.bool.isRequired, /* eslint-disable react/forbid-prop-types */ usernameUpdateForm: PropTypes.object.isRequired, emailUpdateForm: PropTypes.object.isRequired, passwordUpdateForm: PropTypes.object.isRequired, /* eslint-enable react/forbid-prop-types */ onUpdate: PropTypes.func.isRequired, onAvatarUpload: PropTypes.func.isRequired, onUsernameUpdate: PropTypes.func.isRequired, onUsernameUpdateMessageDismiss: PropTypes.func.isRequired, onEmailUpdate: PropTypes.func.isRequired, onEmailUpdateMessageDismiss: PropTypes.func.isRequired, onPasswordUpdate: PropTypes.func.isRequired, onPasswordUpdateMessageDismiss: PropTypes.func.isRequired, }; AccountPane.defaultProps = { username: undefined, avatar: undefined, }; export default AccountPane;