@chief-editor/editor
Version:
FlowEditor Editor
1 lines • 1.7 kB
JavaScript
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,i=arguments.length;r<i;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__rest=this&&this.__rest||function(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]])}return r};import React,{memo,useEffect}from"react";import{useBrickInstance,useRuntime}from"@chief-editor/runtime";import{useShallowState}from"@rc-hooks/use";import{useEditorCls}from"../hooks/useEditorCls";import{useTemplate}from"../hooks/useTemplate";import{BrickContainer}from"./BrickContainer";export var BrickRender=memo((function(e){var t=e.brickId,r=e.brickType,i=e.node,n=useRuntime(),o=n.Bricks,c=n.BrickContainers,a=void 0===c?{}:c,s=n.BrickContainerRender,u=useTemplate(),l=u.getBrickByNode(i),f=useBrickInstance(l),m=f.layout,p=__rest(f,["layout"]),h=function(){return l.isActiveBrick()},k=useShallowState(h),d=k[0],y=k[1];useEffect((function(){var e=function(){y(h)};return u.addListener("active-brick-change",e),function(){u.removeListener("active-brick-change",e)}}),[]);var v=useEditorCls("brick-container",{active:d}),b=o[r];if(!b)return console.warn("Brick: "+r+" is not found"),null;var g=a[r]||s||BrickContainer;return React.createElement(g,{brickId:t,className:v,style:m,node:i,key:"container-"+l.id},React.createElement(b,__assign({key:l.id},p,{layout:{width:m.width,height:m.height}})))}));