bloc 9.0.0
bloc: ^9.0.0 copied to clipboard
A predictable state management library that helps implement the BLoC (Business Logic Component) design pattern.
9.0.0 #
8.1.4 #
- docs: improve diagrams
- chore: update copyright year
- chore: update sponsors
8.1.3 #
8.1.2 #
8.1.1 #
8.1.0 #
8.0.3 #
8.0.2 #
8.0.0 #
- BREAKING: feat: introduce
BlocOverridesAPI (#2932)Bloc.observerremoved in favor ofBlocOverrides.runZonedandBlocOverrides.current.blocObserverBloc.transformerremoved in favor ofBlocOverrides.runZonedandBlocOverrides.current.eventTransformer
- BREAKING: refactor: make
BlocObserveran abstract class - BREAKING: feat:
addthrowsStateErrorwhen bloc is closed (#2912) - BREAKING: feat:
emitthrowsStateErrorwhen bloc is closed (#2913) - BREAKING: feat: improve error handling/reporting
BlocUnhandledErrorExceptionis removed- Uncaught exceptions are always reported to
onErrorand rethrown addErrorreports error toonErrorbut does not propagate as an uncaught exception
- BREAKING: feat: restrict scope of
emitinBlocandCubit- In
Cubit,emitisprotectedso it can only be used within theCubitinstance. - In
Bloc,emitisinternalso it cannot be used outside of the internal package implementation.
- In
- BREAKING: refactor: remove deprecated
TransitionFunction - BREAKING: refactor: remove deprecated
transformEvents - BREAKING: refactor: remove deprecated
mapEventToState - BREAKING: refactor: remove deprecated
transformTransitions - BREAKING: refactor: remove deprecated
listenonBlocBase - feat: throw
StateErrorif an event is added without a registered event handler
8.0.0-dev.5 #
- BREAKING: feat: introduce
BlocOverridesAPI (#2932)Bloc.observerremoved in favor ofBlocOverrides.runZonedandBlocOverrides.current.blocObserverBloc.transformerremoved in favor ofBlocOverrides.runZonedandBlocOverrides.current.eventTransformer
- BREAKING: refactor: make
BlocObserveran abstract class - BREAKING: feat:
addthrowsStateErrorwhen bloc is closed (#2912) - BREAKING: feat:
emitthrowsStateErrorwhen bloc is closed (#2913)
8.0.0-dev.4 #
- BREAKING: feat: improve error handling/reporting
BlocUnhandledErrorExceptionis removed- Uncaught exceptions are always reported to
onErrorand rethrown addErrorreports error toonErrorbut does not propagate as an uncaught exception
8.0.0-dev.3 #
- BREAKING: feat: restrict scope of
emitinBlocandCubit- In
Cubit,emitisprotectedso it can only be used within theCubitinstance. - In
Bloc,emitisinternalso it cannot be used outside of the internal package implementation.
- In
8.0.0-dev.2 #
- BREAKING: refactor: remove deprecated
listenonBlocBase
8.0.0-dev.1 #
- BREAKING: refactor: remove deprecated
TransitionFunction - BREAKING: refactor: remove deprecated
transformEvents - BREAKING: refactor: remove deprecated
mapEventToState - BREAKING: refactor: remove deprecated
transformTransitions - feat: throw
StateErrorif an event is added without a registered event handler
7.2.1 #
- fix:
on<E extends Event>should have anEventTransformer<E>instead ofEventTransformer<Event>
7.2.0 #
- feat: introduce
on<Event>API to register event handlers- by default events are processed concurrently
- feat: introduce
Bloc.transformerAPI to configure the defaultEventTransformer - feat: introduce
Emitter<State>to trigger state changescallto trigger a state change (alignment withCubit)forEachas an analogue forawait foronEachto simplify subscription managementisDoneto abort expensive async operations
- feat: throw
StateErrorifmapEventToStateis used in conjunction withon<Event> - feat: throw
StateErrorif duplicate event handlers are registered - feat: throw
AssertionErrorwhenemitis called in a completedEventHandler - feat: throw
AssertionErrorwhenemit.onEachandemit.forEachare unawaited - DEPRECATE: fix:
mapEventToStatedeprecated in favor ofon<Event> - DEPRECATE: fix:
transformEventsdeprecated in favor ofEventTransformer- use a built in
EventTransformeror define your own
- use a built in
- DEPRECATE: fix:
transformTransitionsdeprecated- override
Stream<State> get streamto modify the outbound stream
- override
7.2.0-dev.3 #
- BREAKING: refactor: require
emit.forEachonDatato be synchronous - refactor: minor internal optimizations in
on<Event>implementation
7.2.0-dev.2 #
- BREAKING: refactor!: make
onDatacallback inemit.onEachandemit.forEachnamed - BREAKING: feat!: rename
emit.isCanceledtoemit.isDoneto encapsulate completion and cancelation - feat: introduce optional
onErrorinemit.onEachandemit.forEach - feat: throw
AssertionErrorwhenemitis called in a completedEventHandler - feat: throw
AssertionErrorwhenemit.onEachandemit.forEachare unawaited - fix:
emit.onEachandemit.forEacherror propagation when stream emits an error
7.2.0-dev.1 #
- feat: introduce
on<Event>API to register event handlers- by default events are processed concurrently
- feat: introduce
Bloc.transformerAPI to configure the defaultEventTransformer - feat: introduce
Emitter<State>to trigger state changescallto trigger a state change (alignment withCubit)forEachas an analogue forawait foronEachto simplify subscription managementisCanceledto abort expensive async operations
- feat: throw
StateErrorifmapEventToStateis used in conjunction withon<Event> - feat: throw
StateErrorif duplicate event handlers are registered - DEPRECATE: fix:
mapEventToStatedeprecated in favor ofon<Event> - DEPRECATE: fix:
transformEventsdeprecated in favor ofEventTransformer- use a built in
EventTransformeror define your own
- use a built in
- DEPRECATE: fix:
transformTransitionsdeprecated- override
Stream<State> get streamto modify the outbound stream
- override
7.1.0 #
- feat: expose
isClosedgetter onBlocBase - refactor: simplify internal event controller initialization
- docs: update
onChangedescription in README - docs: update GetStream sponsorship urls
7.0.0 #
- BREAKING: refactor:
BlocandCubitextendBlocBase- refactor:
void onError(Cubit cubit, Object error, StackTrace stackTrace)->void onError(BlocBase bloc, Object error, StackTrace stackTrace) - refactor:
void onCreate(Cubit cubit)->void onCreate(BlocBase bloc) - refactor:
void onClose(Cubit cubit)->void onClose(BlocBase bloc)
- refactor:
- BREAKING: refactor:
BlocandCubitdo not extendStreamand implementSink- refactor: use
bloc.streamorcubit.streamto accessStream<State>myBloc.map(...)->myBloc.stream.map(...)
- refactor: deprecate
bloc.listenin favor ofbloc.stream.listen
- refactor: use
- BREAKING: refactor:
CubitUnhandledErrorException->BlocUnhandledErrorException - BREAKING: opt into null safety
- feat!: upgrade Dart SDK constraints to
>=2.12.0-0 <3.0.0
- feat!: upgrade Dart SDK constraints to
- fix:
transformEventsmultiple subscriptions issue - test: improve testing for advanced
transformEventsbehavior - chore: bump to
meta: ^1.3.0
7.0.0-nullsafety.4 #
- BREAKING: refactor:
BlocandCubitextendBlocBase- refactor:
void onError(Bloc bloc, Object error, StackTrace stackTrace)->void onError(BlocBase bloc, Object error, StackTrace stackTrace) - refactor:
void onCreate(Bloc bloc)->void onCreate(BlocBase bloc) - refactor:
void onClose(Bloc bloc)->void onClose(BlocBase bloc)
- refactor:
- BREAKING: refactor:
BlocandCubitdo not extendStreamand implementSink- refactor: use
bloc.streamorcubit.streamto accessStream<State>myBloc.map(...)->myBloc.stream.map(...)
- refactor: deprecate
bloc.listenin favor ofbloc.stream.listen
- refactor: use
- BREAKING: revert: refactor:
ChangeandonChangeremoved in favor ofTransitionandonTransition
7.0.0-nullsafety.3 #
- fix:
transformEventsmultiple subscriptions issue - test: improve testing for advanced
transformEventsbehavior
7.0.0-nullsafety.2 #
- chore: bump to
meta: ^1.3.0
7.0.0-nullsafety.1 #
- BREAKING: refactor:
CubitextendsBloc- refactor:
ChangeandonChangeremoved in favor ofTransitionandonTransition - refactor:
void onError(Cubit cubit, Object error, StackTrace stackTrace)->void onError(Bloc bloc, Object error, StackTrace stackTrace) - refactor:
void onCreate(Cubit cubit)->void onCreate(Bloc bloc) - refactor:
void onClose(Cubit cubit)->void onClose(Bloc bloc) - refactor:
CubitUnhandledErrorException->BlocUnhandledErrorException
- refactor:
7.0.0-nullsafety.0 #
- BREAKING: opt into null safety
- feat!: upgrade Dart SDK constraints to
>=2.12.0-0 <3.0.0
6.1.3 #
- fix:
transformEventsmultiple subscriptions issue due tov6.1.2
6.1.2 #
- fix: bloc memory leak due to internal event stream being a broadcast stream
6.1.1 #
- fix:
closeshould always emit done
6.1.0 #
- feat: add
onCreateandonClosetoBlocObserver
6.0.3 #
- docs: README updates to include flow diagrams for
BlocandCubit.
6.0.2 #
- refactor: cubit internal memory and performance optimizations
6.0.1 #
- docs: minor documentation fixes and improvements
6.0.0 #
- BREAKING: do not emit current state on subscription
- BREAKING:
onErrorinBlocObservertakes aCubitas first parameter - BREAKING: allow blocs and cubits to emit the initial state
- feat: include
cubitand remove external dependency on package:cubit- exports class
Cubit - exports class
Change(TransitionforCubit)
- exports class
- feat:
onChangeadded toBlocObserver - refactor: apply additional lint rules
- fix: add
@visibleForTestingtoemiton classCubit - docs: fix inline documentation references
6.0.0-dev.2 #
- fix: add
@visibleForTestingtoemiton classCubit
6.0.0-dev.1 #
- BREAKING: do not emit current state on subscription
- BREAKING:
onErrorinBlocObservertakes aCubitas first parameter - BREAKING: allow blocs and cubits to emit the initial state
- feat: include
cubitand remove external dependency on package:cubit- exports class
Cubit - exports class
Change(TransitionforCubit)
- exports class
- feat:
onChangeadded toBlocObserver - refactor: apply additional lint rules
- docs: fix inline documentation references
5.0.1 #
- fix: upgrade to
cubit ^0.1.2 - docs: minor documentation updates
5.0.0 #
- BREAKING: remove
initialStateoverride in favor of providing the initial state via super (#1304). - BREAKING: Remove
BlocSupervisorand renameBlocDelegatetoBlocObserver. - feat: support
nullstates (#1312). - refactor: bloc to extend cubit rather than
Stream. - feat: ignore newly added events after bloc is closed (#1236).
- feat: add
addErrorto conform toEventSinkinterface. - feat: mark
onError,onTransition,onEventasprotected. - docs: documentation improvements
- docs: logo updates
5.0.0-dev.11 #
- feat: add
addErrorto conform toEventSinkinterface. - feat: mark
onError,onTransition,onEventasprotected.
5.0.0-dev.10 #
- docs: additional minor improvement to bloc logo alignment
5.0.0-dev.9 #
- docs: minor improvement to bloc logo alignment
5.0.0-dev.8 #
- BREAKING: Remove
BlocSupervisorand renameBlocDelegatetoBlocObserver.
5.0.0-dev.6 #
- Additional documentation optimizations.
5.0.0-dev.5 #
- Optimize documentation assets for smaller viewports.
5.0.0-dev.3 #
- Update documentation and static assets.
5.0.0-dev.2 #
- BREAKING: update
initialStateto be a required positional parameter (related issue).
5.0.0-dev.1 #
4.0.0 #
4.0.0-dev.4 #
- Surface Unhandled Bloc Errors in Debug Mode
- Internal testing improvements
4.0.0-dev.3 #
- Add
mustCallSupertoonEvent,onTransition, andonError
4.0.0-dev.2 #
- Fix remove duplicate terminating state
4.0.0-dev.1 #
3.0.0 #
- Upgrade to
rxdart ^0.23.0 - Upgrade to
Dart >= 2.6.0
3.0.0-dev.1 #
- Upgrade to
rxdart ^0.23.0
1.0.1 #
- Bugfix: Exceptions thrown in
onTransitionare passed toonErrorand should not break bloc functionality (#641) - Adhere to effective dart (#561)
- Documentation and Example Updates
1.0.0 #
dispatchanddisposeremoved- Documentation Updates
0.16.1 #
- Minor Documentation Updates
0.16.0 #
0.15.0 #
0.14.4 #
Additional Dependency and Documentation Updates.
0.14.3 #
Dependency and Documentation Updates.
0.14.1 #
Internal BlocDelegate update and Documentation Updates.
0.14.0 #
BlocDelegate initialization improvements and Documentation Updates.
BlocSupervisor().delegate = ...is nowBlocSupervisor.delegate = ...(#304).
0.13.0 #
Bloc and BlocDelegate Improvements, new Features, and Documentation Updates.
- Improved
disposeto ignore pending events (#257). - Exposed
eventstream onBlocsimilar tostatestream to expose aStreamofdispatchedevents (#259). - Update to use
rxdartversion^0.22.0(#265). BlocDelegatemethods include a reference to theBlocinstance (#259).- Added
onEventtoBlocandBlocDelegate(#259).
0.12.0 #
Updated transform to enable advanced event filtering and processing and Documentation Updates.
0.11.2 #
Added BlocDelegate onError and onTransition mustCallSuper and Documentation Updates
0.11.1 #
Added dispose mustCallSuper and Documentation Updates
0.11.0 #
Update mapEventToState to remove unnecessary argument for currentState
Stream<S> mapEventToState(S currentState, E event)->Stream<S> mapEventToState(E event)- Documentation Updates
- Example Updates
0.10.0 #
Updated to rxdart ^0.21.0 and Documentation Updates
0.9.5 #
Minor Enhancements to Code Style and Documentation.
0.9.4 #
Calls to dispatch after dispose has been called trigger onError in the Bloc and BlocDelegate.
0.9.3 #
Restrict rxdart to ">=0.18.1 <0.21.0" due to breaking changes.
0.9.2 #
Additional Minor Updates to Documentation
0.9.1 #
Minor Updates to Documentation
0.9.0 #
Bloc and BlocDelegate Error Handling
- Added
onErrortoBlocfor local error handling. - Added
onErrortoBlocDelegatefor global error handling.
0.8.4 #
Blocs handle exceptions thrown in mapEventToState and documentation updates.
0.8.3 #
Minor Internal Improvements and Documentation Updates
0.8.2 #
Additional Minor Updates to Documentation
0.8.1 #
Minor Updates to Documentation
0.8.0 #
Blocs ignore duplicate states
0.7.8 #
Additional Minor Updates to Documentation
0.7.7 #
Additional Minor Updates to Documentation
0.7.6 #
Minor Updates to Documentation
0.7.5 #
Exposed currentState in Bloc
- Updates to Documentation.
0.7.4 #
Updated mapEventToState parameter name
Stream<S> mapEventToState(S state, E event)->Stream<S> mapEventToState(S currentState, E event)- Updates to Documentation.
- Updates to Example.
0.7.3 #
Minor Updates to Documentation
0.7.2 #
Transition Fix
BlocwithmapEventToStatewhich returns multiple states per event will now correctly report theTransitions.
0.7.1 #
Improvements to Bloc usage in pure Dart applications.
Blocstate is seeded withinitialStateautomatically
0.7.0 #
Added BlocSupervisor and BlocDelegate.
BlocSupervisornotifiesBlocDelegateofTransitionsBlocDelegateexposesonTransitionwhich is invoked for allBlocTransitions.
0.6.0 #
Transitions and initialState updates.
- Added
Transitions andonTransition - Made
initialStaterequired
0.5.2 #
Additional minor Updates to Documentation.
0.5.1 #
Minor Updates to Documentation
0.5.0 #
Moved Flutter Widgets to flutter_bloc package
0.4.2 #
Additional minor Updates to Documentation.
0.4.1 #
Minor Updates to Documentation.
0.4.0 #
Added BlocProvider.
BlocProvider.of(context)- Updates to Documentation.
- Updates to Example.
0.3.0 #
Updated mapEventToState to take current state as an argument.
Stream<S> mapEventToState(E event)->Stream<S> mapEventToState(S state, E event)- Updates to Documentation.
- Updates to Example.
0.2.5 #
Additional Minor Updates to Documentation.
0.2.4 #
Additional Minor Updates to Documentation.
0.2.3 #
Additional Minor Updates to Documentation.
0.2.2 #
Additional Minor Updates to Documentation.
0.2.1 #
Minor Updates to Documentation.
0.2.0 #
Added Support for Stream Transformation
- Includes
Stream<E> transform(Stream<E> events) - Updates to Documentation
0.1.2 #
Additional Minor Updates to Documentation.
0.1.1 #
Minor Updates to Documentation.
0.1.0 #
Initial Version of the library.
- Includes the ability to create a custom Bloc by extending
Blocclass. - Includes the ability to connect presentation layer to
Blocby using theBlocBuilderWidget.



