Fixed mobile form

This commit is contained in:
Eric Gullickson
2025-09-25 14:21:23 -05:00
parent d4ca0ba8ae
commit 82c66dafed
5 changed files with 267 additions and 379 deletions

View File

@@ -115,6 +115,12 @@ export class DataSyncManager {
private startBackgroundSync() {
this.syncInterval = setInterval(() => {
if (this.isOnline) {
const state = useNavigationStore.getState();
console.log('[DataSync] Tick', {
at: new Date().toISOString(),
activeScreen: state.activeScreen,
selectedVehicleId: state.selectedVehicleId,
});
this.performBackgroundSync();
}
}, this.config.syncInterval);
@@ -135,14 +141,19 @@ export class DataSyncManager {
// If on vehicles screen, refresh vehicles data
if (navigationState.activeScreen === 'Vehicles') {
console.log('[DataSync] Invalidating query', { key: ['vehicles'], reason: 'background-sync:vehicles-screen' });
await this.queryClient.invalidateQueries({ queryKey: ['vehicles'] });
}
// If viewing specific vehicle, refresh its data
if (navigationState.selectedVehicleId) {
await this.queryClient.invalidateQueries({
queryKey: ['vehicles', navigationState.selectedVehicleId]
});
// If viewing specific vehicle details, refresh that vehicle's data
if (
navigationState.activeScreen === 'Vehicles' &&
navigationState.vehicleSubScreen === 'detail' &&
navigationState.selectedVehicleId
) {
const key = ['vehicles', navigationState.selectedVehicleId];
console.log('[DataSync] Invalidating query', { key, reason: 'background-sync:selected-vehicle:vehicles-detail' });
await this.queryClient.invalidateQueries({ queryKey: key });
}
console.log('DataSync: Background sync completed');
@@ -241,4 +252,4 @@ export class DataSyncManager {
window.removeEventListener('online', this.handleOnline);
window.removeEventListener('offline', this.handleOffline);
}
}
}