'use client' import { noop } from 'lodash-es' import Input from '@/app/components/base/input' import { useTranslation } from 'react-i18next' import { useContext } from 'use-context-selector' import { useCallback, useState } from 'react' import Button from '@/app/components/base/button' import { emailRegex } from '@/config' import Toast from '@/app/components/base/toast' import type { MailSendResponse } from '@/service/use-common' import { useSendMail } from '@/service/use-common' import I18n from '@/context/i18n' import Split from '@/app/signin/split' import Link from 'next/link' import { useGlobalPublicStore } from '@/context/global-public-context' type Props = { onSuccess: (email: string, payload: string) => void } export default function Form({ onSuccess, }: Props) { const { t } = useTranslation() const [email, setEmail] = useState('') const { locale } = useContext(I18n) const { systemFeatures } = useGlobalPublicStore() const { mutateAsync: submitMail, isPending } = useSendMail() const handleSubmit = useCallback(async () => { if (!email) { Toast.notify({ type: 'error', message: t('login.error.emailEmpty') }) return } if (!emailRegex.test(email)) { Toast.notify({ type: 'error', message: t('login.error.emailInValid'), }) return } const res = await submitMail({ email, language: locale }) if((res as MailSendResponse).result === 'success') onSuccess(email, (res as MailSendResponse).data) }, [email, locale, submitMail, t]) return
setEmail(e.target.value)} id="email" type="email" autoComplete="email" placeholder={t('login.emailPlaceholder') || ''} tabIndex={1} />
{t('login.signup.haveAccount')} {t('login.signup.signIn')}
{!systemFeatures.branding.enabled && <>
{t('login.tosDesc')}   {t('login.tos')}  &  {t('login.pp')}
} }