eddy
e3960a389e
refactor: syncAll pull-fase gebruikt mergeMeasurements als canonieke merge (issue #3 )
2026-08-06 04:42:47 +02:00
eddy
edbf69d6d9
Merge pull request #18 : toon positieve comments bij gelijk/gestegen gewicht (issue #17 )
2026-08-05 22:11:31 +02:00
eddy
a1e8a7ed48
feat: toon positieve comments bij gelijk/gestegen gewicht (issue #17 )
...
- 'Vetje naar beneden' als vetmassa gedaald is
- 💪 als spiermassa gestegen is
- Combineer beide op één regel indien van toepassing
- Alleen tonen bij diff >= 0 kg
2026-08-05 22:07:30 +02:00
aafa041840
Merge pull request 'fix: remove hardcoded API token from SettingsScreen' ( #16 ) from fix/issue-2-remove-hardcoded-token into main
2026-08-05 21:32:45 +02:00
eddy
d94628ce86
fix: remove hardcoded API token from SettingsScreen
...
- Replace hardcoded Bearer token default with empty string
- Remove auto-save in useEffect that wrote defaults to SecureStore
without user consent on first app launch
Fixes #2
2026-08-05 21:20:34 +02:00
eddy
a77b31f95c
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
a32b9e0a88
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
4c34dff629
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