Components
Empty and unavailable states
Explain why an area has no content and what the operator can do next.
On this page
Purpose and placement
Explain why an area has no content and what the operator can do next.
Anatomy
| Part | Behavior |
|---|---|
| Title | The specific absence. |
| Description | Next action or reason. |
| Surrounding controls | Filter reset or create action in the route. |
Configuration and contract
| Input or decision | Implementation |
|---|---|
| AdminEmptyState | title and description. |
| Domain meaning | No records, no filter matches, loading and unavailable integration are separate states. |
States and feedback
- No drafts specimen.
- Analytics missing configuration and map unavailable are source-specific alternatives, not interchangeable empty lists.
Usage rules
- Use No drafts found for an empty result; use a service-specific explanation for unavailability.
- Keep a clear way back from restrictive filters.
- Do not show an empty-state success message while a request is still loading.
Accessibility and verification
Use a meaningful heading and text. Announce newly resolved empty results where the user initiated an asynchronous filter.
Source references
| File | Responsibility |
|---|---|
| components/admin-ui.tsx | Audited Townwell implementation; use this file when extending this interface. |
| components/explore-map-unavailable.tsx | Audited Townwell implementation; use this file when extending this interface. |
| components/admin/admin-analytics-dashboard.tsx | Audited Townwell implementation; use this file when extending this interface. |
Examples from the app
Actual Boise Today and Townwell UI with synthetic editorial, business, review, media metadata and analytics. Existing Boise imagery; no live data changes. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-07 · Revision ce8bc72b96da · Documentation v0.1