import { notFound, redirect } from "next/navigation"; import { getSessionUser } from "../../../../lib/server/session"; import { getAcceptedStakeholderInviteView } from "../../../../lib/server/publishedRules"; import { inviteRuleCountsSpoken } from "../../../../lib/create/ruleInviteCardMeta"; import { INVITE_COPY_VALUE, invitedRulePath, } from "../../../../lib/create/invitePaths"; import { InvitedRuleView } from "../_components/InvitedRuleView"; type PageProps = { params: Promise<{ ruleId: string }>; searchParams: Promise<{ copy?: string }>; }; export default async function InviteRulePage({ params, searchParams, }: PageProps) { const { ruleId } = await params; const query = await searchParams; const copy = query.copy === INVITE_COPY_VALUE; const user = await getSessionUser(); if (!user) { const next = invitedRulePath(ruleId, { copy }); redirect(`/login?next=${encodeURIComponent(next)}`); } const view = await getAcceptedStakeholderInviteView({ userId: user.id, ruleId, }); if (!view) { notFound(); } return ( ); }