bloc_signals_bloc 1.0.0 copy "bloc_signals_bloc: ^1.0.0" to clipboard
bloc_signals_bloc: ^1.0.0 copied to clipboard

Classic BLoC (package:bloc) interoperability adapters for BlocSignal state containers.

example/example.dart

import 'package:bloc/bloc.dart' as bloc_lib;
import 'package:bloc_signals/bloc_signals.dart';
import 'package:bloc_signals_bloc/bloc_signals_bloc.dart';

sealed class CounterEvent {
  const CounterEvent();
}

final class IncrementEvent extends CounterEvent {
  const IncrementEvent();
}

class ClassicCounterBloc extends bloc_lib.Bloc<CounterEvent, int> {
  ClassicCounterBloc() : super(0) {
    on<IncrementEvent>((event, emit) => emit(state + 1));
  }
}

class ModernCounterBloc extends BlocSignal<CounterEvent, int> {
  ModernCounterBloc() : super(initialState: 0) {
    on<IncrementEvent>((event, emit) => emit(stateValue + 1));
  }
}

void main() async {
  // 1. Classic Bloc -> BlocSignal (Bidirectional)
  final classicBloc = ClassicCounterBloc();
  final blocSignal = classicBloc.toBlocSignal();

  print('Classic -> Signal initial: ${blocSignal.stateValue}');
  blocSignal.add(const IncrementEvent());
  await Future<void>.delayed(Duration.zero);
  print('Classic -> Signal updated: ${blocSignal.stateValue}');

  // 2. Modern BlocSignal -> Classic Bloc
  final modernBloc = ModernCounterBloc();
  final classicAdapter = modernBloc.toClassicBloc();

  print('Signal -> Classic initial: ${classicAdapter.state}');
  classicAdapter.add(const IncrementEvent());
  await Future<void>.delayed(Duration.zero);
  print('Signal -> Classic updated: ${classicAdapter.state}');

  await blocSignal.close();
  await classicAdapter.close();
  await classicBloc.close();
  await modernBloc.close();
}
0
likes
160
points
7
downloads

Documentation

API reference

Publisher

verified publisherstonehenge.com

Weekly Downloads

Classic BLoC (package:bloc) interoperability adapters for BlocSignal state containers.

Repository (GitHub)
View/report issues
Contributing

Topics

#bloc #signals #interop #migration

License

MIT (license)

Dependencies

bloc, bloc_signals, meta, signals_core

More

Packages that depend on bloc_signals_bloc