leulit_flutter_actionmanager 3.0.0 copy "leulit_flutter_actionmanager: ^3.0.0" to clipboard
leulit_flutter_actionmanager: ^3.0.0 copied to clipboard

A lightweight, type-safe action dispatcher for Flutter applications. Works seamlessly across all layers - UI, domain, data, and services.

Changelog #

3.0.0 - 2026-02-09 #

🚨 BREAKING CHANGES #

  • Renamed Action class to ActionEvent to avoid naming conflicts with Flutter SDK's built-in Action class
  • This change affects all code that directly instantiates or references the Action class

Why This Change? #

The Flutter SDK includes a built-in Action class in package:flutter/src/widgets/actions.dart. Using a class with the same name in this package could cause naming conflicts and ambiguity in applications that use both Flutter's actions system and this action manager.

Migration Guide #

The ActionManager API remains unchanged. If you were only using the high-level API (ActionManager.dispatch, ActionManager.on, etc.), no changes are needed.

If you were directly instantiating or type-checking against the Action class:

Before:

final action = Action<String>.now(AppAction.test, data: 'test');
if (myVar is Action<String>) { ... }

After:

final action = ActionEvent<String>.now(AppAction.test, data: 'test');
if (myVar is ActionEvent<String>) { ... }

Changed #

  • Renamed Action<T> class to ActionEvent<T>
  • Updated FullActionHandler<T> typedef to use ActionEvent<T>
  • Updated internal references in ActionManager and ActionLogger
  • Updated all tests (48 tests passing)
  • Updated documentation and examples
  • No analysis issues

Fixed #

  • Eliminated potential naming conflicts with Flutter SDK's Action class
  • Improved clarity and semantic meaning of the action event class

2.0.0 - 2026-02-09 #

🚨 BREAKING CHANGES #

  • Renamed ActionDispatcher to ActionManager to avoid naming conflicts with Flutter's built-in ActionDispatcher class
  • Renamed file action_dispatcher.dart to action_manager.dart

Migration Guide #

Simply replace all instances of ActionDispatcher with ActionManager in your code:

Before:

ActionDispatcher.dispatch(AppAction.test);
ActionDispatcher.on<String>(AppAction.test, (data) {});

After:

ActionManager.dispatch(AppAction.test);
ActionManager.on<String>(AppAction.test, (data) {});

Changed #

  • All ActionDispatcher references updated to ActionManager throughout the library
  • Updated all documentation (README.md, project.md)
  • Updated all examples and tests
  • All 48 tests passing
  • No analysis issues

1.0.2 - 2026-02-09 #

Added #

  • Comprehensive test suite with 48 tests covering all library methods
  • Tests for Action class (creation, equality, hashCode, toString)
  • Tests for ActionDispatcher dispatch, registration, and unregistration
  • Tests for reactive streams (listen, stream, streamOf)
  • Tests for metadata and statistics tracking
  • Tests for error handling and resilience
  • Tests for ActionLogger configuration
  • Integration tests for complex workflows

Improved #

  • Enhanced code formatting across all files
  • Better test coverage and reliability
  • Improved documentation in test files

1.0.0 - 2026-02-09 #

Added #

  • Initial release
  • Core ActionDispatcher with enum-based actions
  • Type-safe action handlers
  • Built-in debugging and introspection
  • Reactive StreamSubscription support
  • Comprehensive documentation and examples
  • Unit tests with full coverage
  • Example application demonstrating key features
0
likes
160
points
1.12k
downloads

Publisher

unverified uploader

Weekly Downloads

A lightweight, type-safe action dispatcher for Flutter applications. Works seamlessly across all layers - UI, domain, data, and services.

Repository (GitHub)
View/report issues

Topics

#state-management #architecture #events #actions #dispatcher

Documentation

API reference

License

MIT (license)

Dependencies

flutter, meta

More

Packages that depend on leulit_flutter_actionmanager