Files
Client/lib/state/app/modules/ticker/bloc/ticker_bloc.dart
T

32 lines
1.2 KiB
Dart

import '../../../../../api/marianumconnect/queries/get_ticker/get_ticker_response.dart';
import '../../../../../api/marianumconnect/queries/get_ticker_nav/get_ticker_nav_response.dart';
import '../../../infrastructure/utility_widgets/loadable_hydrated_bloc/loadable_hydrated_bloc.dart';
import '../../../infrastructure/utility_widgets/loadable_hydrated_bloc/loadable_hydrated_bloc_event.dart';
import '../repository/ticker_repository.dart';
import 'ticker_event.dart';
import 'ticker_state.dart';
class TickerBloc
extends LoadableHydratedBloc<TickerEvent, TickerState, TickerRepository> {
@override
Future<void> gatherData() async {
final results = await Future.wait([repo.getTicker(), repo.getNav()]);
final ticker = results[0] as TickerResponse;
final nav = results[1] as TickerNavResponse;
add(DataGathered((state) => state.copyWith(ticker: ticker, nav: nav)));
}
@override
TickerRepository repository() => TickerRepository();
@override
TickerState fromNothing() => const TickerState();
@override
TickerState fromStorage(Map<String, dynamic> json) =>
TickerState.fromJson(json);
@override
Map<String, dynamic>? toStorage(TickerState state) => state.toJson();
}