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
This commit is contained in:
parent
55572a1455
commit
4c34dff629
13 changed files with 405 additions and 62 deletions
|
|
@ -2,6 +2,7 @@ import React, { useCallback, useState } from 'react'
|
|||
import { View, FlatList, StyleSheet, Text, RefreshControl, TouchableOpacity, Alert } from 'react-native'
|
||||
import { useFocusEffect } from '@react-navigation/native'
|
||||
import { initDatabase, getAllMeasurements, setDeletedAt, removeMeasurement } from '../database/db'
|
||||
import { removeFromCache } from '../store/measurementStore'
|
||||
import { Measurement } from '../types'
|
||||
import { createApi } from '../sync/api'
|
||||
import { getApiConfig } from './SettingsScreen'
|
||||
|
|
@ -64,13 +65,17 @@ export default function HistoryScreen({ navigation }: Props) {
|
|||
onPress: async () => {
|
||||
await initDatabase()
|
||||
await setDeletedAt(m.id)
|
||||
removeFromCache(m.id)
|
||||
try {
|
||||
const config = await getApiConfig()
|
||||
if (config) {
|
||||
await createApi(config).deleteMeasurement(m.id)
|
||||
await removeMeasurement(m.id)
|
||||
}
|
||||
} catch {}
|
||||
} catch {
|
||||
await load()
|
||||
return
|
||||
}
|
||||
load()
|
||||
},
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in a new issue