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>
);
}