bloc_manager 1.5.4
bloc_manager: ^1.5.4 copied to clipboard
Flutter BLoC management package that eliminates boilerplate code with sealed BaseState, BlocManager, and caching/pagination/refresh mixins.
1.5.4 - 2026-06-09 #
Fixed #
BlocManagernow correctly respects the localeffectiveShowSuccessandeffectiveShowErrorsflags before falling back totheme.onSuccessortheme.onError.
1.5.3 - 2026-06-06 #
Fixed #
SuccessStatenow extendsDataState<T>instead ofBaseState<T>, allowing it to inherit and holddata. This preventsBlocManagerfrom clearing out existing data when rendering a success state.
1.5.2 - 2026-06-01 #
Changed #
- Updated
pubspec.yamldescription to be within the recommended 60–180 character limit for pub.dev listings. - Upgraded
blocconstraint to^9.0.0andflutter_blocto^9.0.0to support latest versions. - Upgraded
bloc_testdev dependency to^10.0.0for compatibility with bloc 9.x.
1.5.1 - 2026-06-01 #
Fixed #
BottomSheetLoadingWrapperno longer throws "setState() or markNeedsBuild() called during build" whenloadingWidgetoroverlayColorchanges while the overlay is visible. The overlay rebuild is now deferred to the next frame.
1.5.0 - 2026-06-01 #
Changed #
- Example app switched to dark mode for better loading type testing.
- Updated README with comprehensive documentation for LoadingConfig styles, SkeletonConfig, InlineSkeleton, and all latest features.
1.4.0 - 2026-05-29 #
Added #
- Skeleton loading support with shimmer animation —
BlocManagernow shows skeleton placeholders duringLoadingState/InitialState. SkeletonConfigclass to configure skeleton layout (list, grid, row, wrap), item count, spacing, and shimmer colours.SkeletonListWidget— renders skeleton items in non-scrollable layouts for safe nesting inside any parent widget.BlocManagerThemeData.skeletonBaseColorand.skeletonHighlightColorfor app-wide shimmer colour defaults.BlocManager.skeletonConfig,.skeletonBaseColor,.skeletonHighlightColorproperties for per-instance skeleton configuration.BlocManager.builderproperty — direct state-driven builder replacing the need for a nestedBlocBuilder.showLoadingIndicator: falsesupport — disables the loading overlay when skeletons are used instead.- Comprehensive skeleton demo in
DemoScreenwith list, grid, row, and custom-colour sections. - Custom skeleton widgets for all example screens (
PostCardSkeleton,ProductCardSkeleton,TodoCardSkeleton,PokemonCardSkeleton).
Changed #
- Example screens (
Posts,Products,Todos,Pokemon) now use shimmer skeletons instead ofCircularProgressIndicatorfor loading states. - Status bars and search bars moved outside
BlocManagerin example screens so skeleton only covers the content area. - Nested
BlocBuilderinsideBlocManager.childreplaced withBlocManager.builderproperty throughout example app.
1.3.0 - 2026-05-27 #
Added #
LoadingIndicatorStyleenum withfullScreen(default) andbottomSheetoptions for configurable loading UI.BlocBottomSheetWidget— a bottom-sheet style loading indicator anchored at the bottom of the screen.BlocManagerThemeData.loadingStyle— configure the loading indicator style app-wide.BlocManagerThemeData.bottomSheetTrailingWidget— optional trailing widget for bottom-sheet loading indicators.- Example
DemoScreenshowcasing both full-screen and bottom-sheet loading styles.
Changed #
BlocManagernow respects the configuredloadingStylefrom theme data.TodosScreenin the example app updated to use bottom-sheet loading style.LoadingCardnow usesCircularProgressIndicator.adaptive()for better platform integration.- Wrapped loading container in
Materialwidget to ensure proper styling context.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.2.2 - 2026-03-23 #
Changed #
- Updated package metadata and documentation wording in preparation for republish.
1.2.1 - 2026-03-23 #
Fixed #
BlocManagerloading overlay now keeps a stable widget wrapper and togglesisLoadinginstead of conditionally inserting/removing the wrapper. This prevents child subtree disposal and state loss (for example,TextEditingControllervalues clearing during loading).
1.2.0 – 2026-02-28 #
Added #
- Comprehensive example app with 4 feature tabs demonstrating all bloc_manager capabilities:
- Posts Tab: PaginationBlocMixin with infinite scroll pagination (JSONPlaceholder API)
- Pokemon Tab: CacheableBlocMixin with 10-minute TTL cache and visual "From Cache" badge (PokeAPI)
- Products Tab: RefreshableBlocMixin with pull-to-refresh and 30-second auto-refresh (Fake Store API)
- Todos Tab: All BaseState types with color-coded state banner showing current state (JSONPlaceholder)
- Example app uses real public APIs for production-ready demonstrations
- Updated README with detailed example app documentation and feature breakdown
- Central BlocProvider registry in home screen for clean architecture
Changed #
- TodosCubit: Fixed
toggleTodoanddeleteTodoto re-emit LoadedState after SuccessState, preventing UI data loss - PokemonCubit: Search now checks cache before API call for improved performance
- Improved example app code with inline comments explaining each feature
Fixed #
- Todos list no longer disappears when marking items as completed
- Pokemon cache now shows "From Cache" badge when searching for same Pokemon
1.1.2 – 2026-02-28 #
Changed #
- Moved
BlocManagerThemesection to the top of README for better discoverability. - Added dedicated Contributing section with PR workflow and bug reporting guidance.
1.1.1 – 2026-02-19 #
Changed #
- Updated README with
BlocManagerThemeusage guide,BlocManagerThemeDatafields table, resolution priority chain, and corrected section numbering. - Updated installation snippet to
^1.1.0.
1.1.0 – 2026-02-19 #
Added #
BlocManagerTheme— anInheritedWidgetthat sets app-wide defaults for loading widget, loading colour, error handler, and success handler in one place.BlocManagerThemeData— holds the configuration values.BlocManager.showResultErrorNotificationsandshowResultSuccessNotificationsare nowbool?;nullinherits from the nearestBlocManagerTheme.BlocManagererror/success resolution priority: instance callback → theme callback → built-in snackbar.
1.0.2 – 2026-02-19 #
Changed #
BlocManagernow detects Firebase/Firestore error patterns (missing index, permission denied, document not found) and logs enhanced debug messages automatically.
1.0.1 – 2026-02-19 #
Changed #
- Removed author name from package description (author credits are in README).
- Widened
loading_overlayconstraint to>=0.3.0 <1.0.0to avoid version conflicts with host apps.
1.0.0 – 2026-02-19 #
Added #
BaseState<T>sealed class hierarchy (InitialState,LoadingState,SuccessState,ErrorState,LoadedState,EmptyState, and async variants).BaseCubit<S>andBaseBloc<E,S>withemitLoading(),emitSuccess(),emitError(), andexecuteAsync().BlocManager<B,S>widget wrappingBlocConsumerwith automatic loading overlay, error snackbar, and success snackbar.CacheableBlocMixin– in-memory state caching with TTL support.PaginationBlocMixin– page-based data loading with cursor tracking.RefreshableBlocMixin– pull-to-refresh with cooldown and optional auto-refresh timer.BlocManagerLogger– colour-coded ANSI console logging.- Example counter app under
example/.