Settings UI — export action + import flow #319

Open
opened 2026-06-28 00:17:54 +00:00 by james · 0 comments
Owner

Child of #286 (settings UI — fourth slice).

New "Your data" card on the account/settings screen (apps/client/app/(app)/account.tsx). Strings via the account.* i18n namespace; Carol's voice (first person, sentence case, no emoji).

Scope

  • Export — "Export my data" → builds + downloads the archive (web: blob download; native: expo-file-system save / share sheet). Spinner while building.
  • Import — file picker (expo-document-picker) → POST /api/import/preview → summary screen showing per-entity counts + a mode selector (Replace / Merge / Import as copies) with a destructive-action warning on Replace → confirm → POST /api/import → success/error result.
  • @carol/api-client hooks for the new endpoints.
  • i18n catalog keys under account.*.

Depends on the export (ticket 1) and import (tickets 2–3) endpoints.

Child of #286 (settings UI — fourth slice). New **"Your data"** card on the account/settings screen (`apps/client/app/(app)/account.tsx`). Strings via the `account.*` i18n namespace; Carol's voice (first person, sentence case, no emoji). ## Scope - **Export** — "Export my data" → builds + downloads the archive (web: blob download; native: `expo-file-system` save / share sheet). Spinner while building. - **Import** — file picker (`expo-document-picker`) → `POST /api/import/preview` → summary screen showing per-entity counts + a mode selector (Replace / Merge / Import as copies) with a destructive-action warning on Replace → confirm → `POST /api/import` → success/error result. - `@carol/api-client` hooks for the new endpoints. - i18n catalog keys under `account.*`. Depends on the export (ticket 1) and import (tickets 2–3) endpoints.
Sign in to join this conversation.
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
james/carol#319
No description provided.