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
150
points
38
downloads
screenshot

Publisher

verified publisherjovazcode.com

Weekly Downloads

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