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;
}
/// 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.
void setValue<T>(String id, T data, {bool isRequired = false}) {
if (_hostedValues.keys.toList().contains(id)) {
_hostedValues[id] = (data, isRequired);
} else {
_hostedValues.addEntries(<MapEntry<String, (dynamic, bool)>>[MapEntry<String, (dynamic, bool)>(id, (data, isRequired))]);
if (!_hostedValues.keys.toList().contains(id)) {
prepareValue(id, isRequired);
}
_hostedValues[id] = (data, isRequired);
_hostedValueValidationStreamController.add((id, false));
}

View File

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