UNPKG

jjb-lc-designable

Version:

基于alibaba-designable源码二次封装的表单设计器。

36 lines (34 loc) 934 B
import { Engine } from '../models' import { ICustomEvent } from 'jjb-lc-designable/shared' import { IEngineContext } from '../types' import { SelectNodeEvent } from '../events' export const useWorkspaceEffect = (engine: Engine) => { engine.subscribeWith<ICustomEvent<any, IEngineContext>>( [ 'append:node', 'insert:after', 'insert:before', 'insert:children', 'drag:node', 'drop:node', 'prepend:node', 'remove:node', 'select:node', 'update:children', 'wrap:node', 'update:node:props', ], (event) => { if (event.context?.workbench) { engine.workbench.setActiveWorkspace(event.context.workspace) } } ) engine.subscribeTo(SelectNodeEvent, (event) => { engine.workbench.eachWorkspace((workspace) => { if (workspace !== event.context.workspace) { workspace.operation.selection.clear() } }) }) }