web/app/ring/page.tsxblame
View source
3cbdca61import type { Metadata } from "next";
3cbdca62import { cookies } from "next/headers";
3cbdca63import { headers } from "next/headers";
3cbdca64import { RingInstanceList } from "./ring-instance-list";
3cbdca65
3cbdca66export const metadata: Metadata = {
3cbdca67 title: "Ring",
3cbdca68};
3cbdca69
3cbdca610export default async function RingHomePage() {
3cbdca611 const cookieStore = await cookies();
3cbdca612 const signedIn = cookieStore.has("grove_hub_token");
3cbdca613 const headerStore = await headers();
3cbdca614 const host =
3cbdca615 headerStore.get("x-forwarded-host") ??
3cbdca616 headerStore.get("host") ??
3cbdca617 "";
3cbdca618 const protocol = headerStore.get("x-forwarded-proto") ?? "http";
3cbdca619 const canonicalHost = host.split(",")[0]?.trim() ?? "";
3cbdca620 const groveHost = canonicalHost.replace(/^(canopy|ring)\./, "");
3cbdca621 const groveOrigin = groveHost ? `${protocol}://${groveHost}` : "";
3cbdca622
3cbdca623 return <RingInstanceList signedOut={!signedIn} groveOrigin={groveOrigin} />;
3cbdca624}