This commit is contained in:
2025-04-09 08:57:57 +02:00
parent 69f78baccf
commit 253e0d5512

View File

@@ -1,132 +1,130 @@
// //s1 Imports //s1 Imports
// //s2 Packages //s2 Packages
// //s3 Core Packages //s3 Core Packages
// import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
// import '../../../astromic_helpers.dart'; import '../../../astromic_helpers.dart';
// //s3 Internal Packages //s3 Internal Packages
// // import 'package:astromic_elements/astromic_elements.dart'; // import 'package:astromic_elements/astromic_elements.dart';
// //s3 3rd-party Packages //s3 3rd-party Packages
// //s2 Utility //s2 Utility
// //s3 Configs //s3 Configs
// // import '../../../../../core/configs/routing/routing.config.dart'; // import '../../../../../core/configs/routing/routing.config.dart';
// //s3 Misc //s3 Misc
// //s2 Domain //s2 Domain
// //s3 Entities //s3 Entities
// //s3 Usecases //s3 Usecases
// //s2 Presentation //s2 Presentation
// //s3 Design //s3 Design
// // import '../../../../design-system/design_system.dart'; // import '../../../../design-system/design_system.dart';
// //s3 Presenters //s3 Presenters
// //s3 Widgets //s3 Widgets
// //s1 Exports //s1 Exports
// class FormGroupWrapper extends StatefulWidget { class FormGroupWrapper extends StatefulWidget {
// //SECTION - Widget Arguments //SECTION - Widget Arguments
// final AstromicFormController formController; final AstromicFormController formController;
// final String groupID; final String groupID;
// final Widget Function(List<Widget> children, String Function() addItem, void Function(int) removeItem) groupBuilder; final Widget Function(List<Widget> children, String Function() addItem, void Function(int) removeItem) groupBuilder;
// final Widget Function(int index, String composedID, VoidCallback removeItem) itemBuilder; final Widget Function(int index, String composedID, VoidCallback removeItem) itemBuilder;
// final int startLength; final int startLength;
// final bool isSubGroup; //!SECTION
// //!SECTION //
// // const FormGroupWrapper({
// const FormGroupWrapper({ super.key,
// super.key, required this.formController,
// required this.formController, required this.groupID,
// required this.groupID, required this.groupBuilder,
// required this.groupBuilder, required this.itemBuilder,
// required this.itemBuilder, this.startLength = 0,
// this.isSubGroup = false, });
// this.startLength = 0,
// });
// @override @override
// State<FormGroupWrapper> createState() => _FormGroupWrapperState(); State<FormGroupWrapper> createState() => _FormGroupWrapperState();
// } }
// class _FormGroupWrapperState extends State<FormGroupWrapper> { class _FormGroupWrapperState extends State<FormGroupWrapper> {
// // //
// //SECTION - State Variables //SECTION - State Variables
// //s1 --State //s1 --State
// late List<FormGroupInstance> instances; late List<FormGroupInstance> instances;
// //s1 --State //s1 --State
// // //
// //s1 --Controllers //s1 --Controllers
// //s1 --Controllers //s1 --Controllers
// // //
// //s1 --Constants //s1 --Constants
// //s1 --Constants //s1 --Constants
// //!SECTION //!SECTION
// @override @override
// void initState() { void initState() {
// super.initState(); super.initState();
// // //
// //SECTION - State Variables initializations & Listeners //SECTION - State Variables initializations & Listeners
// //s1 --State //s1 --State
// //s1 --State //s1 --State
// // //
// //s1 --Controllers & Listeners //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 - Stateless functions
//!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
//SECTION - Build Return
return widget.groupBuilder(
// Children
List<Widget>.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; // instances = widget.formController.getFormGroupValue(widget.groupID,isSubGroup: widget.isSubGroup)!.instances;
// //s1 --Controllers & Listeners });
// // }
// //s1 --Late & Async Initializers
// //s1 --Late & Async Initializers
// //!SECTION
// }
// //SECTION - Dumb Widgets @override
// //!SECTION void dispose() {
//SECTION - Disposable variables
// //SECTION - Stateless functions //!SECTION
// //!SECTION super.dispose();
}
// //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
// //SECTION - Build Return
// return widget.groupBuilder(
// // Children
// List<Widget>.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
// }
// 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();
// }
// }