58 lines
2.3 KiB
TypeScript
Raw Normal View History

2019-12-07 13:28:52 +02:00
import React from 'react';
import { Helmet } from 'react-helmet-async';
2017-09-09 17:22:19 +03:00
import { FormattedMessage as Message } from 'react-intl';
import styles from 'app/components/profile/profileForm.scss';
import { BackButton } from 'app/components/profile/ProfileForm';
import { FormModel } from 'app/components/ui/form';
2017-07-22 18:57:38 +03:00
2019-12-07 13:28:52 +02:00
import MfaEnable, { MfaStep } from './MfaEnable';
2017-09-09 17:22:19 +03:00
import MfaDisable from './MfaDisable';
2017-07-22 18:57:38 +03:00
2019-12-07 13:28:52 +02:00
class MultiFactorAuth extends React.Component<{
2020-05-24 02:08:24 +03:00
step: MfaStep;
isMfaEnabled: boolean;
onSubmit: (form: FormModel, sendData: () => Promise<void>) => Promise<void>;
onComplete: () => void;
onChangeStep: (nextStep: number) => void;
2017-08-22 23:31:41 +03:00
}> {
2020-05-24 02:08:24 +03:00
render() {
const { step, onSubmit, onComplete, onChangeStep, isMfaEnabled } = this.props;
return (
<div className={styles.contentWithBackButton}>
<BackButton />
<div className={styles.form}>
<div className={styles.formBody}>
<Message key="mfaTitle" defaultMessage="Twofactor authentication">
2020-05-24 02:08:24 +03:00
{(pageTitle) => (
<h3 className={styles.title}>
<Helmet title={pageTitle as string} />
{pageTitle}
</h3>
)}
</Message>
<div className={styles.formRow}>
<p className={styles.description}>
<Message
key="mfaDescription"
defaultMessage="Twofactor authentication is an extra layer of security designed to ensure you that you're the only person who can access your account, even if the password gets stolen."
/>
2020-05-24 02:08:24 +03:00
</p>
</div>
</div>
{isMfaEnabled && <MfaDisable onSubmit={onSubmit} onComplete={onComplete} />}
</div>
{isMfaEnabled || (
<MfaEnable step={step} onSubmit={onSubmit} onChangeStep={onChangeStep} onComplete={onComplete} />
)}
</div>
2020-05-24 02:08:24 +03:00
);
}
2017-07-22 18:57:38 +03:00
}
2017-09-09 17:22:19 +03:00
export default MultiFactorAuth;