File

apps/platform/src/hooks/Recover2FAHook.ts

Index

Properties

Properties

onError
onError: function
Type : function
Optional
onSuccess
onSuccess: function
Type : function
Optional
userEmail
userEmail: string
Type : string
Optional
import {
  HandleErrorOptions,
  Recover2FAData,
  auth2FARecoveryService
} from '@isomera/impl'
import { useFormik } from 'formik'
import * as Yup from 'yup'

interface Options {
  onSuccess?: (response: any) => void
  onError?: (error: any) => void
  userEmail?: string
}

export const useRecoveryHook = (options: Options) => {
  const { onSuccess, onError, userEmail } = options

  const initialValues: Recover2FAData = {
    code: '',
    email: userEmail ?? ''
  }

  const validationSchema = Yup.object({
    code: Yup.string().required('2FA code is required')
  })

  const onSubmit = async (values: Recover2FAData) => {
    try {
      const response = await auth2FARecoveryService(values)
      onSuccess && onSuccess(response)
    } catch (error) {
      onError && onError(error)
    }
  }

  const formik = useFormik({
    initialValues,
    validationSchema,
    onSubmit
  })

  return {
    ...formik,
    isLoading: formik.isSubmitting
  }
}

results matching ""

    No results matching ""