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.

39 lines
1.3KB

  1. import 'package:bloc/bloc.dart';
  2. import 'package:dio/dio.dart';
  3. import 'package:equatable/equatable.dart';
  4. import 'package:farm_tpf/custom_model/action_form/ActionUIForm.dart';
  5. import 'package:farm_tpf/custom_model/action_form/RequestActivity.dart';
  6. import 'package:farm_tpf/data/api/app_exception.dart';
  7. import 'package:farm_tpf/data/repository/repository.dart';
  8. import 'package:meta/meta.dart';
  9. part 'action_ui_state.dart';
  10. class ActionUiCubit extends Cubit<ActionUiState> {
  11. final Repository repository;
  12. ActionUiCubit({required this.repository}) : super(ActionUiInitial());
  13. Future<void> getActionUIForm({
  14. required bool isEdit,
  15. required int actionId,
  16. required int activityId,
  17. }) async {
  18. try {
  19. emit(ActionUiLoading());
  20. var actionDetail = RequestActivity();
  21. var actionUIForm = await repository.getActionUIForm(idAction: actionId);
  22. if (isEdit) {
  23. try {
  24. actionDetail = await repository.detailCommonAction(activityId: activityId);
  25. print(actionDetail);
  26. } catch (e) {
  27. print(e);
  28. }
  29. }
  30. emit(ActionUiSuccess(actionUIForm: actionUIForm, activityDetail: actionDetail));
  31. } on DioError catch (e) {
  32. emit(ActionUiFailure(errorString: AppException.handleError(e)));
  33. }
  34. }
  35. }