From 9643ba5d1a723703a5ddef7e8df61492ed8dc78b Mon Sep 17 00:00:00 2001 From: Michael Aziz Date: Tue, 15 Apr 2025 15:41:55 +0200 Subject: [PATCH 1/4] [SYNC] --- lib/src/form/src/controller.dart | 22 ++++++++++------------ lib/src/form/src/form_value_wrapper.dart | 4 ++-- 2 files changed, 12 insertions(+), 14 deletions(-) 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 From 4c67df0254b2e27a66b6bc53b595bd075eb91651 Mon Sep 17 00:00:00 2001 From: Michael Aziz Date: Tue, 15 Apr 2025 15:53:04 +0200 Subject: [PATCH 2/4] [SYNC] --- lib/src/form/src/form_value_wrapper.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/src/form/src/form_value_wrapper.dart b/lib/src/form/src/form_value_wrapper.dart index 134102e..9fb157f 100644 --- a/lib/src/form/src/form_value_wrapper.dart +++ b/lib/src/form/src/form_value_wrapper.dart @@ -23,7 +23,7 @@ class FormValueWrapper extends StatefulWidget { final AstromicFormController controller; final String id; final bool isRequired; - final Widget Function(T? value, bool isErroredForValidation, void Function(T value) valueSetter, VoidCallback valueClear) builder; + final Widget Function(T? value, bool isErroredForValidation, void Function(T? value) valueSetter, VoidCallback valueClear) builder; //!SECTION // const FormValueWrapper({ @@ -109,7 +109,7 @@ class _FormValueWrapperState extends State> { stream: widget.controller.hostedValueValidationStream, 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) { + validationSnapshot.hasData && validationSnapshot.data != null && validationSnapshot.data!.$1 == widget.id && validationSnapshot.data!.$2 ? true : false, (T? newValue) { return widget.controller.setValue(widget.id, newValue); }, () => widget.controller.removeValue(widget.id)); }); From ea7b3722fb585b6844ca8d3fce350c75196321a8 Mon Sep 17 00:00:00 2001 From: Michael Aziz Date: Tue, 15 Apr 2025 16:10:28 +0200 Subject: [PATCH 3/4] [SYNC] --- lib/src/form/src/form_value_wrapper.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/src/form/src/form_value_wrapper.dart b/lib/src/form/src/form_value_wrapper.dart index 9fb157f..1e0d7b2 100644 --- a/lib/src/form/src/form_value_wrapper.dart +++ b/lib/src/form/src/form_value_wrapper.dart @@ -61,7 +61,9 @@ class _FormValueWrapperState extends State> { //s1 --State // //s1 --Controllers & Listeners - widget.controller.setValue(widget.id, null, isRequired: widget.isRequired); + if (!widget.controller.allValues.keys.contains(widget.id)) { + widget.controller.setValue(widget.id, null, isRequired: widget.isRequired); + } //s1 --Controllers & Listeners // //s1 --Late & Async Initializers From ac97305370ebba433d726642eb2311405ac18ee0 Mon Sep 17 00:00:00 2001 From: Michael Aziz Date: Wed, 16 Apr 2025 02:38:55 +0200 Subject: [PATCH 4/4] [SYNC] --- lib/src/presenting/src/widgets/future_presenter.widget.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/presenting/src/widgets/future_presenter.widget.dart b/lib/src/presenting/src/widgets/future_presenter.widget.dart index f3d6d9e..e0ddec8 100644 --- a/lib/src/presenting/src/widgets/future_presenter.widget.dart +++ b/lib/src/presenting/src/widgets/future_presenter.widget.dart @@ -128,7 +128,7 @@ class _AstromicFuturePresenterState extends State> //S1 -- Method to reinitialize or update `_future` with a new instance void _initializeFuture() { - _future = widget.controller.getFuture(widget.id)?.then((result) => result); + _future = widget.controller.getFuture(widget.id)?.then((dynamic result) => result as T?); } //!SECTION