buildButtonWidget function

Widget buildButtonWidget(
  1. DynamicBuildContext context
)

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),
      ),
    ),
  );
}