// @flow
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import logger from 'services/logger';
import { disable as disableMFA } from 'services/api/mfa';
import MfaDisableForm from './disableForm/MfaDisableForm';
import MfaStatus from './status/MfaStatus';
import type { FormModel } from 'components/ui/form';
export default class MfaDisable extends Component<
{
onSubmit: (form: FormModel, sendData: () => Promise<*>) => Promise<*>,
onComplete: Function,
},
{
showForm?: boolean,
},
> {
static contextTypes = {
userId: PropTypes.number.isRequired,
};
state = {};
render() {
const { showForm } = this.state;
return showForm ? (
) : (
);
}
onProceed = () => this.setState({ showForm: true });
onSubmit = (form: FormModel) => {
return this.props
.onSubmit(form, () => {
const data = form.serialize();
return disableMFA(this.context.userId, data);
})
.then(() => this.props.onComplete())
.catch(resp => {
const { errors } = resp || {};
if (errors) {
return Promise.reject(errors);
}
logger.error('MFA: Unexpected disable form result', {
resp,
});
});
};
}