import { internal } from "@app/api"; import { authCookieHeader } from "@app/api/cookies"; import { verifySession } from "@app/lib/auth/verifySession"; import UserProvider from "@app/providers/UserProvider"; import { ListOrgsResponse } from "@server/routers/org"; import { AxiosResponse } from "axios"; import { ArrowUpRight } from "lucide-react"; import Link from "next/link"; import { redirect } from "next/navigation"; import { cache } from "react"; export const dynamic = "force-dynamic"; export default async function Page(props: { searchParams: Promise<{ redirect: string | undefined, t: string | undefined }>; }) { const params = await props.searchParams; // this is needed to prevent static optimization const getUser = cache(verifySession); const user = await getUser({ skipCheckVerifyEmail: true }); if (!user) { if (params.redirect) { redirect(`/auth/login?redirect=${params.redirect}`); } else { redirect(`/auth/login`); } } if ( !user.emailVerified && process.env.FLAGS_EMAIL_VERIFICATION_REQUIRED === "true" ) { if (params.redirect) { redirect(`/auth/verify-email?redirect=${params.redirect}`); } else { redirect(`/auth/verify-email`); } } let orgs: ListOrgsResponse["orgs"] = []; try { const res = await internal.get>( `/orgs`, await authCookieHeader(), ); if (res && res.data.data.orgs) { orgs = res.data.data.orgs; } } catch (e) { console.error(e); } if (!orgs.length) { redirect("/setup"); } return ( <>

Logged in as {user.email}

{orgs.map((org) => (
{org.name}
))}
); }