import { LockKeyhole, Mail, UserRound } from "lucide-react"; import Link from "next/link"; import { notFound } from "next/navigation"; import { acceptInvitation } from "./actions"; import { AuthPageShell } from "@/components/auth/auth-page-shell"; import { SubmitButton } from "@/components/auth/submit-button"; import { ErrorToaster } from "@/components/error-toaster"; import { Input, Label } from "poyraz-ui/atoms"; import { Alert, AlertDescription } from "poyraz-ui/molecules"; import { getPortalInvitationPreview } from "@/server/auth/invitations"; import { getPublicBranding } from "@/server/branding/runtime"; export const dynamic = "force-dynamic"; export default async function InvitationPage({ params, searchParams, }: { params: Promise<{ token: string }>; searchParams: Promise<{ error?: string; message?: string }>; }) { const { token } = await params; const invitation = getPortalInvitationPreview(token); const branding = getPublicBranding(); if (!invitation) { notFound(); } const query = await searchParams; const isUsable = invitation.status === "pending"; const unavailableMessage = invitation.status === "expired" ? "Bu davetin süresi dolmuş. Freelancer'dan yeni bir bağlantı istemelisin." : invitation.status === "accepted" ? "Bu davet daha önce kullanılmış. Hesabınla giriş yapabilirsin." : invitation.status === "revoked" ? "Bu davet iptal edilmiş. Freelancer'dan yeni bir bağlantı istemelisin." : null; return ( <> {query.error && query.message ? : null}

En az 8 karakter kullan.

Portal hesabını oluştur ) : ( {unavailableMessage} ) } secondaryAction={null} footer={ Giriş sayfasına dön } /> ); }