25 lines
1.0 KiB
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());
|
|
}
|
|
} |