Four real surfaces wired to tenant-registry (settings, settings/api-keys CRUD, audit pagination, products live entitlements), five forward-looking empty states with CTAs. 56 vitest tests + 10 Playwright canaries. lib/format.ts consolidates date helpers. Refs: M10.1
18 lines
678 B
TypeScript
18 lines
678 B
TypeScript
import { auth } from "@/auth";
|
|
import { NotAuthorized, ShellEmpty } from "@/components/ShellEmpty";
|
|
import type { SessionWithExtras } from "@/lib/session";
|
|
import { canSee } from "@/lib/session";
|
|
|
|
export default async function Page() {
|
|
const session = (await auth()) as SessionWithExtras | null;
|
|
if (!canSee(session, "support")) return <NotAuthorized />;
|
|
return (
|
|
<ShellEmpty
|
|
title="Support"
|
|
description="Submit a ticket — Frappe HD's customer portal embedded here."
|
|
milestone="M9.1"
|
|
details="Email oncall@breakpilot.com in the meantime. Tickets that need engineering attention escalate into Gitea issues automatically (M9.2)."
|
|
/>
|
|
);
|
|
}
|