blockRenderFn method

  1. @override
Map<String, BaseBlock>? blockRenderFn(
  1. BaseBlock block, {
  2. bool shouldWrite = false,
})
override

Block renderer map

Implementation

@override
blockRenderFn(BaseBlock block, {bool shouldWrite = false}) {
  if (currentLevel == null) {
    currentLevel = root;
  }

  if (shouldWrite) {
    if (block.blockType == "ordered-list-item") {
      if (block.depth == prevNode?.depth || prevNode == null) {
        prevNode = currentLevel!.addChild(block);
      } else {
        if (block.depth > prevNode!.depth) {
          currentLevel = prevNode;
          prevNode = prevNode!.addChild(block);
        } else {
          currentLevel = currentLevel!.parent;
          prevNode = currentLevel!.addChild(block);
        }
      }
    } else {
      root = ListTreeNode(isRoot: true);
      prevNode = null;
      currentLevel = root;
    }
  }

  var map = {
    "ordered-list-item": ListBlock(
      depth: prevNode?.depth ?? 0,
      blockType: '',
      data: {},
      end: 0,
      entityTypes: [],
      inlineStyles: [],
      start: 0,
      text: '',
      isOrderedList: true,
      order: prevNode?.order ?? 0,
    ),
    "unordered-list-item": ListBlock(
      depth: block.depth,
      blockType: '',
      data: {},
      end: 0,
      entityTypes: [],
      inlineStyles: [],
      start: 0,
      text: '',
      isOrderedList: false,
      order: 0,
    ),
  };

  return map;
}