Commit graph

59 commits

Author SHA1 Message Date
eddy
aca968bbda feat: outbox-pattern sync + progressive dashboard loading
- Sync herschreven: push-vóór-pull, outbox met syncStatus (pending/pending-delete/synced), local-first merge
- Dashboard: progressieve loading — laatste 2 metingen direct, grafieken volgen daarna
- measurementStore versimpeld naar refreshCache/getCached/getVersion (20 regels)
- db.ts: getPendingRecords(), updateSyncStatus(), migratie local→synced, syncStatus DEFAULT 'pending'
- WeightChart: filtert 0-waarden uit vetmassa/spiermassa, verbergt chart bij <2 datapunten
- HistoryScreen/MeasurementDetailScreen: delete flow naar DB-only (setDeletedAt + updateSyncStatus)
- eas.json: appVersionSource toegevoegd tegen waarschuwing
- README bijgewerkt met outbox-pattern documentatie
- 16/16 tests, TypeScript clean
2026-07-25 17:27:54 +02:00
eddy
d09951c493 fix: code review cleanup — filter deletedAt, deduplicate, use toast util
- getMeasurementByDate: AND deletedAt IS NULL (soft-deleted meting triggerde dubbele-datum alert)
- Dashboard/History: verwijder redundante JS .filter(m => !m.deletedAt) (SQL filterde al)
- HistoryScreen confirmDelete: fix dubbele load() call
- NewMeasurementScreen: gebruik toast utility i.p.v. direct ToastAndroid
2026-07-25 15:54:10 +02:00
eddy
df05fb75dd fix: sync refactor — fix 6 bugs + cache refresh na sync
- setDeletedAt update nu ook updatedAt (bug 2)
- getAllMeasurements filtert deletedAt IS NULL, nieuwe getAllMeasurementsForSync voor sync
- mergeMeasurements detecteert server deleted:true → deletedAt (bug 1)
- syncAll: pull-push split met remoteUpdatedMap, geen double-push (bug 3)
- hard delete alleen na API-succes (bug 4)
- DashboardScreen: refreshCache() na syncAll zodat UI niet op Laden blijft hangen
- deleteMeasurement() dead code verwijderd (bug 5)
- tests: 3 nieuwe testcases voor deleted → deletedAt mapping, 15/15 pass
2026-07-25 15:33:22 +02:00
eddy
55572a1455 docs: uitgebreide README met alle projectaspecten 2026-07-20 20:19:48 +02:00
eddy
491ea1ff16 docs: update README met huidige architectuur en vibecoding vermelding 2026-07-20 20:17:03 +02:00
eddy
4a7c89bdd8 fix: update adaptive icon foreground naar nieuw icoon 2026-07-20 20:01:19 +02:00
eddy
b65c7a7043 docs: blogartikel over de REST API migratie 2026-07-20 19:50:19 +02:00
eddy
2e6c3fd588 assets: nieuw app icoon van weegschaal-app.jpeg 2026-07-20 19:34:40 +02:00
eddy
e9a17d32a2 ui: vervang share icoon door MaterialIcons standaard share icon 2026-07-20 19:23:48 +02:00
eddy
dc85cd3ff0 feat: share knop op dashboard kaart — deelt kaart als PNG via expo-sharing 2026-07-20 18:58:24 +02:00
eddy
86d6cde478 fix: plaats voorlaatste meting boven laatste, fix MeasurementRow onPress in History 2026-07-20 18:40:26 +02:00
eddy
73d327f914 ui: toon voorlaatste meting en gewichtsverschil in dashboard card 2026-07-20 18:16:56 +02:00
eddy
df91f4d46f ui: voeg laad-indicator toe aan Dashboard 2026-07-20 17:52:26 +02:00
eddy
e93d12565e db: voeg ALTER TABLE migratie toe voor bestaande databases zonder deletedAt 2026-07-20 17:39:32 +02:00
eddy
d0dd2f4e39 test: herschrijf tests voor timestamp-based sync, vervang updateMeasurement door setDeletedAt 2026-07-20 17:03:44 +02:00
eddy
8e1783306a ui: filter deletedAt in History en Dashboard, soft delete in History 2026-07-20 17:01:39 +02:00
eddy
b043a5c1d2 detail: soft delete via deletedAt i.p.v. syncStatus 2026-07-20 17:00:59 +02:00
eddy
143572bc81 save: directe uploadMeasurement push, verwijder syncStatus uit MeasurementForm 2026-07-20 17:00:41 +02:00
eddy
23db445366 settings: vervang WebDAV configuratie door REST API configuratie 2026-07-20 17:00:21 +02:00
eddy
4b7b7e3d5c db: fix insertMeasurement/upsertMeasurement — remove syncStatus param 2026-07-20 16:58:55 +02:00
eddy
79c91eb537 db: voeg deletedAt toe, vervang syncStatus logica door timestamp-based functies 2026-07-20 16:58:12 +02:00
eddy
cec6c54e61 sync: herschrijf syncService voor timestamp-based REST sync 2026-07-20 16:56:28 +02:00
eddy
a13f2b821b feat: REST API client module 2026-07-20 16:55:50 +02:00
eddy
ac681dbfaa types: vervang WebDAVConfig door ApiConfig, verwijder SyncStatus, voeg deletedAt toe 2026-07-20 16:55:07 +02:00
eddy
ed714af8d1 feat: add MeasurementDetailScreen, 365-day charts, and edit support
- New MeasurementDetailScreen with wijzigen/verwijderen
- WeightChart now supports 30 and 365 days
- NewMeasurementScreen now handles both create and edit
- Updated README to match current code
- Add build-toolchain documentation
- Ignore *.apk build artifacts
2026-07-14 09:14:59 +02:00
Eddy de Vink
c499f7df13 fix: add .expo/ to gitignore 2026-06-28 00:51:26 +02:00
Eddy de Vink
4130bdd697 feat: tap measurement in history to edit or delete 2026-06-28 00:41:34 +02:00
Eddy de Vink
1f43918e84 feat: detect duplicate measurement dates, ask to overwrite 2026-06-28 00:39:56 +02:00
Eddy de Vink
3523637b17 feat: add EAS config and android package name for APK build 2026-06-28 00:05:04 +02:00
Eddy de Vink
c3881ea84e docs: update README and Obsidian vault with latest features 2026-06-28 00:01:44 +02:00
Eddy de Vink
ea29f52fad fix: confirm dialog before clearing WebDAV config, ensure full button text 2026-06-27 23:56:57 +02:00
Eddy de Vink
55785fe9e3 revert to three separate charts per metric 2026-06-27 23:53:59 +02:00
Eddy de Vink
4dd2ddaa58 feat: single chart with normalized curves, values below with delta 2026-06-27 23:53:17 +02:00
Eddy de Vink
3e4e7d6266 feat: separate y-axis scales per metric with three stacked charts 2026-06-27 23:51:26 +02:00
Eddy de Vink
1275a229f2 feat: add fat mass + muscle mass curves to chart, limit to last 30 days 2026-06-27 23:48:13 +02:00
Eddy de Vink
b9b800f628 fix: safe area bottom spacing for buttons above Android nav bar 2026-06-27 23:43:29 +02:00
Eddy de Vink
1bad7684bc fix: keep save button visible when keyboard open, auto-sync after save 2026-06-27 23:40:14 +02:00
Eddy de Vink
049473c696 fix: pre-fill form with latest measurement values on focus 2026-06-27 23:31:00 +02:00
Eddy de Vink
3d1263b713 fix: make initDatabase idempotent to prevent empty history after sync 2026-06-27 23:27:24 +02:00
Eddy de Vink
d150dbf7b7 fix: add pull-to-refresh to HistoryScreen 2026-06-27 23:22:35 +02:00
Eddy de Vink
56168c3021 feat: pre-fill measurement form with latest measurement values 2026-06-27 23:15:41 +02:00
Eddy de Vink
129ac2c241 fix: correct WebDAV URL and auto-create weegschaal directory on sync 2026-06-27 23:13:54 +02:00
Eddy de Vink
e038ba1ad9 fix: enable KeyboardAvoidingView on Android with padding behavior 2026-06-27 23:07:24 +02:00
Eddy de Vink
326d16a659 feat: auto-calculate fatMass and muscleMass from weight + percentages 2026-06-27 23:03:53 +02:00
Eddy de Vink
ad108b3b16 feat: add date picker as first field in measurement form 2026-06-27 23:02:51 +02:00
Eddy de Vink
d2e8f4444f feat: pre-fill WebDAV URL, add password visibility toggle 2026-06-27 22:58:27 +02:00
Eddy de Vink
5b38e99493 chore: downgrade Expo SDK 56 → 54 for Expo Go compat 2026-06-27 22:52:35 +02:00
Eddy de Vink
2905723637 docs: public domain (Unlicense) 2026-06-27 22:46:32 +02:00
Eddy de Vink
bc6e2a58b3 docs: add README.md 2026-06-27 22:45:56 +02:00
Eddy de Vink
01b3ba6d4d chore: add .gitignore 2026-06-27 22:44:24 +02:00