Components
Media upload workbench
Prepare a local batch with metadata before requesting actual provider upload and registration.
On this page
Purpose and placement
Prepare a local batch with metadata before requesting actual provider upload and registration.
Anatomy
| Part | Behavior |
|---|---|
| Selection | Native image file chooser. |
| Pending item | Object-URL preview, dimensions and editable metadata. |
| Metadata | Title, subject, context, location, caption, alt, credit and public-library exclusion. |
| Batch feedback | Ready, uploading, saved or error per item. |
Configuration and contract
| Input or decision | Implementation |
|---|---|
| MediaUploadWorkbench | Client-owned local queue; no props. |
| File acceptance | Image MIME filtering and local dimension decoding. |
| Provider boundary | Upload URL/token, file transfer and asset registration occur only during the save/upload operation. |
States and feedback
- Empty chooser captured.
- Local ready queue can be demonstrated without provider writes.
- Uploading, saved and error require a safe provider integration test.
Usage rules
- Treat upload and registration as separate operations that can fail independently.
- Keep recoverable item-specific errors and edited metadata.
- Do not expose upload credentials in documentation or network excerpts.
Accessibility and verification
Check chooser labeling, preview alternatives, item remove actions and announced progress/error state. File-selection appearance alone is not a successful upload.
Source references
| File | Responsibility |
|---|---|
| components/admin/media-library/media-upload-workbench.tsx | Audited Townwell implementation; use this file when extending this interface. |
| lib/media-library.ts | 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