Skip to content

Instantly share code, notes, and snippets.

@SAGARSURI
Created July 21, 2019 13:00
Show Gist options
  • Select an option

  • Save SAGARSURI/62d9711473894d687082bdd87c9fe3fe to your computer and use it in GitHub Desktop.

Select an option

Save SAGARSURI/62d9711473894d687082bdd87c9fe3fe to your computer and use it in GitHub Desktop.
import 'package:rxdart/rxdart.dart';
import '../models/trailer_model.dart';
import '../resources/repository.dart';
import 'bloc_base.dart';
import 'package:inject/inject.dart';
import '../models/state.dart';
class MovieDetailBloc extends BlocBase {
final Repository _repository;
BehaviorSubject<TrailerModel> _trailers;
Observable<TrailerModel> get movieTrailers => _trailers.stream;
init() {
_trailers = BehaviorSubject<TrailerModel>();
}
@provide
MovieDetailBloc(this._repository);
void fetchTrailersById(id) async {
final state = await _repository.fetchTrailers(id);
if (state is SuccessState) {
_trailers.sink.add(state.value);
} else {
_trailers.addError((state as ErrorState).msg);
}
}
@override
dispose() async {
await _trailers.drain();
_trailers.close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment