diff --git a/lib/src/form/src/controller.dart b/lib/src/form/src/controller.dart index dafa833..65d4893 100644 --- a/lib/src/form/src/controller.dart +++ b/lib/src/form/src/controller.dart @@ -96,15 +96,8 @@ class AstromicFormController extends FormController { //S1 - Methods - /// Prepare a hosted value. - void prepareValue(String id, bool isRequired) { - if (!_hostedValues.keys.toList().contains(id)) { - return _hostedValues.addEntries(>[MapEntry(id, (null, isRequired))]); - } - } - /// Get all the hosted values IDs. - Map get allValues => _hostedValues; + Map get allValues => _hostedValues; /// Get the value of a hosted state variable using it's ID. T? getValue(String id) { @@ -120,11 +113,16 @@ class AstromicFormController extends FormController { } /// Set the value of a hosted state variable using it's ID. - void setValue(String id, T data, {bool isRequired = false}) { - prepareValue(id, isRequired); + void setValue(String id, T? data, {bool isRequired = false}) { + if (!_hostedValues.keys.toList().contains(id)) { + return _hostedValues.addEntries(>[MapEntry(id, (null, isRequired))]); + } // - _hostedValues[id] = (data, _hostedValues[id]!.$2); - _hostedValueValidationStreamController.add((id, false)); + else { + bool isReq = _hostedValues[id]!.$2; + _hostedValues[id] = (data, isReq); + _hostedValueValidationStreamController.add((id, false)); + } } /// Remove the value of a hosted state variable using it's ID. diff --git a/lib/src/form/src/form_value_wrapper.dart b/lib/src/form/src/form_value_wrapper.dart index 923094d..134102e 100644 --- a/lib/src/form/src/form_value_wrapper.dart +++ b/lib/src/form/src/form_value_wrapper.dart @@ -61,7 +61,7 @@ class _FormValueWrapperState extends State> { //s1 --State // //s1 --Controllers & Listeners - widget.controller.prepareValue(widget.id, widget.isRequired); + widget.controller.setValue(widget.id, null, isRequired: widget.isRequired); //s1 --Controllers & Listeners // //s1 --Late & Async Initializers @@ -110,7 +110,7 @@ class _FormValueWrapperState extends State> { builder: (BuildContext context, AsyncSnapshot<(String, bool)> validationSnapshot) { return widget.builder(widget.controller.getValue(widget.id), validationSnapshot.hasData && validationSnapshot.data != null && validationSnapshot.data!.$1 == widget.id && validationSnapshot.data!.$2 ? true : false, (T newValue) { - return widget.controller.setValue(widget.id, newValue, isRequired: widget.isRequired); + return widget.controller.setValue(widget.id, newValue); }, () => widget.controller.removeValue(widget.id)); }); //!SECTION