parse method

  1. @override
Widget parse(
  1. Map<String, dynamic> map,
  2. BuildContext buildContext,
  3. ClickListener? listener
)
override

parse the json map into a flutter widget.

Implementation

@override
Widget parse(Map<String, dynamic> map, BuildContext buildContext,
    ClickListener? listener) {
  String? clickEvent =
      map.containsKey("click_event") ? map['click_event'] : "";

  return ElevatedButton(
    onPressed: () {
      listener!.onClicked(clickEvent);
    },
    style:
    ButtonStyle(
        foregroundColor: map.containsKey("foregroundColor") ? MaterialStateProperty.all(parseHexColor(map["foregroundColor"])) : null,
      backgroundColor: map.containsKey("backgroundColor") ? MaterialStateProperty.all(parseHexColor(map["backgroundColor"])) : null,
      overlayColor: map.containsKey("overlayColor") ? MaterialStateProperty.all(parseHexColor(map["overlayColor"])) : null,
      shadowColor: map.containsKey("shadowColor") ? MaterialStateProperty.all(parseHexColor(map["shadowColor"])) : null,
      elevation: map.containsKey("elevation") ? MaterialStateProperty.all(map["elevation"]) : null,
      padding: map.containsKey("padding") ? MaterialStateProperty.all(parseEdgeInsetsGeometry(map["padding"])) : null,
      textStyle: map.containsKey("textStyle") ? MaterialStateProperty.all(parseTextStyle(map["textStyle"])) : null,
        alignment: map.containsKey("alignment") ? parseAlignment(map["alignment"]) : null,
      ),
    child: DynamicWidgetBuilder.buildFromMap(
        map['child'], buildContext, listener),
  );
}