import mfaApi from '../../services/new_api/mfa.js' import { mapState, mapGetters, mapActions, mapMutations } from 'vuex' export default { data: () => ({ code: null, error: false }), computed: { ...mapGetters({ authApp: 'authFlow/app', authSettings: 'authFlow/settings' }), ...mapState({ instance: 'instance' }) }, beforeRouteEnter (to, from, next) { next(vm => { if (!vm.authApp) { vm.$router.push({name: 'login'}) } }) }, methods: { ...mapMutations('authFlow', ['requireTOTP', 'abortMFA']), ...mapActions({ login: 'authFlow/login' }), clearError () { this.error = false }, submit () { const data = { app: this.authApp, instance: this.instance.server, mfaToken: this.authSettings.mfa_token, code: this.code } mfaApi.verifyRecoveryCode(data).then((result) => { if (result.error) { this.error = result.error this.code = null return } this.login(result).then(() => { this.$router.push({name: 'friends'}) }) }) } } }