Skip to content

Commit

Permalink
[Application] Added initial banner history item impl.
Browse files Browse the repository at this point in the history
  • Loading branch information
Wolfteam committed Apr 16, 2022
1 parent c97144d commit e6c4a53
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 0 deletions.
31 changes: 31 additions & 0 deletions lib/application/banner_history_item/banner_history_item_bloc.dart
@@ -0,0 +1,31 @@
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 'banner_history_item_bloc.freezed.dart';
part 'banner_history_item_event.dart';
part 'banner_history_item_state.dart';

class BannerHistoryItemBloc extends Bloc<BannerHistoryItemEvent, BannerHistoryItemState> {
final GenshinService _genshinService;
final TelemetryService _telemetryService;

BannerHistoryItemBloc(this._genshinService, this._telemetryService) : super(const BannerHistoryItemState.loading());

@override
Stream<BannerHistoryItemState> mapEventToState(BannerHistoryItemEvent event) async* {
final s = await event.map(
init: (e) => _init(e.version),
);

yield s;
}

Future<BannerHistoryItemState> _init(double version) async {
await _telemetryService.trackBannerHistoryItemOpened(version);
final banners = _genshinService.getBanners(version);
return BannerHistoryItemState.loadedState(version: version, items: banners);
}
}
@@ -0,0 +1,8 @@
part of 'banner_history_item_bloc.dart';

@freezed
class BannerHistoryItemEvent with _$BannerHistoryItemEvent {
const factory BannerHistoryItemEvent.init({
required double version,
}) = _Init;
}
11 changes: 11 additions & 0 deletions lib/application/banner_history_item/banner_history_item_state.dart
@@ -0,0 +1,11 @@
part of 'banner_history_item_bloc.dart';

@freezed
class BannerHistoryItemState with _$BannerHistoryItemState {
const factory BannerHistoryItemState.loading() = _LoadingState;

const factory BannerHistoryItemState.loadedState({
required double version,
required List<BannerHistoryPeriodModel> items,
}) = _LoadedState;
}
1 change: 1 addition & 0 deletions lib/application/bloc.dart
@@ -1,6 +1,7 @@
export 'artifact/artifact_bloc.dart';
export 'artifacts/artifacts_bloc.dart';
export 'banner_history/banner_history_bloc.dart';
export 'banner_history_item/banner_history_item_bloc.dart';
export 'calculator_asc_materials/material_item/calculator_asc_materials_item_bloc.dart';
export 'calculator_asc_materials/material_item_quantity/calculator_asc_materials_item_update_quantity_bloc.dart';
export 'calculator_asc_materials/materials/calculator_asc_materials_bloc.dart';
Expand Down

0 comments on commit e6c4a53

Please sign in to comment.