broadcast_bloc 0.1.0 copy "broadcast_bloc: ^0.1.0" to clipboard
broadcast_bloc: ^0.1.0 copied to clipboard

An extension to the bloc state management library which adds support for broadcasting state changes to stream channels.

example/main.dart

// ignore_for_file: avoid_print, prefer_file_naming_conventions
import 'dart:async';

import 'package:broadcast_bloc/broadcast_bloc.dart';
import 'package:stream_channel/stream_channel.dart';

class CounterCubit extends BroadcastCubit<int> {
  CounterCubit() : super(0);

  void increment() => emit(state + 1);

  // Optionally override `toMessage` to customize the format
  // of the state before it is broadcast to all subscribers.
  @override
  Object toMessage(int state) => 'count: $state';
}

void main() {
  final controller = StreamController<String>(sync: true);
  final subscription = controller.stream.listen(print);
  final channel = StreamChannel(controller.stream, controller.sink);

  // Create an instance of the cubit.
  final cubit = CounterCubit()
    // Subscribe the channel.
    ..subscribe(channel)
    // Trigger a state change which will be broadcast to subscribed channels.
    ..increment()
    // Unsubscribe channel.
    ..unsubscribe(channel);

  subscription.cancel();
  cubit.close();
}
26
likes
160
points
373
downloads

Publisher

verified publisherfelangel.dev

Weekly Downloads

An extension to the bloc state management library which adds support for broadcasting state changes to stream channels.

Repository (GitHub)
View/report issues

Topics

#bloc #state-management #broadcast #channel

Documentation

Documentation
API reference

Funding

Consider supporting this project:

github.com

License

MIT (license)

Dependencies

bloc, stream_channel

More

Packages that depend on broadcast_bloc