From a4741c3137d3e18ba1e9320bd60a069dca44c8df Mon Sep 17 00:00:00 2001 From: "Michael W. Aziz" Date: Wed, 28 May 2025 10:23:20 +0300 Subject: [PATCH] [SYNC] --- lib/src/form/src/controller.dart | 25 ++++++------------- .../src/helpers/controller_groups.helper.dart | 0 .../src/helpers/controller_states.helper.dart | 16 ++++++++++++ .../src/helpers/controller_values.helper.dart | 0 4 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 lib/src/form/src/helpers/controller_groups.helper.dart create mode 100644 lib/src/form/src/helpers/controller_states.helper.dart create mode 100644 lib/src/form/src/helpers/controller_values.helper.dart diff --git a/lib/src/form/src/controller.dart b/lib/src/form/src/controller.dart index 9e44af9..0c45c73 100644 --- a/lib/src/form/src/controller.dart +++ b/lib/src/form/src/controller.dart @@ -17,6 +17,8 @@ import 'models/form_group_structure.model.dart'; import 'models/form_group_value.model.dart'; //s1 Exports +part './helpers/controller_states.helper.dart'; + /// A specialized form controller to handle form states, class AstromicFormController extends FormController { AstromicFormController({ @@ -49,9 +51,13 @@ class AstromicFormController extends FormController { @override void removeController(String id) { super.removeController(id); + + // Remove the field state if (fieldStates.containsKey(id)) { fieldStates.remove(id); } + + // Remove the field message if (fieldMessages.containsKey(id)) { fieldMessages.remove(id); } @@ -68,24 +74,7 @@ class AstromicFormController extends FormController { final Stream>? errorStream; //S1 - Methods - /// Does the controller has a field with this ID. - bool hasKey(String id) => controllers.containsKey(id); - - /// Get the field state and message of a specific field using it's ID. - (AstromicFieldState, String? message)? getState(String fieldId) => (fieldStates.containsKey(fieldId)) ? (fieldStates[fieldId]!, fieldMessages[fieldId]) : null; - - /// Set the field state and message of a specific field using it's ID. - void setState(String fieldId, AstromicFieldState state, {String? message}) { - if (!fieldStates.containsKey(fieldId)) { - throw Exception('The state of the field ID $fieldId does not exist.'); - } - fieldStates[fieldId] = state; - fieldMessages[fieldId] = message; - _stateStreamController.add((fieldId, state)); - } - - /// Reset the state of a specific field using it's ID. - void resetState(String fieldId) => setState(fieldId, AstromicFieldState.idle); + //!SECTION //SECTION - Hosted Values diff --git a/lib/src/form/src/helpers/controller_groups.helper.dart b/lib/src/form/src/helpers/controller_groups.helper.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/src/form/src/helpers/controller_states.helper.dart b/lib/src/form/src/helpers/controller_states.helper.dart new file mode 100644 index 0000000..79f017b --- /dev/null +++ b/lib/src/form/src/helpers/controller_states.helper.dart @@ -0,0 +1,16 @@ +part of '../controller.dart'; +/// Get the field state and message of a specific field using it's ID. + (AstromicFieldState, String? message)? getState(String fieldId) => (fieldStates.containsKey(fieldId)) ? (fieldStates[fieldId]!, fieldMessages[fieldId]) : null; + + /// Set the field state and message of a specific field using it's ID. + void setState(String fieldId, AstromicFieldState state, {String? message}) { + if (!fieldStates.containsKey(fieldId)) { + throw Exception('The state of the field ID $fieldId does not exist.'); + } + fieldStates[fieldId] = state; + fieldMessages[fieldId] = message; + _stateStreamController.add((fieldId, state)); + } + + /// Reset the state of a specific field using it's ID. + void resetState(String fieldId) => setState(fieldId, AstromicFieldState.idle); \ No newline at end of file diff --git a/lib/src/form/src/helpers/controller_values.helper.dart b/lib/src/form/src/helpers/controller_values.helper.dart new file mode 100644 index 0000000..e69de29