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