@20minutes/draft-convert
Version:
Extensibly serialize & deserialize Draft.js ContentState
40 lines (39 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return getNestedBlockTags;
}
});
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
const _tinyinvariant = /*#__PURE__*/ _interop_require_default(require("tiny-invariant"));
const _splitReactElement = /*#__PURE__*/ _interop_require_default(require("./splitReactElement.js"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function getNestedBlockTags(blockHTML, depth) {
(0, _tinyinvariant.default)(blockHTML !== null && blockHTML !== undefined, 'Expected block HTML value to be non-null');
if (typeof blockHTML.nest === 'function') {
const { start, end } = (0, _splitReactElement.default)(blockHTML.nest(depth));
return {
...blockHTML,
nestStart: start,
nestEnd: end
};
}
if (/*#__PURE__*/ _react.default.isValidElement(blockHTML.nest)) {
const { start, end } = (0, _splitReactElement.default)(blockHTML.nest);
return {
...blockHTML,
nestStart: start,
nestEnd: end
};
}
(0, _tinyinvariant.default)(Object.hasOwn(blockHTML, 'nestStart') && Object.hasOwn(blockHTML, 'nestEnd'), 'convertToHTML: received block information without either a ReactElement or an object with start/end tags');
return blockHTML;
}