This commit is contained in:
2025-03-23 15:59:46 +02:00
parent e25b3b811e
commit 7eb0eb6c59
2 changed files with 11 additions and 5 deletions

View File

@@ -80,13 +80,17 @@ class AstromicFormController extends FormController {
return true; return true;
} }
/// Prepare a hosted value.
void prepareValue<T>(String id, bool isRequired) {
return _hostedValues.addEntries(<MapEntry<String, (dynamic, bool)>>[MapEntry<String, (dynamic, bool)>(id, (null, isRequired))]);
}
/// Set the value of a hosted state variable using it's ID. /// Set the value of a hosted state variable using it's ID.
void setValue<T>(String id, T data, {bool isRequired = false}) { void setValue<T>(String id, T data, {bool isRequired = false}) {
if (_hostedValues.keys.toList().contains(id)) { if (!_hostedValues.keys.toList().contains(id)) {
_hostedValues[id] = (data, isRequired); prepareValue(id, isRequired);
} else {
_hostedValues.addEntries(<MapEntry<String, (dynamic, bool)>>[MapEntry<String, (dynamic, bool)>(id, (data, isRequired))]);
} }
_hostedValues[id] = (data, isRequired);
_hostedValueValidationStreamController.add((id, false)); _hostedValueValidationStreamController.add((id, false));
} }

View File

@@ -22,6 +22,7 @@ class FormValueWrapper<T extends Object?> extends StatefulWidget {
//SECTION - Widget Arguments //SECTION - Widget Arguments
final AstromicFormController controller; final AstromicFormController controller;
final String id; final String id;
final bool isRequired;
final Widget Function(T? value, bool isErroredForValidation, void Function(T value, bool isRequired) valueSetter) builder; final Widget Function(T? value, bool isErroredForValidation, void Function(T value, bool isRequired) valueSetter) builder;
//!SECTION //!SECTION
// //
@@ -29,6 +30,7 @@ class FormValueWrapper<T extends Object?> extends StatefulWidget {
super.key, super.key,
required this.controller, required this.controller,
required this.id, required this.id,
required this.isRequired,
required this.builder, required this.builder,
}); });
@@ -59,7 +61,7 @@ class _FormValueWrapperState<T> extends State<FormValueWrapper<T>> {
//s1 --State //s1 --State
// //
//s1 --Controllers & Listeners //s1 --Controllers & Listeners
// _formController = widget.controller; widget.controller.prepareValue(widget.id, widget.isRequired);
//s1 --Controllers & Listeners //s1 --Controllers & Listeners
// //
//s1 --Late & Async Initializers //s1 --Late & Async Initializers