Add auto refresh to station view
This commit is contained in:
		
							parent
							
								
									240812e261
								
							
						
					
					
						commit
						e19d761f4d
					
				
					 1 changed files with 15 additions and 2 deletions
				
			
		| 
						 | 
					@ -1,3 +1,5 @@
 | 
				
			||||||
 | 
					import 'dart:async';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
 | 
					import 'package:hooks_riverpod/hooks_riverpod.dart';
 | 
				
			||||||
import 'package:info_tren/api/station_data.dart';
 | 
					import 'package:info_tren/api/station_data.dart';
 | 
				
			||||||
import 'package:info_tren/models.dart';
 | 
					import 'package:info_tren/models.dart';
 | 
				
			||||||
| 
						 | 
					@ -32,7 +34,18 @@ final trainInfoArgumentsProvider = Provider<TrainInfoArguments>(
 | 
				
			||||||
  (_) => throw UnimplementedError('Please override in ProviderScope'),
 | 
					  (_) => throw UnimplementedError('Please override in ProviderScope'),
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
final stationDataProvider = FutureProvider.family((ref, String stationName) => getStationData(stationName));
 | 
					final stationDataProvider = FutureProvider.family((ref, String stationName) async {
 | 
				
			||||||
 | 
					  final data = await getStationData(stationName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final timer = Timer(const Duration(minutes: 2), () {
 | 
				
			||||||
 | 
					    ref.invalidateSelf();
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					  ref.onDispose(() {
 | 
				
			||||||
 | 
					    timer.cancel();
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return data;
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
final viewStationArgumentsProvider = Provider<ViewStationArguments>(
 | 
					final viewStationArgumentsProvider = Provider<ViewStationArguments>(
 | 
				
			||||||
  (_) => throw UnimplementedError('Please override in ProviderScope'),
 | 
					  (_) => throw UnimplementedError('Please override in ProviderScope'),
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
| 
						 | 
					@ -40,4 +53,4 @@ final viewStationDataProvider = Provider((ref) {
 | 
				
			||||||
  final args = ref.watch(viewStationArgumentsProvider);
 | 
					  final args = ref.watch(viewStationArgumentsProvider);
 | 
				
			||||||
  final data = ref.watch(stationDataProvider(args.stationName));
 | 
					  final data = ref.watch(stationDataProvider(args.stationName));
 | 
				
			||||||
  return data;
 | 
					  return data;
 | 
				
			||||||
});
 | 
					}, dependencies: [viewStationArgumentsProvider, stationDataProvider]);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue