StateSelection<TState extends BlocState> extension

Extension that adds state selection capabilities to JuiceBloc.

State selection allows you to observe only parts of state, avoiding unnecessary widget rebuilds when unrelated state changes.

Example:

// Only emits when count changes
bloc.select((state) => state.count).listen((count) {
  print('Count changed to $count');
});

// Combine multiple selectors
bloc.select((state) => state.user.name).listen((name) {
  print('User name: $name');
});
on

Methods

select<T>(T selector(TState state)) Stream<T>

Available on JuiceBloc<TState>, provided by the StateSelection extension

Returns a stream that only emits when the selected value changes.
selectWith<T>(T selector(TState state), {required bool equals(T previous, T current)}) Stream<T>

Available on JuiceBloc<TState>, provided by the StateSelection extension

Returns a stream that only emits when the selected value changes, using a custom equality function.