"use client"; import { createApiClient } from "@app/lib/api"; import { Button } from "@app/components/ui/button"; import { Card, CardContent, CardFooter, CardHeader, CardTitle, } from "@app/components/ui/card"; import { useEnvContext } from "@app/hooks/useEnvContext"; import { XCircle } from "lucide-react"; import { useRouter } from "next/navigation"; import { useTranslations } from "next-intl"; type InviteStatusCardProps = { type: "rejected" | "wrong_user" | "user_does_not_exist" | "not_logged_in"; token: string; email?: string; }; export default function InviteStatusCard({ type, token, email, }: InviteStatusCardProps) { const router = useRouter(); const api = createApiClient(useEnvContext()); const t = useTranslations(); async function goToLogin() { await api.post("/auth/logout", {}); const redirectUrl = email ? `/auth/login?redirect=/invite?token=${token}&email=${encodeURIComponent(email)}` : `/auth/login?redirect=/invite?token=${token}`; router.push(redirectUrl); } async function goToSignup() { await api.post("/auth/logout", {}); const redirectUrl = email ? `/auth/signup?redirect=/invite?token=${token}&email=${encodeURIComponent(email)}` : `/auth/signup?redirect=/invite?token=${token}`; router.push(redirectUrl); } function renderBody() { if (type === "rejected") { return (
{t('inviteErrorNotValid')}
{t('inviteErrorUser')}
{t('inviteLoginUser')}
{t('inviteErrorNoUser')}
{t('inviteCreateUser')}