30 lines
780 B
Dart
Raw Normal View History

2024-11-28 15:46:10 +04:00
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:pmd_lab/presentation/home_page/bloc/events.dart';
import 'package:pmd_lab/presentation/home_page/bloc/state.dart';
2024-12-20 16:09:01 +04:00
import 'package:pmd_lab/repositories/titans_repository.dart';
2024-11-28 15:46:10 +04:00
class HomeBloc extends Bloc<HomeEvent, HomeState> {
2024-12-20 16:09:01 +04:00
final TitansRepository repo;
2024-11-28 15:46:10 +04:00
HomeBloc(this.repo) : super(const HomeState()) {
on<HomeLoadDataEvent>(_onLoadData);
}
Future<void> _onLoadData(HomeLoadDataEvent event, Emitter<HomeState> emit) async {
2024-12-17 11:50:32 +04:00
emit(state.copyWith(isLoading: true));
2024-11-28 15:46:10 +04:00
2024-12-17 11:50:32 +04:00
String? error;
2024-12-20 16:09:01 +04:00
final data = await repo.loadResults(
2024-12-17 11:50:32 +04:00
q: event.search,
onError: (e) => error = e,
);
2024-11-28 15:46:10 +04:00
emit(state.copyWith(
isLoading: false,
data: data,
2024-12-17 11:50:32 +04:00
error: error,
2024-11-28 15:46:10 +04:00
));
}
}