evented_bloc 0.0.2 copy "evented_bloc: ^0.0.2" to clipboard
evented_bloc: ^0.0.2 copied to clipboard

An extension to the bloc state management library which adds support for firing outgoing events from blocs to external listeners.

Evented Bloc

Evented Bloc #

build coverage pub package style: very good analysis License: MIT

An extension to the bloc state management library which adds support for firing outgoing events from blocs to external listeners.

This package is built to work with:

Quick Start 🚀 #

// The event triggered by my BLoC component.
@immutable
class CounterEvent {
  const CounterEvent.incremented() : message = 'Incremented';
  const CounterEvent.decremented() : message = 'Decremented';

  final String message;
}

// Extend `EventedCubit` instead of `Cubit`, or extend standard `Cubit`
// with `EventedMixin<Event, State>`.
// The package also exports: `EventedBloc`
class CounterCubit extends EventedCubit<CounterEvent, int> {
  CounterCubit() : super(0);

  void increment() {
    emit(state + 1);
    // Fire 'IncrementedEvent' through the event stream
    fireEvent(const CounterEvent.incremented());
  }

  void decrement() {
    emit(state - 1);
    // Fire 'DecrementedEvent' through the event stream
    fireEvent(const CounterEvent.decremented());
  }
}

void main() async {
  // Create an instance of the cubit.
  final cubit = CounterCubit();

  // Subscribe the event stream channel.
  final subscription = cubit.eventStream.listen((event) {
    print(event); // 'Incremented'!!
  });

  // Increment
  cubit.increment();
  await Future.delayed(Duration.zero);

  // Dispose
  await subscription.cancel();
  await cubit.close();
}
0
likes
160
pub points
0%
popularity
screenshot

Publisher

verified publisherjovazcode.com

An extension to the bloc state management library which adds support for firing outgoing events from blocs to external listeners.

Repository (GitHub)
View/report issues

Topics

#bloc #events-streaming #outgoing-events #temporary-states

Documentation

API reference

License

MIT (license)

Dependencies

bloc, meta

More

Packages that depend on evented_bloc