diff --git a/lib/src/form/src/form_group_wrapper.dart b/lib/src/form/src/form_group_wrapper.dart index 5391545..54f74ee 100644 --- a/lib/src/form/src/form_group_wrapper.dart +++ b/lib/src/form/src/form_group_wrapper.dart @@ -1,132 +1,130 @@ -// //s1 Imports -// //s2 Packages -// //s3 Core Packages -// import 'package:flutter/material.dart'; +//s1 Imports +//s2 Packages +//s3 Core Packages +import 'package:flutter/material.dart'; -// import '../../../astromic_helpers.dart'; -// //s3 Internal Packages -// // import 'package:astromic_elements/astromic_elements.dart'; -// //s3 3rd-party Packages -// //s2 Utility -// //s3 Configs -// // import '../../../../../core/configs/routing/routing.config.dart'; -// //s3 Misc -// //s2 Domain -// //s3 Entities -// //s3 Usecases -// //s2 Presentation -// //s3 Design -// // import '../../../../design-system/design_system.dart'; -// //s3 Presenters -// //s3 Widgets -// //s1 Exports +import '../../../astromic_helpers.dart'; +//s3 Internal Packages +// import 'package:astromic_elements/astromic_elements.dart'; +//s3 3rd-party Packages +//s2 Utility +//s3 Configs +// import '../../../../../core/configs/routing/routing.config.dart'; +//s3 Misc +//s2 Domain +//s3 Entities +//s3 Usecases +//s2 Presentation +//s3 Design +// import '../../../../design-system/design_system.dart'; +//s3 Presenters +//s3 Widgets +//s1 Exports -// class FormGroupWrapper extends StatefulWidget { -// //SECTION - Widget Arguments -// final AstromicFormController formController; -// final String groupID; -// final Widget Function(List children, String Function() addItem, void Function(int) removeItem) groupBuilder; -// final Widget Function(int index, String composedID, VoidCallback removeItem) itemBuilder; -// final int startLength; -// final bool isSubGroup; -// //!SECTION -// // -// const FormGroupWrapper({ -// super.key, -// required this.formController, -// required this.groupID, -// required this.groupBuilder, -// required this.itemBuilder, -// this.isSubGroup = false, -// this.startLength = 0, -// }); +class FormGroupWrapper extends StatefulWidget { + //SECTION - Widget Arguments + final AstromicFormController formController; + final String groupID; + final Widget Function(List children, String Function() addItem, void Function(int) removeItem) groupBuilder; + final Widget Function(int index, String composedID, VoidCallback removeItem) itemBuilder; + final int startLength; + //!SECTION + // + const FormGroupWrapper({ + super.key, + required this.formController, + required this.groupID, + required this.groupBuilder, + required this.itemBuilder, + this.startLength = 0, + }); -// @override -// State createState() => _FormGroupWrapperState(); -// } + @override + State createState() => _FormGroupWrapperState(); +} -// class _FormGroupWrapperState extends State { -// // -// //SECTION - State Variables -// //s1 --State -// late List instances; -// //s1 --State -// // -// //s1 --Controllers -// //s1 --Controllers -// // -// //s1 --Constants -// //s1 --Constants -// //!SECTION +class _FormGroupWrapperState extends State { + // + //SECTION - State Variables + //s1 --State + late List instances; + //s1 --State + // + //s1 --Controllers + //s1 --Controllers + // + //s1 --Constants + //s1 --Constants + //!SECTION -// @override -// void initState() { -// super.initState(); -// // -// //SECTION - State Variables initializations & Listeners -// //s1 --State -// //s1 --State -// // -// //s1 --Controllers & Listeners -// instances = widget.formController.getFormGroupValue(widget.groupID, isSubGroup: widget.isSubGroup)!.instances; -// //s1 --Controllers & Listeners -// // -// //s1 --Late & Async Initializers -// //s1 --Late & Async Initializers -// //!SECTION -// } + @override + void initState() { + super.initState(); + // + //SECTION - State Variables initializations & Listeners + //s1 --State + //s1 --State + // + //s1 --Controllers & Listeners + instances = widget.formController.getFormGroupValue(widget.groupID)!.instances; + //s1 --Controllers & Listeners + // + //s1 --Late & Async Initializers + //s1 --Late & Async Initializers + //!SECTION + } -// //SECTION - Dumb Widgets -// //!SECTION + //SECTION - Dumb Widgets + //!SECTION -// //SECTION - Stateless functions -// //!SECTION + //SECTION - Stateless functions + //!SECTION -// //SECTION - Action Callbacks -// //!SECTION + //SECTION - Action Callbacks + //!SECTION -// @override -// Widget build(BuildContext context) { -// //SECTION - Build Setup -// //s1 --Values -// //double w = MediaQuery.of(context).size.width; -// //double h = MediaQuery.of(context).size.height; -// //s1 --Values -// // -// //s1 --Contexted Widgets -// //s1 --Contexted Widgets -// //!SECTION + @override + Widget build(BuildContext context) { + //SECTION - Build Setup + //s1 --Values + //double w = MediaQuery.of(context).size.width; + //double h = MediaQuery.of(context).size.height; + //s1 --Values + // + //s1 --Contexted Widgets + //s1 --Contexted Widgets + //!SECTION -// //SECTION - Build Return -// return widget.groupBuilder( -// // Children -// List.generate(instances.length, (int i) => widget.itemBuilder(i, instances[i].composedID, () => _removeItem(i))), -// // Add Callback -// () { -// String id = ''; -// setState(() { -// // id = widget.formController.addInstanceToFormGroup(widget.groupID,isSubGroup: widget.isSubGroup); -// // instances = widget.formController.getFormGroupValue(widget.groupID,isSubGroup: widget.isSubGroup)!.instances; -// }); -// return id; -// }, -// // Remove Callback -// (int i) => _removeItem(i), -// ); -// //!SECTION -// } + //SECTION - Build Return + return widget.groupBuilder( + // Children + List.generate(instances.length, (int i) => widget.itemBuilder(i, instances[i].composedID, () => _removeItem(i))), + // Add Callback + () { + String id = ''; + setState(() { + id = widget.formController.addInstanceToFormGroup(widget.groupID); + instances = widget.formController.getFormGroupValue(widget.groupID)!.instances; + }); + return id; + }, + // Remove Callback + (int i) => _removeItem(i), + ); + //!SECTION + } -// void _removeItem(int i) { -// setState(() { -// // widget.formController.removeInstanceFromFormGroup(widget.groupID, i,isSubGroup: widget.isSubGroup); -// // instances = widget.formController.getFormGroupValue(widget.groupID,isSubGroup: widget.isSubGroup)!.instances; -// }); -// } + void _removeItem(int i) { + setState(() { + // widget.formController.removeInstanceFromFormGroup(widget.groupID, i,isSubGroup: widget.isSubGroup); + // instances = widget.formController.getFormGroupValue(widget.groupID,isSubGroup: widget.isSubGroup)!.instances; + }); + } -// @override -// void dispose() { -// //SECTION - Disposable variables -// //!SECTION -// super.dispose(); -// } -// } + @override + void dispose() { + //SECTION - Disposable variables + //!SECTION + super.dispose(); + } +}