go_form 1.2.0
go_form: ^1.2.0 copied to clipboard
A generic controller for managing state and validation of input fields in Flutter. Supports initial value, validation, errors, and focus.
1.2.0 - 2025-03-09 #
New Features #
-
Added methods for subscribing to form validation state changes:
addValidationListener(void Function(bool) listener)– allows subscribing to form validation state changes (valid/invalid).removeValidationListener(void Function(bool) listener)– removes a previously added validation listener.
-
Added a new method in
FieldController:silentValidate()– performs field validation without setting an error and returnstrueif the field is valid orfalseif there is an error.
1.1.0 - 2025-02-28 #
Added #
- Getter
errorsKey: Returns aList<Key?>containing all elements with validation errors. - Method
firstFieldKey: Returns theKeyof the first element in_fields, ornullif_fieldsis empty. - Method
scrollToFirstField(): Automatically scrolls to the first field in_fieldsand requests focus. - Method
scrollToFirstErrorField(): Scrolls to the first field with an error and requests focus. - Improved validation handling: now it's easier to locate and scroll to invalid fields.
Fixed #
- Resolved potential issues with
Keyhandling in forms.
Usage #
Scroll to the first field
You can now automatically scroll to the first field in _fields:
scrollToFirstField();
1.0.0 - 2025-02-24 #
New Features #
- Added documentation – full README with examples, API descriptions, and usage instructions.
- Added support for
key– now widgets can be identified more easily in tests.
Improvements #
- Optimized
dispose()inFormController– resources are now properly cleaned up. - Enhanced handling of
keyproperties – fields can now use keys for better identification. - Optimized UI re-rendering – reduced unnecessary rebuilds.
Bug Fixes #
- Fixed memory leak issues related to
dispose(). - Fixed test failures caused by missing
keyproperties. - Improved error handling in form validation.
Developer Experience #
- Added full documentation – with examples, project structure, and best practices.
- Added new tests – improved unit and widget test coverage.
- Cleaner and more efficient code – improved architecture and optimized UI updates.
0.3.1 - 2025-01-29 #
Added #
- Introduced a named constructor
DynamicForm.separator, allowing the use ofseparatorBuilderfor custom separators between form fields. - If
separatorBuilderis provided, it will be used instead of the defaultSizedBox(height: fieldSpacing), offering greater flexibility in UI customization.
Example: #
DynamicForm.separator(
fields: myFields,
controller: myController,
separatorBuilder: (context, index) => Divider(),
);
0.2.2 - 2024-12-04 #
Fixes #
- Fixed the "name field is already in use" issue.
- Disabled protection against duplicate field creation.
0.2.0 - 2024-12-02 #
Added #
- Listener support: Introduced the ability to add, remove, and check listeners for
FieldControllerandFormController.- New methods in
FormController:addListener(String name, VoidCallback listener): Attach a listener to a specific field.removeListener(String name, VoidCallback listener): Detach a listener from a specific field.hasListener(String name): Check if a field has listeners attached.
- Enhancements to
FieldController:- Stores and triggers custom listeners on value changes.
- Exposes
hasListenersto check if listeners are registered.
- New methods in
0.1.1 - 2024-11-22 #
Fixed #
- Fixed an issue with generic type mismatch causing override errors in
FormFieldModelBase.build.
0.1.0 #
- Added
FieldControllerfor form field state management. - Support for
TextFormFieldsynchronization viaTextEditingController. - Added
setValuemethod toFieldControllerfor programmatically updating field values. - Built-in validation and error handling.
0.0.2 #
- Initial release of the
go_formplugin.
0.0.1 #
- Initial release of the
go_formplugin. - Key features:
- Form controller