@wix/design-system
Version:
@wix/design-system
37 lines (30 loc) • 956 B
JavaScript
/**
* Returns an array of all `ContentBlock` instances within two block keys
*
* @param {object} contentState A draft.js `ContentState` instance
* @param {string} anchorKey The block key to start searching from
* @param {string} focusKey The block key until which to search
*
* @return {array} An array containing the found content blocks
*/
export default (function (contentState, anchorKey, focusKey) {
var isSameBlock = anchorKey === focusKey;
var startingBlock = contentState.getBlockForKey(anchorKey);
if (!startingBlock) {
return [];
}
var selectedBlocks = [startingBlock];
if (!isSameBlock) {
var blockKey = anchorKey;
while (blockKey !== focusKey) {
var nextBlock = contentState.getBlockAfter(blockKey);
if (!nextBlock) {
selectedBlocks = [];
break;
}
selectedBlocks.push(nextBlock);
blockKey = nextBlock.getKey();
}
}
return selectedBlocks;
});