Skip to content

3.0.0 (Beta 1) - #22

Merged
jshep23 merged 6 commits into
mainfrom
3.0.0-beta-1
Apr 28, 2026
Merged

jshep23 merged 6 commits into
mainfrom
3.0.0-beta-1

Conversation

@jshep23

@jshep23 jshep23 commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

This pull request introduces the 3.0.0-beta-1 release of the package, delivering a major update with significant new features, a revamped validation and controller API, expanded documentation, and several breaking changes. The README has been thoroughly rewritten with new examples and guidance, and a new changelog entry details all updates. Additionally, API documentation assets have been updated.

Major features and breaking changes:

  • Updated the minimum Flutter SDK constraint to >=3.38.0
  • Introduced a new CurrentTextController API for two-way binding.
  • Introduced a comprehensive issue-based validation framework with new types and helpers.
  • Several breaking changes including: property equality, state change subscriptions, collection dirty tracking, and view model lifecycle semantics.

Documentation and example improvements:

  • Completely rewrote the README.md to provide:
    • Modernized quick start and advanced usage examples, including new patterns for typed properties, validation, and controller binding.
    • In-depth guidance on forms and validation, including when to use CurrentTextFormField, native TextFormField with formValidator, or CurrentTextField.
    • Updated application-wide state management examples and best practices.
    • Expanded contribution guidelines and clarified project standards.
    • References to a new mission-control showcase app in the example directory.
    • API Documentation thoroughly updated to include the new and changed APIs

jshep23 added 5 commits April 18, 2026 12:47
* Added option to allow reassigning an existing view model to an new instance of a widget

* Assign the ViewModel to the hash of the state instead of the CurrentWidget

* Fix assignedTo check in ViewModel

* Update the already assigned exception to explain steps the user can take to support reassignment of view models

* Grammar...

* Grammar...

* Format exception message

* Add documentation to CurrentState

* Allow setting CurrentProperty by directly setting the value
* Changed StateChanged Stream to a single Event broadcaster

Added listenable support to busy status changes

* Updated example app to use new state changes

* Expand ErrorEvent handling options. Allow specific subscribing, and handling internal errors

* Add error handling example to example application

* Added isDirty property. Added factory shorthands for current specific primary property types

* Export CurrentClonable

* Update example view model to use new shorthand factory

* Added calculated isDirty getter to CurrentViewModel

* Add tests for isDirty prop

* Add docs to new BusyStatusChanged event
* Implemented controller. Fixed vm reset not clearing busy status.

* Added CurrentTextController to Example project

* Fix type check on date time controller

* Fix default value, and hash equality assignments and checks

* Updated text field carrot snapback to select text when backspacing on a non-null field

* Fix date time asString when cant be parsed. added tests for other supported types

* Fix issue when resetting view model or using setMultiple manually. add test

* Update example. Added missing test.

* Clean up

* Make example page scrollable

* Add seperate custom and any state change listener

* Add seperate custom and any error event listeners

* Fix issue where lists and maps marked as dirty on initial set.

* Fixed an issue where calling resetAll on the view model behaved differently for lists and maps

* Report prop name and hash on list/map change. report inserted item instead of whole list. added tests

* Optionally allow external / parent widget to handle viewmodel lifecycle.

* Fix issue where setMultiple always issued notifications, even if nothing actually changed.

* Update value equality implementation. This fixes issues with map keys, and odd comparison results. Updated stale test descriptions.

* deprecated math functions on int property (generics were odd since you can't impl num)

* added tests for the new int property functions.

* added tests to cover null scenarios in double property math functions
* Clean up statle documentation

* added current validation state. added additive extension (nonbreaking).

* add docs to new current validation classes. fix docs in view model. export current validation

* add some docs around the _omitted internal variable. added unit tests

* progress on integrating current validation with new current text controller.

* Add option to localize default validation errors

* Add additional docs to the current text controller

* update core web files for example app

* Progress on new space themed example app. added logos. removed old example page

* added flight forms page. redfactored app view model

* added launch missing, map and telemetry examples

* added widget tests

* add third version branding

* Move viewmodels out of widget pages

* clean up

* clean up

* clean up

* add code examples to example app. add link to third version website

* Restructure validation results to produce typed issues. This is to support localization without coupling ui to view models

* Update Readmes

* Change current validation to explicit opt in. Reduces footguns. Update docs and examples.

* clean up example propery initialization

* Clean up validation registration. better support context based localization

* Remove unused mixin. Remove tests

* Tie validation execution to TextFormFields. Added convenience Current text widgets without losing native support

* Added tests for text form field integration

* Update readme

* add convenience setter functions for various properties

* Rename factories on CurrentTextController for consistency
* bump version, generate docs

* Add changelog entry
* Add type specific controllers to tighten api around binding

* update documentation
@jshep23
jshep23 merged commit ebe7531 into main Apr 28, 2026
1 check passed
@jshep23
jshep23 deleted the 3.0.0-beta-1 branch April 28, 2026 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants