Patterns
Save and share
Keep saving to a personal list and sharing a public URL as two separate reader intents.
On this page
Task and context
Keep saving to a personal list and sharing a public URL as two separate reader intents.
Flow and composition
| Stage | Interface responsibility |
|---|---|
| Choose intent | Save stores a personal item; share distributes a destination. |
| Authenticate | Saving may require a reader account. |
| Select | Choose/create a list while preserving item context. |
| Confirm | Report actual persistence or native-share outcome. |
Decisions and handoff
- Use a canonical public URL for sharing.
- Do not imply successful saving from a selected list alone.
Recovery and acceptance
- Provide a named fallback when native share is unavailable.
- Return focus to the original trigger after modal dismissal.
- No private lists or account data are included in screenshots.
Source references
| File | Responsibility |
|---|---|
| components/save-this-control.tsx | Audited Townwell implementation; use this file when extending this interface. |
| components/native-share-button.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