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