import Link from 'next/link';
import { AcceptInvitationForm } from '@/app/invitation/[token]/AcceptInvitationForm';
import { INVITATION_STATE_LABELS } from '@/domain/access/invitation';
import { resolveInvitation } from '@/server/invitations/service';
export const metadata = { title: 'Invitation · PlanFlow' };
export const dynamic = 'force-dynamic';
/**
* Acceptation d'une invitation — page publique.
*
* Hors du shell applicatif : le destinataire n'a pas encore de session, et
* afficher une navigation qu'il ne peut pas suivre serait déroutant.
*/
export default async function InvitationPage({
params,
}: {
params: Promise<{ token: string }>;
}) {
const { token } = await params;
const invitation = await resolveInvitation(decodeURIComponent(token));
return (
PlanFlow
{invitation?.state === 'PENDING'
? `Bienvenue${invitation.firstName ? `, ${invitation.firstName}` : ''}`
: 'Invitation'}
{!invitation ? (
) : invitation.state !== 'PENDING' ? (
) : (
<>
{invitation.accountName} vous
ouvre un accès à PlanFlow, où vous consulterez votre planning, vos
compteurs et vos demandes d’absence.
>
)}
Aller à la connexion
);
}
function Refusal({ title, message }: { title?: string; message: string }) {
return (
{title ?
{title}
: null}
{message}
);
}