MapBloc.dart (937B)
1 import 'package:bloc/bloc.dart'; 2 import 'package:flutter/cupertino.dart'; 3 4 import '../events/MapEvent.dart'; 5 import '../models/models.dart'; 6 import '../repos/repositories.dart'; 7 import '../states/MapState.dart'; 8 9 class MapBloc extends Bloc<MapEvent, MapState> { 10 final RailwayStationsRepository railwayStationsRepository; 11 12 MapBloc({@required this.railwayStationsRepository}) 13 : assert(railwayStationsRepository != null); 14 15 @override 16 MapState get initialState => MapLoading(); 17 18 @override 19 Stream<MapState> mapEventToState(MapEvent event) async* { 20 if (event is FetchStations) { 21 yield MapLoading(); 22 try { 23 final List<Station> stations = 24 await railwayStationsRepository.getStations(); 25 yield MapLoaded(stations: stations); 26 } catch (e) { 27 debugPrint(e.toString()); 28 yield MapError(); 29 } 30 } else if (event is RenderMap) { 31 yield MapRender(); 32 } 33 } 34 }