UNPKG

@20minutes/draft-convert

Version:

Extensibly serialize & deserialize Draft.js ContentState

43 lines (42 loc) 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return getBlockTags; } }); const _react = /*#__PURE__*/ _interop_require_default(require("react")); const _server = /*#__PURE__*/ _interop_require_default(require("react-dom/server")); 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 hasChildren(element) { return /*#__PURE__*/ _react.default.isValidElement(element) && _react.default.Children.count(element.props.children) > 0; } function getBlockTags(blockHTML) { (0, _tinyinvariant.default)(blockHTML !== null && blockHTML !== undefined, 'Expected block HTML value to be non-null'); if (typeof blockHTML === 'string') { return blockHTML; } if (/*#__PURE__*/ _react.default.isValidElement(blockHTML)) { if (hasChildren(blockHTML)) { return _server.default.renderToStaticMarkup(blockHTML); } return (0, _splitReactElement.default)(blockHTML); } if (Object.hasOwn(blockHTML, 'element') && /*#__PURE__*/ _react.default.isValidElement(blockHTML.element)) { return { ...blockHTML, ...(0, _splitReactElement.default)(blockHTML.element) }; } (0, _tinyinvariant.default)(Object.hasOwn(blockHTML, 'start') && Object.hasOwn(blockHTML, 'end'), 'convertToHTML: received block information without either a ReactElement or an object with start/end tags'); return blockHTML; }