feat: export and import (sub-project 6c) #7

Merged
eliott merged 1 commit from feat/export-import into main 2026-10-16 13:48:10 +02:00
Owner

Sub-project 6c.

  • Account > Data: Export downloads the account's zip into the app cache with the bearer token and opens the share sheet; Import picks a zip with the system picker, takes the web's options (merge strategy, wipe first), shows the preview and commits after a confirmation. A changed option voids the preview; pending local changes block the import since the resync would lose them. The commit asks for a forced sync cycle: the server marked a reset, so the device drops its copy and pulls everything.
  • The global fetch is Expo's, so the multipart part is an expo-file-system File, not React Native's { uri } object.
  • New dependencies: expo-file-system, expo-sharing, expo-document-picker. Version 0.8.0.

Verified on the emulator against the sync API: export to the share sheet, then that archive through the picker, preview, commit, the server gaining the shoots and the device resyncing them.

Sub-project 6c. - Account > Data: Export downloads the account's zip into the app cache with the bearer token and opens the share sheet; Import picks a zip with the system picker, takes the web's options (merge strategy, wipe first), shows the preview and commits after a confirmation. A changed option voids the preview; pending local changes block the import since the resync would lose them. The commit asks for a forced sync cycle: the server marked a reset, so the device drops its copy and pulls everything. - The global fetch is Expo's, so the multipart part is an expo-file-system `File`, not React Native's `{ uri }` object. - New dependencies: expo-file-system, expo-sharing, expo-document-picker. Version 0.8.0. Verified on the emulator against the sync API: export to the share sheet, then that archive through the picker, preview, commit, the server gaining the shoots and the device resyncing them.
feat(backup): export to the share sheet, import with preview and resync (sub-project 6c)
All checks were successful
tests / test (pull_request) Successful in 1m30s
6b318cc28d
Export downloads the account's archive into the app cache, with the bearer
token, and hands it to the system share sheet. Import picks a zip with the
system picker, takes the web app's options (how settings merge, wipe first),
shows the preview and commits after a confirmation; a changed option voids
the preview, and pending local changes block the import since the resync
would lose them. The commit asks for a forced sync cycle: the server marked
a reset, so the cycle drops the local copy and pulls everything.

The global fetch is Expo's, so the multipart file part is an expo-file-system
File rather than React Native's uri object. Adds expo-file-system,
expo-sharing and expo-document-picker.
eliott merged commit 8e33087e43 into main 2026-10-16 13:48:10 +02:00
eliott deleted branch feat/export-import 2026-10-16 13:48:11 +02:00
Sign in to join this conversation.
No reviewers
No labels
run-ci
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
RollNote/rollnote-app!7
No description provided.