children: List()

in src/model/transaction/moveBlockInContentState.js [125:171]


        children: List(newChildrenArray),
      });
    });

    // update block
    transformBlock(originalBlockKey, blocks, block =>
      block.merge({
        nextSibling: newNextSiblingKey,
        prevSibling: newPrevSiblingKey,
        parent: newParentKey,
      }),
    );
  });
};

const moveBlockInContentState = (
  contentState: ContentState,
  blockToBeMoved: BlockNodeRecord,
  targetBlock: BlockNodeRecord,
  insertionMode: DraftInsertionType,
): ContentState => {
  invariant(insertionMode !== 'replace', 'Replacing blocks is not supported.');

  const targetKey = targetBlock.getKey();
  const blockKey = blockToBeMoved.getKey();

  invariant(blockKey !== targetKey, 'Block cannot be moved next to itself.');

  const blockMap = contentState.getBlockMap();
  const isExperimentalTreeBlock = blockToBeMoved instanceof ContentBlockNode;

  let blocksToBeMoved: Array<BlockNodeRecord> = [blockToBeMoved];
  let blockMapWithoutBlocksToBeMoved = blockMap.delete(blockKey);

  if (isExperimentalTreeBlock) {
    blocksToBeMoved = [];
    blockMapWithoutBlocksToBeMoved = blockMap.withMutations(blocks => {
      const nextSiblingKey = blockToBeMoved.getNextSiblingKey();
      const nextDelimiterBlockKey = getNextDelimiterBlockKey(
        blockToBeMoved,
        blocks,
      );

      blocks
        .toSeq()
        .skipUntil(block => block.getKey() === blockKey)
        .takeWhile(block => {