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)