'use client' import { useRouter, useSearchParams } from 'next/navigation' import { useEffect } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' import Loading from '@/app/components/base/loading' import useDocumentTitle from '@/hooks/use-document-title' import { useInvitationCheck } from '@/service/use-common' import { cn } from '@/utils/classnames' const ActivateForm = () => { useDocumentTitle('') const router = useRouter() const { t } = useTranslation() const searchParams = useSearchParams() const workspaceID = searchParams.get('workspace_id') const email = searchParams.get('email') const token = searchParams.get('token') const checkParams = { url: '/activate/check', params: { ...workspaceID && { workspace_id: workspaceID }, ...email && { email }, token, }, } const { data: checkRes } = useInvitationCheck({ ...checkParams.params, token: token || undefined, }, true) useEffect(() => { if (checkRes?.is_valid) { const params = new URLSearchParams(searchParams) const { email, workspace_id } = checkRes.data params.set('email', encodeURIComponent(email)) params.set('workspace_id', encodeURIComponent(workspace_id)) params.set('invite_token', encodeURIComponent(token as string)) router.replace(`/signin?${params.toString()}`) } }, [checkRes, router, searchParams, token]) return (
{!checkRes && } {checkRes && !checkRes.is_valid && (
🤷‍♂️

{t('invalid', { ns: 'login' })}

)}
) } export default ActivateForm