feat(web): local image packaging — drag-and-drop or folder picker to CBZ #2

Merged
bryan merged 1 commits from feature/upload into main 2026-03-10 01:49:56 +00:00
Owner

Summary

  • New upload icon button in the header opens a packaging modal
  • Drag and drop a folder or files onto the drop zone, or use the folder/file pickers
  • Title auto-filled from folder name; images sorted by filename
  • First image saved as cover; all images packaged into <Title>/<Title>.cbz
  • Upload progress bar via XHR; success toasts and library auto-refresh on completion
  • New POST /api/upload endpoint in web/server.go — no changes to cli or comic packages
  • README updated to document the new functionality

Test plan

  • Click upload icon — modal opens; Escape and backdrop click close it
  • Drag a folder onto the drop zone — title auto-fills, file count shown
  • Select folder via picker — same behaviour
  • Select individual files via picker — file count shown
  • Submit — progress bar fills, toast confirms, comic appears in library grid
  • Comic without cover — initials placeholder renders correctly
  • Invalid/no images — error toast shown, modal stays open
  • Mobile (≤600px) — modal fits within viewport
## Summary - New upload icon button in the header opens a packaging modal - Drag and drop a folder or files onto the drop zone, or use the folder/file pickers - Title auto-filled from folder name; images sorted by filename - First image saved as cover; all images packaged into `<Title>/<Title>.cbz` - Upload progress bar via XHR; success toasts and library auto-refresh on completion - New `POST /api/upload` endpoint in `web/server.go` — no changes to `cli` or `comic` packages - README updated to document the new functionality ## Test plan - [x] Click upload icon — modal opens; Escape and backdrop click close it - [x] Drag a folder onto the drop zone — title auto-fills, file count shown - [x] Select folder via picker — same behaviour - [x] Select individual files via picker — file count shown - [x] Submit — progress bar fills, toast confirms, comic appears in library grid - [x] Comic without cover — initials placeholder renders correctly - [x] Invalid/no images — error toast shown, modal stays open - [x] Mobile (≤600px) — modal fits within viewport
bryan added 1 commit 2026-03-10 01:42:59 +00:00
bryan changed title from feat(web): local image packaging — drag-and-drop or folder picker to CBZ to WIP: feat(web): local image packaging — drag-and-drop or folder picker to CBZ 2026-03-10 01:44:20 +00:00
bryan changed title from WIP: feat(web): local image packaging — drag-and-drop or folder picker to CBZ to feat(web): local image packaging — drag-and-drop or folder picker to CBZ 2026-03-10 01:49:32 +00:00
bryan merged commit 9cd4af9bb6 into main 2026-03-10 01:49:56 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bryan/yoink-go#2