36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { getUser } from "@/auth/auth";
|
|
import { getUserInfo } from "@/ldap";
|
|
import AboutMe from "./AboutMe";
|
|
import { redirect } from "next/navigation";
|
|
import { DiscordAuthProvider } from "@/auth/discord";
|
|
import { GitHubAuthProvider } from "@/auth/github";
|
|
import { AuthProviderState } from "@/auth/AuthProvider";
|
|
|
|
// this sucks but i'm lazy
|
|
const discordFallback: AuthProviderState = {
|
|
name: "Discord",
|
|
connected: false
|
|
};
|
|
|
|
const githubFallback: AuthProviderState = {
|
|
name: "GitHub",
|
|
connected: false
|
|
};
|
|
|
|
export default async function Page() {
|
|
const user = await getUser();
|
|
if (!user) redirect("/login");
|
|
|
|
const info = await getUserInfo(user);
|
|
if (info === null) redirect("/register");
|
|
|
|
const discord = await user.getDiscord();
|
|
const discordState = (await discord?.getState()) ?? discordFallback;
|
|
const github = await user.getGitHub();
|
|
const githubState = (await github?.getState()) ?? githubFallback;
|
|
|
|
const providers = [discordState, githubState];
|
|
|
|
// not sure how to feel about passing it like this
|
|
return <AboutMe info={info} providers={providers} />;
|
|
}
|