import Link from "next/link"; import { useRouter, useSearchParams } from "next/navigation"; import { t } from "@lingui/core/macro"; import { Trans } from "@lingui/react/macro"; import { env } from "next-runtime-env"; import { useEffect, useState } from "react"; import { authClient } from "@kan/auth/client"; import { Auth } from "~/components/AuthForm"; import { PageHead } from "~/components/PageHead"; import PatternedBackground from "~/components/PatternedBackground"; export default function PartnerActivatePage() { const router = useRouter(); const searchParams = useSearchParams(); const licenseKey = searchParams.get("license_key"); const error = searchParams.get("error"); const partnerName = env("NEXT_PUBLIC_PARTNER_NAME"); const { data: session, isPending } = authClient.useSession(); const [isMagicLinkSent, setIsMagicLinkSent] = useState(false); const [magicLinkRecipient, setMagicLinkRecipient] = useState(""); useEffect(() => { if (licenseKey) { localStorage.setItem("partnerLicenseKey", licenseKey); } }, [licenseKey]); useEffect(() => { if (!isPending && session?.user && licenseKey) { router.push( `/api/partner/link?license_key=${encodeURIComponent(licenseKey)}`, ); } else if (!isPending && session?.user && !licenseKey) { router.push("/boards"); } }, [session, isPending, licenseKey, router]); if (isPending || (session?.user && licenseKey)) return null; return ( <>

kan.bn

{isMagicLinkSent ? t`Check your inbox` : t`Activate your account`}

{isMagicLinkSent ? ( We sent a link to {magicLinkRecipient} ) : partnerName ? ( Sign in or create an account to activate your {partnerName}{" "} license ) : ( t`Sign in or create an account to activate your license` )}

{error && (
{t`Something went wrong during activation. Please try again.`}
)} {!isMagicLinkSent && (
{ setIsMagicLinkSent(val); setMagicLinkRecipient(recipient); }} callbackURL={ licenseKey ? `/api/partner/link?license_key=${encodeURIComponent(licenseKey)}` : "/boards" } />
)}

Already have an account?{" "} Sign in

); }