import React from 'react'; import PropTypes from 'prop-types'; import { useTranslation } from 'react-i18next'; import { Modal, Tab } from 'semantic-ui-react'; import AccountPane from './AccountPane'; import PreferencesPane from './PreferencesPane'; import AboutPane from './AboutPane'; const UserSettingsModal = React.memo( ({ email, name, username, avatarUrl, phone, organization, language, isLocked, subscribeToOwnCards, isAvatarUpdating, usernameUpdateForm, emailUpdateForm, passwordUpdateForm, onUpdate, onAvatarUpdate, onLanguageUpdate, onUsernameUpdate, onUsernameUpdateMessageDismiss, onEmailUpdate, onEmailUpdateMessageDismiss, onPasswordUpdate, onPasswordUpdateMessageDismiss, onClose, }) => { const [t] = useTranslation(); const panes = [ { menuItem: t('common.account', { context: 'title', }), render: () => ( ), }, { menuItem: t('common.preferences', { context: 'title', }), render: () => ( ), }, { menuItem: t('common.aboutPlanka', { context: 'title', }), render: () => , }, ]; return ( ); }, ); UserSettingsModal.propTypes = { email: PropTypes.string.isRequired, name: PropTypes.string.isRequired, username: PropTypes.string, avatarUrl: PropTypes.string, phone: PropTypes.string, organization: PropTypes.string, language: PropTypes.string, isLocked: PropTypes.bool.isRequired, subscribeToOwnCards: PropTypes.bool.isRequired, isAvatarUpdating: 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, onAvatarUpdate: PropTypes.func.isRequired, onLanguageUpdate: 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, onClose: PropTypes.func.isRequired, }; UserSettingsModal.defaultProps = { username: undefined, avatarUrl: undefined, phone: undefined, organization: undefined, language: undefined, }; export default UserSettingsModal;