replaceElement method

void replaceElement(
  1. PaneTreeElement<T> element,
  2. PaneTreeElement<T> newElement
)

Implementation

void replaceElement(
  PaneTreeElement<T> element,
  PaneTreeElement<T> newElement,
) {
  final replaceResult = _replaceElement(element, newElement, []);
  final shouldReplaceRoot = replaceResult.treeFromElementParent != tree.root;
  SchedulerBinding.instance.addPostFrameCallback(
    (_) {
      if (shouldReplaceRoot) {
        _onRootChanged?.call(replaceResult.treeFromElementParent);
      }
      tree = PaneTree(root: replaceResult.treeFromElementParent);
      for (final notifier in replaceResult.notifiersToCall) {
        notifier();
      }
    },
  );
}