Skip to content

feat: add JSON with Images export/import format #8

Merged
JustCreature merged 3 commits into
mainfrom
F-2
Feb 19, 2026
Merged

feat: add JSON with Images export/import format #8
JustCreature merged 3 commits into
mainfrom
F-2

Conversation

@JustCreature

Copy link
Copy Markdown
Owner

JSON with Images Export/Import (F-2)

Single-file export format that embeds images as base64. Simplifies sharing via messaging apps.

Changes

  • New export method: "JSON with Images" creates single JSON file
  • Import from main screen: Import button in film rolls toolbar
  • Auto-navigation: Import redirects to gallery, no reload needed
  • Size warnings: Alert if export >10MB
  • [IMPORTED] prefix: Distinguishes imported film rolls

Files Changed

  • src/types.ts - New export format types
  • src/utils/exportImport.ts - Export/import methods (~140 lines)
  • src/components/FilmRollListScreen.tsx - Import UI (~120 lines)
  • src/components/GalleryScreen.tsx - Export UI (~50 lines)
  • src/App.tsx, src/components/MainScreen.tsx - State wiring

Testing

  • 8 E2E tests in e2e/import-export.spec.ts
  • Tests import flow, navigation, metadata preservation
  • Cross-browser (5 browsers)

User Benefits

✅ Single file to share (Telegram, WhatsApp, email)
✅ No file loss (images embedded)
✅ Instant feedback (auto-navigation)
✅ Backward compatible (existing exports work)

@JustCreature JustCreature self-assigned this Feb 19, 2026
@JustCreature JustCreature added documentation Improvements or additions to documentation enhancement New feature or request labels Feb 19, 2026
@JustCreature JustCreature merged commit 7c31cea into main Feb 19, 2026
2 checks passed
@JustCreature JustCreature deleted the F-2 branch February 19, 2026 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant