Customer-facing ticket management surface component that gates rendering on authentication state and composes ticket listing, creation, and action handling into a single embeddable view. ## Key Components | Export | Type | Description | |--------|------|-------------| | `TicketCenter` | Component | Public entry point — resolves identity and delegates to the authed view or a sign-in gate | | `TicketCenterProps` | Interface | `toast` override for test-friendly injection | | `TicketCenterAuthed` | Internal Component | Full ticket UI: list, form, optimistic state, and row actions | | `TicketCenterSkeleton` | Internal Component | Full-page skeleton shown during initial identity resolution | | `TicketListSkeleton` | Internal Component | Row-level skeletons shown while the ticket list loads | ### State managed by `TicketCenterAuthed` | State | Purpose | |-------|---------| | `optimisticTickets` | Local optimistic placeholders prepended above server rows until confirmed | | `expandedTicketId` | Tracks which `TicketRow` is currently expanded | | `supportSystemDown` | Disables the form and row actions when the upstream ticketing system is unavailable | ## Usage Example Mount at your app root alongside a `QueryClientProvider` and `ChatRuntimeContext.Provider` — this component provides neither: ```typescript import { TicketCenter } from '@openframe-oss-lib/ticket-center' // Minimal embed — toast defaults to the lib's singleton export function TicketsPage() { return } // With toast override (useful in tests or custom notification systems) export function TicketsPageCustomToast() { return } ``` > **Identity gate:** Anonymous visitors see only a sign-in `EmptyState`. No list fetch or form is rendered, keeping the network tab clean and preventing 401s on submit. ## Source [`ticket-center.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ticket-center.tsx)