jjb-lc-designable
Version:
基于alibaba-designable源码二次封装的表单设计器。
20 lines (18 loc) • 557 B
text/typescript
import { useContext, useEffect } from 'react'
import { Engine } from 'jjb-lc-designable/core'
import { DesignerEngineContext } from '../context'
import { isFn, globalThisPolyfill } from 'jjb-lc-designable/shared'
export interface IEffects {
(engine: Engine): void
}
export const useDesigner = (effects?: IEffects): Engine => {
const designer: Engine =
globalThisPolyfill['__DESIGNABLE_ENGINE__'] ||
useContext(DesignerEngineContext)
useEffect(() => {
if (isFn(effects)) {
return effects(designer)
}
}, [])
return designer
}