buildButtonWidget function
Builds a Flutter button from descriptor: data.label, data.onClick (action or action_group). On tap runs the action engine with the app-provided ActionHandler.
Implementation
Widget buildButtonWidget(DynamicBuildContext context) {
final data = context.resolvedData;
final label = data['label'] as String? ?? 'Button';
final onClick = data['onClick'] as Map<String, dynamic>?;
final actionEngine = ActionEngine();
return GestureDetector(
onTap: onClick == null
? null
: () async {
try {
await actionEngine.runFromMap(onClick, context.actionHandler);
} catch (e, st) {
debugPrint('Dynamic UI button action error: $e\n$st');
}
},
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
decoration: BoxDecoration(
color: const Color(0xFF2196F3),
borderRadius: BorderRadius.circular(8),
),
child: Text(
label,
style: const TextStyle(color: Color(0xFFFFFFFF), fontSize: 16),
),
),
);
}