|
- 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<DetailStampState> {
- final repository = Repository();
- DetailStampCubit() : super(DetailStampInitial());
-
- Future<void> 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<void> 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,
- );
- }
- }
|