You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.5 KiB
47 lines
1.5 KiB
import 'dart:async';
|
|
import 'package:bloc/bloc.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:go_router/go_router.dart';
|
|
import 'package:hadi_hoda_flutter/core/routers/my_routes.dart';
|
|
import 'package:hadi_hoda_flutter/core/status/base_status.dart';
|
|
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart';
|
|
import 'package:hadi_hoda_flutter/features/home/domain/usecases/get_home_usecase.dart';
|
|
import 'package:hadi_hoda_flutter/features/home/presentation/bloc/home_event.dart';
|
|
import 'package:hadi_hoda_flutter/features/home/presentation/bloc/home_state.dart';
|
|
|
|
class HomeBloc extends Bloc<HomeEvent, HomeState> {
|
|
/// ------------constructor------------
|
|
HomeBloc(
|
|
this._getHomeUseCase,
|
|
) : super(const HomeState()) {
|
|
on<GetHomeEvent>(_getHomeEvent);
|
|
}
|
|
|
|
/// ------------UseCases------------
|
|
final GetHomeUseCase _getHomeUseCase;
|
|
|
|
/// ------------Variables------------
|
|
|
|
/// ------------Controllers------------
|
|
|
|
/// ------------Functions------------
|
|
void goToLevelPage(BuildContext context){
|
|
context.go(Routes.levelPage);
|
|
}
|
|
|
|
/// ------------Api Calls------------
|
|
FutureOr<void> _getHomeEvent(event, emit) async {
|
|
await _getHomeUseCase(event.homeParams).then(
|
|
(value) {
|
|
value.fold(
|
|
(data) {
|
|
emit(state.copyWith(getHomeStatus: BaseComplete<HomeEntity>(data)));
|
|
},
|
|
(error) {
|
|
emit(state.copyWith(getHomeStatus: BaseError(error.errorMessage)));
|
|
},
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|