import type { ConfirmEmailSearchParams } from './types' import { clsx } from 'clsx' import { createEffect, createSignal, onMount, Show } from 'solid-js' import { useLocalize } from '../../../context/localize' import { useSession } from '../../../context/session' import { ApiError } from '../../../graphql/error' import { useRouter } from '../../../stores/router' import { hideModal } from '../../../stores/ui' import styles from './AuthModal.module.scss' export const EmailConfirm = () => { const { t } = useLocalize() const { actions: { confirmEmail, loadSession, loadAuthor }, session, } = useSession() const [confirmedEmail, setConfirmedEmail] = createSignal( Boolean(session()?.user?.email_verified), ) const [isTokenExpired, setIsTokenExpired] = createSignal(false) const [isTokenInvalid, setIsTokenInvalid] = createSignal(false) const { searchParams, changeSearchParam } = useRouter() onMount(async () => { const token = searchParams().access_token if (token) { try { await confirmEmail({ token }) await loadSession() changeSearchParam({}) await loadAuthor() } catch (error) { if (error instanceof ApiError) { if (error.code === 'token_expired') { setIsTokenExpired(true) return } if (error.code === 'token_invalid') { setIsTokenInvalid(true) return } } console.log(error) } } }) createEffect(() => setConfirmedEmail(session()?.user?.email_verified)) return (
{/* TODO: texts */}
Ссылка больше не действительна
Неправильная ссылка
{t('Hooray! Welcome!')}
{t("You've confirmed email")} {confirmedEmail()}
) }