@chief-editor/editor
Version:
FlowEditor Editor
1 lines • 1.29 kB
JavaScript
import{useEffect}from"react";import{NodeType}from"@chief-editor/base";import{useContainer}from"@rc-hooks/dom";import{useRefGetter}from"@rc-hooks/use";import{useEditor}from"./useEditor";export function useLayerBrickContainer(e,t){var r=useContainer(e),i=useRefGetter(t),o=useEditor();useEffect((function(){var e,n,d=r();if(d){var c=t.getNode().parentNode;if((null!==(n=null===(e=null==c?void 0:c.getValue())||void 0===e?void 0:e.type)&&void 0!==n?n:NodeType.STREAM)===NodeType.LAYER){var s=function(e){var t=i(),r=o.getActiveBoardId(),n=o.getActiveTemplate();if(n){var d=i().getAncestorBoardIds(),c=d.indexOf(r);if(c!==d.length-1){if(-1===c)return n.setActiveBoardId(d[d.length-1]||"root",!0),void t.setActive();var s=d[c+1],v=n.getBoard(s).getNode().parentNode;if(v)n.getBrickByNode(v).setActive(e.shiftKey)}else t.setActive(e.shiftKey)}},v=function(e){var t=o.getActiveTemplate(),r=i();if(t&&!r.isActiveBrick()){var n=i().getAncestorBrickIds();n.some((function(e,i){var o=t.getBrick(e).isActiveBrick();if(o){var d=n[i+1],c=r;d&&(c=t.getBrick(d)),t.setActiveBoardId(c.getOwnerBoard().id,!0),c.setActive()}return o}))}};return d.addEventListener("mousedown",s),d.addEventListener("dblclick",v),function(){d.removeEventListener("mousedown",s),d.removeEventListener("dblclick",v)}}}}),[])}