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 { OffersBloc() : super(OffersInitial()) { on(_onOffersReceivedFromMqtt); on(_onClearOffers); } void _onOffersReceivedFromMqtt( OffersReceivedFromMqtt event, Emitter emit, ) { // همیشه حالت موفقیت را با لیست دریافتی منتشر کن (حتی اگر خالی باشد). // این کار تضمین می‌کند که صفحه از حالت لودینگ خارج می‌شود و رابط کاربری // آخرین وضعیت (وجود یا عدم وجود تخفیف) را نمایش می‌دهد. emit(OffersLoadSuccess(event.offers)); } // برای زمانی که مثلا کاربر GPS را خاموش می‌کند void _onClearOffers(ClearOffers event, Emitter emit) { emit(OffersInitial()); } }