add timeline
This commit is contained in:
@@ -49,6 +49,12 @@ class DataService extends ChangeNotifier {
|
||||
bool get isTractionLoading => _isTractionLoading;
|
||||
bool _tractionHasMore = false;
|
||||
bool get tractionHasMore => _tractionHasMore;
|
||||
final Map<int, List<LocoAttrVersion>> _locoTimelines = {};
|
||||
final Map<int, bool> _isLocoTimelineLoading = {};
|
||||
List<LocoAttrVersion> timelineForLoco(int locoId) =>
|
||||
_locoTimelines[locoId] ?? [];
|
||||
bool isLocoTimelineLoading(int locoId) =>
|
||||
_isLocoTimelineLoading[locoId] ?? false;
|
||||
|
||||
// Trips
|
||||
List<TripSummary> _trips = [];
|
||||
@@ -235,6 +241,24 @@ class DataService extends ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
Future<List<LocoAttrVersion>> fetchLocoTimeline(int locoId) async {
|
||||
_isLocoTimelineLoading[locoId] = true;
|
||||
_notifyAsync();
|
||||
try {
|
||||
final json = await api.get('/loco/get-timeline/$locoId');
|
||||
final timeline = LocoAttrVersion.fromGroupedJson(json);
|
||||
_locoTimelines[locoId] = timeline;
|
||||
return timeline;
|
||||
} catch (e) {
|
||||
debugPrint('Failed to fetch loco timeline for $locoId: $e');
|
||||
_locoTimelines[locoId] = [];
|
||||
return [];
|
||||
} finally {
|
||||
_isLocoTimelineLoading[locoId] = false;
|
||||
_notifyAsync();
|
||||
}
|
||||
}
|
||||
|
||||
Future<dynamic> createLoco(Map<String, dynamic> payload) async {
|
||||
try {
|
||||
final response = await api.put('/loco/new', payload);
|
||||
@@ -424,6 +448,8 @@ class DataService extends ChangeNotifier {
|
||||
_trips = [];
|
||||
_tripDetails = [];
|
||||
_eventFields = [];
|
||||
_locoTimelines.clear();
|
||||
_isLocoTimelineLoading.clear();
|
||||
_notifyAsync();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user