import ActionLink from '@/components/shared/ActionLink'
import Captcha from '@/components/shared/Captcha'
import TenantSelector from '@/components/shared/TenantSelector'
import Alert from '@/components/ui/Alert'
import Button from '@/components/ui/Button'
import { FormContainer, FormItem } from '@/components/ui/Form'
import Input from '@/components/ui/Input'
import { APP_NAME } from '@/constants/app.constant'
import { ROUTES_ENUM } from '@/routes/route.constant'
import { sendExtendLoginRequest } from '@/services/account.service'
import { store } from '@/store'
import { useLocalization } from '@/utils/hooks/useLocalization'
import useTimeOutMessage from '@/utils/hooks/useTimeOutMessage'
import { Field, Form, Formik } from 'formik'
import { useState } from 'react'
import { Helmet } from 'react-helmet'
import * as Yup from 'yup'
type ExtendLoginFormSchema = {
email: string
captchaResponse: string
}
const validationSchema = Yup.object().shape({
email: Yup.string().required(),
captchaResponse: Yup.string().required(),
})
const ExtendLogin = () => {
const { userName } = store.getState().auth.user
const disableSubmit = false
const signInUrl = ROUTES_ENUM.authenticated.login
const [emailSent, setEmailSent] = useState(false)
const [message, setMessage] = useTimeOutMessage(10000)
const { translate } = useLocalization()
const onSendMail = async (
values: ExtendLoginFormSchema,
setSubmitting: (isSubmitting: boolean) => void,
) => {
const { email, captchaResponse } = values
setSubmitting(true)
try {
const resp = await sendExtendLoginRequest({ email, captchaResponse })
if (resp.data) {
setSubmitting(false)
setEmailSent(true)
}
} catch (error: any) {
setMessage(error?.response?.data || error.toString())
setSubmitting(false)
}
}
return emailSent ? (
<>
{translate('::Abp.Account.ExtendLogin.Description')}