Skip to content

Commit 7767312

Browse files
committed
Add roadster bloc
1 parent 50bc331 commit 7767312

File tree

6 files changed

+646
-0
lines changed

6 files changed

+646
-0
lines changed

lib/di/app_bloc_providers.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ import 'package:flutter_bloc_app_template/bloc/email_list/email_list_bloc.dart';
33
import 'package:flutter_bloc_app_template/bloc/init/init_bloc.dart';
44
import 'package:flutter_bloc_app_template/bloc/theme/theme_cubit.dart';
55
import 'package:flutter_bloc_app_template/features/launches/bloc/launches_bloc.dart';
6+
import 'package:flutter_bloc_app_template/features/roadster/bloc/roadster_bloc.dart';
67
import 'package:flutter_bloc_app_template/features/rockets/bloc/rockets_bloc.dart';
78
import 'package:flutter_bloc_app_template/repository/email_list_repository.dart';
89
import 'package:flutter_bloc_app_template/repository/launches_repository.dart';
10+
import 'package:flutter_bloc_app_template/repository/roadster_repository.dart';
911
import 'package:flutter_bloc_app_template/repository/rocket_repository.dart';
1012
import 'package:flutter_bloc_app_template/repository/theme_repository.dart';
1113
import 'package:provider/single_child_widget.dart' show SingleChildWidget;
@@ -41,6 +43,13 @@ abstract class AppBlocProviders {
4143
const RocketsEvent.load(),
4244
),
4345
),
46+
BlocProvider(
47+
create: (context) => RoadsterBloc(
48+
RepositoryProvider.of<RoadsterRepository>(context),
49+
)..add(
50+
const RoadsterEvent.load(),
51+
),
52+
),
4453
BlocProvider<InitBloc>(
4554
create: (_) => InitBloc()
4655
..add(
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import 'package:bloc/bloc.dart';
2+
import 'package:flutter_bloc_app_template/models/roadster/roadster_resource.dart';
3+
import 'package:flutter_bloc_app_template/repository/roadster_repository.dart';
4+
import 'package:freezed_annotation/freezed_annotation.dart';
5+
6+
part 'roadster_bloc.freezed.dart';
7+
part 'roadster_event.dart';
8+
part 'roadster_state.dart';
9+
10+
class RoadsterBloc extends Bloc<RoadsterEvent, RoadsterState> {
11+
RoadsterBloc(this._repository) : super(const RoadsterState.loading()) {
12+
on<RoadsterLoadEvent>((event, emit) async {
13+
emit(const RoadsterState.loading());
14+
try {
15+
final roadster = await _repository.getRoadster();
16+
emit(RoadsterState.success(roadster: roadster));
17+
} catch (e) {
18+
emit(const RoadsterState.error());
19+
}
20+
});
21+
}
22+
23+
final RoadsterRepository _repository;
24+
}

0 commit comments

Comments
 (0)