This repository has been archived on 2026-06-09. You can view files and clone it, but cannot push or open issues or pull requests.
wedding-app/apps/web
Claude dbfd917e50
feat: implement guest upload flow and public gallery
Backend:
- POST /api/uploads/init validates against event_config (size, video
  policy, duration), creates an uploads row, and returns either a
  single presigned PUT or a multipart batch of presigned part URLs
  depending on file size (50 MB threshold, 10 MB parts).
- POST /api/uploads/:id/confirm completes multipart on R2 if needed,
  HEADs the object to verify upload, and flips status to approved
  (post-moderation) or pending (pre-moderation).
- POST /api/uploads/:id/abort cancels in-flight multipart and removes
  the row.
- GET /api/gallery returns approved uploads in cursor-paginated
  reverse chronological order, with public R2 URLs.
- GET /api/stats returns lightweight counts for future home/admin use.

Frontend:
- lib/upload.ts handles single and multipart uploads via XHR with
  progress callbacks, video duration extraction, and abort signals.
- /enviar: real form with file picker (image/video), author name,
  message, per-file progress, multi-file support, and a success state.
- /galeria: responsive grid of approved items with lazy-loaded images,
  video preview tiles, infinite "load more", and a fullscreen lightbox
  showing the author and message.

Schema: turnstileToken is now optional so the MVP works without
Turnstile wired up; we layer it back in later.

https://claude.ai/code/session_01TPBqgcSJMppgrpiq7fLywL
2026-05-04 02:08:00 +00:00
..
src feat: implement guest upload flow and public gallery 2026-05-04 02:08:00 +00:00
.dev.vars.example chore: scaffold Cloudflare Pages monorepo for wedding photos app 2026-05-01 23:30:50 +00:00
index.html chore: scaffold Cloudflare Pages monorepo for wedding photos app 2026-05-01 23:30:50 +00:00
package.json refactor: migrate web app to Workers + Static Assets format 2026-05-04 00:57:28 +00:00
postcss.config.js chore: scaffold Cloudflare Pages monorepo for wedding photos app 2026-05-01 23:30:50 +00:00
tailwind.config.ts chore: scaffold Cloudflare Pages monorepo for wedding photos app 2026-05-01 23:30:50 +00:00
tsconfig.json fix: web build typescript errors 2026-05-03 23:56:44 +00:00
vite.config.ts chore: scaffold Cloudflare Pages monorepo for wedding photos app 2026-05-01 23:30:50 +00:00
wrangler.toml chore: pin R2 endpoint and public URL in wrangler vars 2026-05-04 02:01:12 +00:00