-
-
Notifications
You must be signed in to change notification settings - Fork 47
/
item_release_history_bloc.dart
29 lines (24 loc) · 1.1 KB
/
item_release_history_bloc.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:shiori/domain/models/models.dart';
import 'package:shiori/domain/services/genshin_service.dart';
import 'package:shiori/domain/services/telemetry_service.dart';
part 'item_release_history_bloc.freezed.dart';
part 'item_release_history_event.dart';
part 'item_release_history_state.dart';
class ItemReleaseHistoryBloc extends Bloc<ItemReleaseHistoryEvent, ItemReleaseHistoryState> {
final GenshinService _genshinService;
final TelemetryService _telemetryService;
ItemReleaseHistoryBloc(this._genshinService, this._telemetryService) : super(const ItemReleaseHistoryState.loading());
@override
Stream<ItemReleaseHistoryState> mapEventToState(ItemReleaseHistoryEvent event) async* {
final s = await event.map(
init: (e) async {
await _telemetryService.trackItemReleaseHistoryOpened(e.itemKey);
final history = _genshinService.getItemReleaseHistory(e.itemKey);
return ItemReleaseHistoryState.initial(itemKey: e.itemKey, history: history);
},
);
yield s;
}
}