mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-14 06:40:50 +00:00
feat(settings): add the import UI for Apple Health and JSON
The Apple Health export.zip and generic JSON import routes shipped without a web surface (issue #281). Add an import area with two controls: an Apple Health export.zip drop / picker that streams the upload and polls the job status to completion, and a generic JSON control that takes a pasted body or an uploaded .json file, validates it client-side, and reports the imported / skipped counts. A Download example button mints a valid example payload as a Blob. Both controls surface rate-limit and error states and announce progress via aria-live. Adds the importJobStatus query key to the factory.
This commit is contained in:
1 parent
99dbd70b81
commit
a4c3dd73bc
3 files changed
+763
No files matched your search
@@ -521,6 +521,18 @@ export const queryKeys = {
|
||||
/** The caller's own custom symptoms (decrypted labels) the log-day sheet
|
||||
* merges into the seeded chip grid. */
|
||||
cycleCustomSymptoms: () => ["cycle", "custom-symptoms"] as const,
|
||||
|
||||
/**
|
||||
* v1.15.7 — in-flight Apple Health `export.zip` import. Keyed by the
|
||||
* `jobId` returned from `POST /api/import/apple-health-export` so the
|
||||
* Export & Import settings area can poll
|
||||
* `GET /api/import/apple-health-export/[jobId]/status` with a
|
||||
* `refetchInterval` while the job is running and stop on a terminal
|
||||
* state. Each upload mints its own key, so a re-upload (or a second
|
||||
* archive) never collides with a previous job's cached status.
|
||||
*/
|
||||
importJobStatus: (jobId: string) =>
|
||||
["import", "apple-health", "status", jobId] as const,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user