UNPKG

@chief-editor/runtime

Version:

React Runtime for Flow Editor

1 lines 1.19 kB
import{NodeType}from"@chief-editor/base";import{useSafeInit,useShallowState}from"@rc-hooks/use";import React,{Fragment,memo}from"react";import{useRuntime}from"../hooks/useRuntime";export var RuntimeDispatcher=memo((function(e){var t=e.node,r=e.style,n=e.className,a=useRuntime(),i=a.BrickRender,o=a.BoardRender,c=t.getValue();return c.type===NodeType.BRICK?React.createElement(i,{key:t.id,node:t,brickType:c.brickType,brickId:c.brickId}):c.type===NodeType.STREAM||c.type===NodeType.LAYER?React.createElement(o,{key:t.id,node:t,type:c.type,floatType:c.floatType,boardId:c.boardId,className:n,style:r},React.createElement(RuntimeListDispatcher,{key:t.id,node:t})):React.createElement(RuntimeListDispatcher,{key:t.id,node:t})}));var RuntimeListDispatcher=memo((function(e){var t=e.node,r=e.className,n=e.style,a=useShallowState((function(){return t.getChildNodes()})),i=a[0],o=a[1];return useSafeInit((function(){var e=function(){o(t.getChildNodes())};return t.addListener("childChange",e),function(){return t.removeListener("childChange",e)}})),React.createElement(Fragment,null,i.map((function(e){return React.createElement(RuntimeDispatcher,{style:n,className:r,key:e.id,node:e})})))}));