apps/web/app/portal/page.tsx
Metadata
- Purpose: Web app route or page component for operator/client experience.
- Domain:
applications - Language:
tsx - Bytes: 21946
- Lines: 405
- Content hash (short):
69f0b15e - Source (start): apps/web/app/portal/page.tsx:1
- Source (end): apps/web/app/portal/page.tsx:405
Indexed Symbols
firstSearchValue(line 25, function) - Implements first search value for module behavior.
Markdown Headings (if applicable)
No markdown headings detected.
Source Preview
import { Card, StatusPill } from "@anchor/ui";
import { redirect } from "next/navigation";
import { TopNav } from "../../components/top-nav";
import { WorkspaceRequired } from "../../components/workspace-required";
import { WorkspaceSwitcher } from "../../components/workspace-switcher";
import {
portalCreateTicketAction,
portalInvoiceAcknowledgeAction,
portalInvoicePaymentIntentAction,
portalTerminateSessionAction,
portalQuoteDecisionAction,
portalUpdateTicketAction
} from "../actions/operator-actions";
import { getPortalData } from "../../lib/portal-data";
import { getPortalWorkbenchData } from "../../lib/operator-workbench-data";
import { exchangePortalInviteToken, readPortalSession } from "../../lib/portal-session";
import { resolveWorkspaceId, suggestedWorkspaceIds, withResolvedWorkspace } from "../../lib/workspace-resolution";
import { type SearchParamRecord, withWorkspaceQuery, workspaceIdFromSearchParams } from "../../lib/workspace-context";
import type { PortalData } from "../../lib/portal-data";
type PortalPageProps = {
searchParams?: Promise<SearchParamRecord>;
};
function firstSearchValue(value: string | string[] | undefined): string | null {