Spaces:
Running
Running
import { acceptInvitation } from "@/lib/actions/invitations"; | |
import { createClient } from "@/lib/supabase/server"; | |
import { Alert } from "../ui/alert"; | |
import { Card, CardContent } from "../ui/card"; | |
import { SubmitButton } from "../ui/submit-button"; | |
type Props = { | |
token: string; | |
} | |
export default async function AcceptTeamInvitation({ token }: Props) { | |
const supabaseClient = await createClient(); | |
const { data: invitation } = await supabaseClient.rpc('lookup_invitation', { | |
lookup_invitation_token: token | |
}); | |
return ( | |
<Card> | |
<CardContent className="p-8 text-center flex flex-col gap-y-8"> | |
<div> | |
<p>You've been invited to join</p> | |
<h1 className="text-xl font-bold">{invitation.account_name}</h1> | |
</div> | |
{Boolean(invitation.active) ? ( | |
<form> | |
<input type="hidden" name="token" value={token} /> | |
<SubmitButton formAction={acceptInvitation} pendingText="Accepting invitation...">Accept invitation</SubmitButton> | |
</form> | |
) : ( | |
<Alert variant="destructive"> | |
This invitation has been deactivated. Please contact the account owner for a new invitation. | |
</Alert> | |
)} | |
</CardContent> | |
</Card> | |
) | |
} |