Spaces:
Build error
Build error
'use client' | |
import { useTranslation } from 'react-i18next' | |
import useSWR from 'swr' | |
import { useRouter, useSearchParams } from 'next/navigation' | |
import cn from '@/utils/classnames' | |
import Button from '@/app/components/base/button' | |
import { invitationCheck } from '@/service/common' | |
import Loading from '@/app/components/base/loading' | |
const ActivateForm = () => { | |
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 } = useSWR(checkParams, invitationCheck, { | |
revalidateOnFocus: false, | |
onSuccess(data) { | |
if (data.is_valid) { | |
const params = new URLSearchParams(searchParams) | |
const { email, workspace_id } = data.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()}`) | |
} | |
}, | |
}) | |
return ( | |
<div className={ | |
cn( | |
'flex flex-col items-center w-full grow justify-center', | |
'px-6', | |
'md:px-[108px]', | |
) | |
}> | |
{!checkRes && <Loading />} | |
{checkRes && !checkRes.is_valid && ( | |
<div className="flex flex-col md:w-[400px]"> | |
<div className="w-full mx-auto"> | |
<div className="mb-3 flex justify-center items-center w-20 h-20 p-5 rounded-[20px] border border-gray-100 shadow-lg text-[40px] font-bold">🤷♂️</div> | |
<h2 className="text-[32px] font-bold text-gray-900">{t('login.invalid')}</h2> | |
</div> | |
<div className="w-full mx-auto mt-6"> | |
<Button variant='primary' className='w-full !text-sm'> | |
<a href="https://dify.ai">{t('login.explore')}</a> | |
</Button> | |
</div> | |
</div> | |
)} | |
</div> | |
) | |
} | |
export default ActivateForm | |