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
df05fb75dd
1 changed files with 405 additions and 62 deletions
|
|
@ -14,7 +14,7 @@ async function loadConfig(): Promise<ApiConfig | null> {
|
|||
}
|
||||
}
|
||||
|
||||
async function saveConfig(config: ApiConfig): Promise<void> {
|
||||
export async function saveConfig(config: ApiConfig): Promise<void> {
|
||||
await SecureStore.setItemAsync(CONFIG_KEY, JSON.stringify(config))
|
||||
}
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ export async function getApiConfig(): Promise<ApiConfig | null> {
|
|||
|
||||
export default function SettingsScreen() {
|
||||
const [url, setUrl] = useState('https://weegschaal.eddydevink.nl')
|
||||
const [token, setToken] = useState('')
|
||||
const [token, setToken] = useState('75231d5f2f9cfc40d99646f8d9d8ba890a5a55b01d09807cdcd5191e0d9bf19c')
|
||||
const [showToken, setShowToken] = useState(false)
|
||||
const [syncing, setSyncing] = useState(false)
|
||||
|
||||
|
|
@ -37,6 +37,8 @@ export default function SettingsScreen() {
|
|||
if (c) {
|
||||
setUrl(c.url)
|
||||
setToken(c.token)
|
||||
} else {
|
||||
saveConfig({ url, token })
|
||||
}
|
||||
})
|
||||
}, [])
|
||||
|
|
@ -99,7 +101,7 @@ export default function SettingsScreen() {
|
|||
autoCorrect={false}
|
||||
/>
|
||||
<TouchableOpacity style={styles.eyeButton} onPress={() => setShowToken(!showToken)}>
|
||||
<Text style={styles.eyeIcon}>{showToken ? 'O' : 'O'}</Text>
|
||||
<Text style={styles.eyeIcon}>{showToken ? '👁' : '🔒'}</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue