addExternalElementToElement method

  1. @override
List<UINode>? addExternalElementToElement(
  1. UINode element,
  2. Object? externalElement
)

Implementation

@override
List<UINode>? addExternalElementToElement(UINode element, externalElement) {
  if (externalElement is List) {
    if (externalElement.isEmpty) return null;
    var children = <UINode>[];
    for (var elem in externalElement) {
      var child = addExternalElementToElement(element, elem)!;
      children.addAll(child);
    }
    return children;
  } else if (externalElement is UIComponent) {
    var component = externalElement;
    var componentContent = component.content;

    if (element is UIElement) {
      element.append(componentContent!);
      component.setParent(element);
      _resolveParentUIComponent(element, component.content,
          childUIComponent: component);
      component.ensureRendered();
      return [componentContent];
    } else {
      _resolveParentUIComponent(element, component.content,
          childUIComponent: component);
      return null;
    }
  } else if (externalElement is MessageBuilder) {
    var text = externalElement.build();
    var span = SpanElement();
    setElementInnerHTML(span, text);
    element.append(span);
    return [span];
  }

  return super.addExternalElementToElement(element, externalElement);
}