@chief-editor/editor
Version:
FlowEditor Editor
1 lines • 1.73 kB
JavaScript
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)},__rest=this&&this.__rest||function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(o=Object.getOwnPropertySymbols(e);s<o.length;s++)t.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(e,o[s])&&(r[o[s]]=e[o[s]])}return r};import{classnames}from"@co-hooks/util";import{RuntimeDispatcher}from"@chief-editor/runtime";import{useElementPosition}from"@rc-hooks/dom";import React,{memo,useEffect,useRef}from"react";import{useUpdate}from"@rc-hooks/use";import{useEditor}from"../hooks/useEditor";import{useEditorCls}from"../hooks/useEditorCls";import{TemplateContext}from"../context/template";export var EditorTemplateRender=memo((function(e){var t=e.templateId,r=e.className,o=e.children,s=__rest(e,["templateId","className","children"]),i=useEditor().getTemplate(t),n=useRef(null),a=useUpdate(),m=classnames(r,useEditorCls("template")),c=useEditorCls("template-root"),l=useElementPosition(n,(function(){return i.isActiveTemplate()}),(function(e){i.setPosition(e)}),{});return i.setPosition(l),useEffect((function(){return i.addListener("active-change",a),function(){i.removeListener("active-change",a)}}),[]),React.createElement(TemplateContext.Provider,{value:i},React.createElement("div",__assign({},s,{className:m,"data-template-id":t,ref:n}),React.createElement(RuntimeDispatcher,{node:i.getNode(),className:c,style:{width:"100%",height:"100%"}})),o)}));