New books now start with 0 pages by default. Pages are added manually or via PDF import.
- OLD: Automatically created Page 0 (Cover) when creating new issue
- NEW: No automatic page creation - completely empty book
- File:
src/context/BookDataContext.jsx(createNewBookMutation)
// NO AUTOMATIC PAGE CREATION - User adds pages manually or via PDF import- OLD: First page (index 0) was protected and couldn't be deleted
- NEW: ANY page can be deleted, including the first one
- Files:
src/context/BookDataContext.jsx(removePageMutation)src/components/admin/PageManager.jsx(canRemove = true)
- First spread = Cover: Whatever is added first becomes the "cover"
- Not Fixed: Can be deleted like any other spread
- Flexible: If you delete all pages, book has 0 pages (that's OK!)
- First 2 pages of PDF → First spread (becomes "cover")
- Next 2 pages → Next spread
- And so on...
- All can be deleted after import
- Click "New Issue" → Book created with 0 pages
- Add pages manually (bulk add or one by one)
- First page added = "Cover" spread
- Upload images to pages
- Publish when ready
- Create new issue (0 pages)
- Click "Import PDF"
- PDF pages 1-2 → Spread 0 (cover)
- PDF pages 3-4 → Spread 1
- PDF pages 5-6 → Spread 2
- All spreads can be deleted if needed
- Click "Remove" on ANY page
- Including the first spread
- No restrictions!
- No forced pages
- Start empty
- Build as needed
- Delete anything
- Reorganize freely
- No "special" pages
- Admins decide structure
- No assumptions
- Complete freedom
- Still work perfectly
- Pages remain unchanged
- Can still be deleted
- Book viewer handles 0 pages gracefully
- Shows placeholder or empty state
- No errors
- Starts at 0 (first spread added)
- Increments sequentially
- Gaps allowed (after deletion)
pagestable haspage_numberfield- No CASCADE delete (manual cleanup if needed)
- RLS policies allow admin to delete any page
- Handles empty pages array
- Shows placeholder if no pages
- No crashes or errors
No migration needed! Changes are:
- Backward compatible
- Only affect NEW issues
- Existing issues unchanged
Status: ✅ Fully implemented and tested Breaking Changes: None Requires: Fresh browser cache (Ctrl + Shift + R)