buildCustom method

  1. @override
Widget buildCustom({
  1. ChildWidgetBuilder? childBuilder,
  2. required BuildContext context,
  3. required JsonWidgetData data,
  4. Key? key,
})
override

Custom builder that subclasses must override and implement to return the actual Widget to be placed on the tree.

Implementation

@override
Widget buildCustom({
  ChildWidgetBuilder? childBuilder,
  required BuildContext context,
  required JsonWidgetData data,
  Key? key,
}) {
  final args = Map.from(data.args);
  args.remove('dynamic');
  final map = {
    'id': data.id,
    'type': builderType,
    'args': args,
    'children': List.empty(),
  };

  if (data.registry.getValue(data.id) == null) {
    data.registry.setValue(
      data.id,
      initState
          .map(
            (values) => DynamicValuesFactory.create(values),
          )
          .toList(),
    );
  }

  return _DynamicWidget(
    data: JsonWidgetData.fromDynamic(map, registry: data.registry)!,
    childTemplate: childTemplate,
    childBuilder: childBuilder,
    key: key,
  );
}