import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:farm_tpf/presentation/screens/codes/models/stamp_timeline.dart'; import '../../../../data/api/app_exception.dart'; import '../../../../data/repository/repository.dart'; import '../../../../utils/utils.dart'; import '../../../custom_widgets/widget_utils.dart'; import '../models/stamp.dart'; part 'detail_stamp_state.dart'; class DetailStampCubit extends Cubit { final repository = Repository(); DetailStampCubit() : super(DetailStampInitial()); Future preparedData(int stampId) async { try { await Future.delayed(const Duration(seconds: 0)); emit(DetailStampLoading()); var stamp = await repository.getStampDetail(id: stampId); var timeline = await repository.getStampTimeline(stampId: stampId); // stampTypeRaws = await repository.stampTypes(); // stampTypes.value = stampTypeRaws // .map( // (e) => ItemDropDown(key: e.id?.toString(), value: e.exampleStampName), // ) // .toList(); emit(DetailStampSuccessful(stamp, timeline)); } catch (e) { emit(DetailStampFailure(AppException.handleError(e))); } } Future updateStampStatus({ required int stampId, required String status, }) async { UtilWidget.showLoading(); await repository.updateStampStatus( (success) { UtilWidget.hideDialog(); Utils.showSnackBarSuccess(); preparedData(stampId); }, (errorMessage) { UtilWidget.hideDialog(); Utils.showSnackBarError(); }, stampId: stampId, status: status, ); } }