UNPKG

@gechiui/block-editor

Version:
70 lines (51 loc) 1.84 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.Edit = void 0; var _element = require("@gechiui/element"); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _lodash = require("lodash"); var _components = require("@gechiui/components"); var _blocks = require("@gechiui/blocks"); var _blockContext = _interopRequireDefault(require("../block-context")); /** * External dependencies */ /** * GeChiUI dependencies */ /** * Internal dependencies */ /** * Default value used for blocks which do not define their own context needs, * used to guarantee that a block's `context` prop will always be an object. It * is assigned as a constant since it is always expected to be an empty object, * and in order to avoid unnecessary React reconciliations of a changing object. * * @type {{}} */ const DEFAULT_BLOCK_CONTEXT = {}; const Edit = props => { const { name } = props; const blockType = (0, _blocks.getBlockType)(name); const blockContext = (0, _element.useContext)(_blockContext.default); // Assign context values using the block type's declared context needs. const context = (0, _element.useMemo)(() => { return blockType && blockType.usesContext ? (0, _lodash.pick)(blockContext, blockType.usesContext) : DEFAULT_BLOCK_CONTEXT; }, [blockType, blockContext]); if (!blockType) { return null; } const Component = blockType.edit; return (0, _element.createElement)(Component, (0, _extends2.default)({}, props, { context: context })); }; exports.Edit = Edit; var _default = (0, _components.withFilters)('editor.BlockEdit')(Edit); exports.default = _default; //# sourceMappingURL=edit.native.js.map