import { noop } from 'lodash'; import { observer } from 'mobx-react'; import { Component, type FormEvent, type FormEventHandler, type ReactElement, } from 'react'; import { type WrappedComponentProps, defineMessages, injectIntl, } from 'react-intl'; import { Link } from 'react-router-dom'; import type Form from '../../../lib/Form'; import Infobox from '../../ui/Infobox'; import Radio from '../../ui/Radio'; import Button from '../../ui/button'; import { H2 } from '../../ui/headline'; import Input from '../../ui/input/index'; const messages = defineMessages({ headline: { id: 'settings.account.headline', defaultMessage: 'Account', }, headlineProfile: { id: 'settings.account.headlineProfile', defaultMessage: 'Update profile', }, headlineAccount: { id: 'settings.account.headlineAccount', defaultMessage: 'Account information', }, headlinePassword: { id: 'settings.account.headlinePassword', defaultMessage: 'Change password', }, successInfo: { id: 'settings.account.successInfo', defaultMessage: 'Your changes have been saved', }, buttonSave: { id: 'settings.account.buttonSave', defaultMessage: 'Update profile', }, }); interface IProps extends WrappedComponentProps { status: string[]; form: Form; onSubmit: FormEventHandler; isSaving: boolean; } @observer class EditUserForm extends Component { submit(e: FormEvent): void { e.preventDefault(); this.props.form.submit({ onSuccess: form => { const values = form.values(); this.props.onSubmit(values); }, onError: noop, }); } render(): ReactElement { const { // user, status, form, isSaving, intl, } = this.props; return (
{intl.formatMessage(messages.headline)} {intl.formatMessage(messages.headlineProfile)}
this.submit(e)} id="form"> {status.length > 0 && status.includes('data-updated') && ( {intl.formatMessage(messages.successInfo)} )}

{intl.formatMessage(messages.headlineAccount)}

{form.$('accountType').value === 'company' && ( )}

{intl.formatMessage(messages.headlinePassword)}

{/* Save Button */} {isSaving ? (
); } } export default injectIntl(EditUserForm);