Skip to content

Commit 2da9b68

Browse files
committed
Add RocketsBloc
1 parent 82d5495 commit 2da9b68

File tree

5 files changed

+790
-0
lines changed

5 files changed

+790
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import 'package:bloc/bloc.dart';
2+
import 'package:flutter_bloc_app_template/index.dart';
3+
import 'package:flutter_bloc_app_template/repository/rocket_repository.dart';
4+
import 'package:freezed_annotation/freezed_annotation.dart';
5+
6+
part 'rockets_bloc.freezed.dart';
7+
part 'rockets_event.dart';
8+
part 'rockets_state.dart';
9+
10+
class RocketsBloc extends Bloc<RocketsEvent, RocketsState> {
11+
RocketsBloc(this._repository) : super(const RocketsState.loading()) {
12+
on<RocketsLoadEvent>((event, emit) async {
13+
emit(const RocketsState.loading());
14+
try {
15+
final rockets = await _repository.getRockets();
16+
if (rockets.isEmpty) {
17+
emit(const RocketsState.empty());
18+
} else {
19+
emit(RocketsState.success(rockets: rockets));
20+
}
21+
} catch (e) {
22+
emit(const RocketsState.error());
23+
}
24+
});
25+
}
26+
27+
final RocketRepository _repository;
28+
}

0 commit comments

Comments
 (0)