proxibuy/lib/presentation/offer/bloc/offer_bloc.dart

25 lines
1.0 KiB
Dart

import 'package:bloc/bloc.dart';
import 'package:proxibuy/presentation/offer/bloc/offer_event.dart';
import 'package:proxibuy/presentation/offer/bloc/offer_state.dart';
class OffersBloc extends Bloc<OffersEvent, OffersState> {
OffersBloc() : super(OffersInitial()) {
on<OffersReceivedFromMqtt>(_onOffersReceivedFromMqtt);
on<ClearOffers>(_onClearOffers);
}
void _onOffersReceivedFromMqtt(
OffersReceivedFromMqtt event,
Emitter<OffersState> emit,
) {
// همیشه حالت موفقیت را با لیست دریافتی منتشر کن (حتی اگر خالی باشد).
// این کار تضمین می‌کند که صفحه از حالت لودینگ خارج می‌شود و رابط کاربری
// آخرین وضعیت (وجود یا عدم وجود تخفیف) را نمایش می‌دهد.
emit(OffersLoadSuccess(event.offers));
}
// برای زمانی که مثلا کاربر GPS را خاموش می‌کند
void _onClearOffers(ClearOffers event, Emitter<OffersState> emit) {
emit(OffersInitial());
}
}