refactor: update text form field model to use dynamic value type, enhance condition evaluator for step index extraction, and improve SDK path formatting

This commit is contained in:
2026-01-07 15:57:01 +03:30
parent 17f8a2d79b
commit f25b8514cd
10 changed files with 568 additions and 1589 deletions

View File

@@ -41,9 +41,7 @@ class NewPageLogic extends GetxController {
// Check if info has type field (meaning it's the SDUI structure itself)
if (infoMap.containsKey('type')) {
sduiData = infoMap;
iLog(
'SDUI data extracted from info (info contains type field)',
);
iLog('SDUI data extracted from info (info contains type field)');
} else if (infoMap['data'] != null) {
// Fallback: if info.data exists, use it
sduiData = infoMap['data'] as Map<String, dynamic>;
@@ -64,16 +62,12 @@ class NewPageLogic extends GetxController {
// Log model info using pattern matching
final modelType =
sduiModel.value?.maybeWhen(
textFormField: (data, visible, visibleCondition) =>
'text_form_field',
cardLabelItem:
(data, child, children, visible, visibleCondition) =>
'card_label_item',
chipSelection: (data, visible, visibleCondition) =>
'chip_selection',
textFormField: (data, visible, visibleCondition) => 'text_form_field',
cardLabelItem: (data, child, children, visible, visibleCondition) =>
'card_label_item',
chipSelection: (data, visible, visibleCondition) => 'chip_selection',
dropdown: (data, visible, visibleCondition) => 'dropdown',
imagePicker: (data, visible, visibleCondition) =>
'image_picker',
imagePicker: (data, visible, visibleCondition) => 'image_picker',
column:
(
children,
@@ -85,20 +79,10 @@ class NewPageLogic extends GetxController {
paddingVertical,
visibleCondition,
) => 'column',
row:
(
children,
spacing,
mainAxisAlignment,
visible,
visibleCondition,
) => 'row',
sizedBox: (width, height, visible, visibleCondition) =>
'sized_box',
stepper: (data, children, visible, visibleCondition) =>
'stepper',
pageView: (data, children, visible, visibleCondition) =>
'page_view',
row: (children, spacing, mainAxisAlignment, visible, visibleCondition) => 'row',
sizedBox: (width, height, visible, visibleCondition) => 'sized_box',
stepper: (data, children, visible, visibleCondition) => 'stepper',
pageView: (data, children, visible, visibleCondition) => 'page_view',
orElse: () => 'unknown',
) ??
'null';
@@ -116,21 +100,12 @@ class NewPageLogic extends GetxController {
paddingVertical,
visibleCondition,
) => children.length,
row:
(
children,
spacing,
mainAxisAlignment,
visible,
visibleCondition,
) => children.length,
cardLabelItem:
(data, child, children, visible, visibleCondition) =>
(child != null ? 1 : 0) + (children?.length ?? 0),
stepper: (data, children, visible, visibleCondition) =>
children?.length ?? 0,
pageView: (data, children, visible, visibleCondition) =>
row: (children, spacing, mainAxisAlignment, visible, visibleCondition) =>
children.length,
cardLabelItem: (data, child, children, visible, visibleCondition) =>
(child != null ? 1 : 0) + (children?.length ?? 0),
stepper: (data, children, visible, visibleCondition) => children?.length ?? 0,
pageView: (data, children, visible, visibleCondition) => children.length,
orElse: () => 0,
) ??
0;
@@ -170,7 +145,7 @@ class NewPageLogic extends GetxController {
final key = data.key;
final value = data.value;
if (key != null && !controllers.containsKey(key)) {
controllers[key] = TextEditingController(text: value ?? '');
controllers[key] = TextEditingController(text: value.toString() ?? '');
}
},
orElse: () {},