Skip to article
Documentation

src/app/dashboard/page.tsx

Linked repository file from this build.

import { serverTiming } from "@/lib/server-timing";
import { AppShell } from "@/components/app-shell";
import { Inbox } from "@/features/inbox/inbox";
import { cookies } from "next/headers";
import { getPageActor } from "@/lib/auth/page";
import { queryInbox } from "@/lib/db/inbox-store";
export default async function DashboardPage() {
  const timing = serverTiming();
  const actor = await timing.measure("auth", getPageActor);
  const savedPageSize = Number((await cookies()).get("qc-inbox-page-size")?.value);
  const pageSize =
    Number.isInteger(savedPageSize) && savedPageSize >= 1 && savedPageSize <= 100
      ? savedPageSize
      : 6;
  const initial = {
    scope: JSON.stringify(actor),
    pageSize,
    data: await timing.measure("data", () => queryInbox(actor, { pageSize })),
  };
  timing.log("dashboard");
  return (
    <AppShell title="Home">
      <Inbox initial={initial} />
    </AppShell>
  );
}