UNPKG

jjb-lc-designable

Version:

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

19 lines 726 B
import { AppendNodeEvent } from 'jjb-lc-designable/core'; import { useDesigner } from 'jjb-lc-designable/react'; import { matchComponent, matchChildComponent } from '../shared'; export const useDropTemplate = (name, getChildren) => { return useDesigner(designer => { return designer.subscribeTo(AppendNodeEvent, event => { const { source, target } = event.data; if (Array.isArray(target)) return; if (!Array.isArray(source)) return; if (matchComponent(target, key => key === name && source.every(child => !matchChildComponent(child, name))) && target.children.length === 0) { target.setChildren(...getChildren(source)); return false; } }); }); };