@chief-editor/runtime
Version:
React Runtime for Flow Editor
1 lines • 1.55 kB
JavaScript
"use strict";var __importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(exports,"__esModule",{value:!0});var base_1=require("@chief-editor/base"),use_1=require("@rc-hooks/use"),react_1=__importStar(require("react")),useRuntime_1=require("../hooks/useRuntime");exports.RuntimeDispatcher=react_1.memo((function(e){var t=e.node,r=e.style,a=e.className,n=useRuntime_1.useRuntime(),i=n.BrickRender,u=n.BoardRender,s=t.getValue();return s.type===base_1.NodeType.BRICK?react_1.default.createElement(i,{key:t.id,node:t,brickType:s.brickType,brickId:s.brickId}):s.type===base_1.NodeType.STREAM||s.type===base_1.NodeType.LAYER?react_1.default.createElement(u,{key:t.id,node:t,type:s.type,floatType:s.floatType,boardId:s.boardId,className:a,style:r},react_1.default.createElement(RuntimeListDispatcher,{key:t.id,node:t})):react_1.default.createElement(RuntimeListDispatcher,{key:t.id,node:t})}));var RuntimeListDispatcher=react_1.memo((function(e){var t=e.node,r=e.className,a=e.style,n=use_1.useShallowState((function(){return t.getChildNodes()})),i=n[0],u=n[1];return use_1.useSafeInit((function(){var e=function(){u(t.getChildNodes())};return t.addListener("childChange",e),function(){return t.removeListener("childChange",e)}})),react_1.default.createElement(react_1.Fragment,null,i.map((function(e){return react_1.default.createElement(exports.RuntimeDispatcher,{style:a,className:r,key:e.id,node:e})})))}));