import { createFileRoute } from "@tanstack/react-router";
import { PublicLanding } from "@/components/public-home";
import { PublicShell } from "@/components/public-shell";
import { getPublicSite } from "@/lib/server/api-public";

export const Route = createFileRoute("/public/")({
  validateSearch: (search: Record<string, unknown>) => {
    const as = search.as;
    if (as === "public" || as === "donor" || as === "student" || as === "instructor" || as === "staff") {
      return { as };
    }
    return {};
  },
  loader: () => getPublicSite(),
  component: Page,
});

function Page() {
  const data = Route.useLoaderData();
  return (
    <PublicShell>
      <PublicLanding teams={data.teams} bios={data.bios} events={data.events} />
    </PublicShell>
  );
}
