docs: add phase 32 plan summaries
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
33
.planning/phases/32-setup-sharing-system/32-04-SUMMARY.md
Normal file
33
.planning/phases/32-setup-sharing-system/32-04-SUMMARY.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Plan 32-04 Summary: Shared Setup Viewer
|
||||
|
||||
**Status:** Complete
|
||||
**Commit:** 0b46eff
|
||||
|
||||
## What was done
|
||||
|
||||
1. **useSharedSetup hook** (`src/client/hooks/useSetups.ts`):
|
||||
- Fetches `/api/shared/:token` with retry disabled (404 = invalid token)
|
||||
- Returns same SetupWithItems type as other setup hooks
|
||||
|
||||
2. **Route search params** (`src/client/routes/setups/$setupId.tsx`):
|
||||
- Added `validateSearch` with Zod schema for `share` query param
|
||||
- Three-way data source: share token > authenticated owner > public viewer
|
||||
|
||||
3. **Shared setup banner**:
|
||||
- Blue banner with link icon: "Shared setup" shown when share token present
|
||||
- Positioned above the sticky header bar
|
||||
|
||||
4. **Error state for invalid tokens**:
|
||||
- Shows "Link not available" with link icon and descriptive text
|
||||
- Renders instead of the normal page when shared fetch errors
|
||||
|
||||
5. **Read-only mode**:
|
||||
- `showOwnerControls` computed from `!isSharedView && isAuthenticated`
|
||||
- Hidden in shared view: Add Items, Share button, Delete Setup, item removal, classification cycling
|
||||
- Item Picker, Share Modal, and Delete Dialog all gated behind `showOwnerControls`
|
||||
|
||||
## Verification
|
||||
|
||||
- `bun run lint`: Our files pass (pre-existing errors in unrelated files only)
|
||||
- Share token detection and three-way data source logic correct
|
||||
- All owner controls properly hidden in shared view
|
||||
Reference in New Issue
Block a user