jjb-lc-designable
Version:
基于alibaba-designable源码二次封装的表单设计器。
27 lines • 969 B
JavaScript
import { ViewportResizeEvent, ViewportScrollEvent } from '../events';
export const useViewportEffect = engine => {
engine.subscribeTo(ViewportResizeEvent, event => {
const currentWorkspace = event?.context?.workspace;
if (!currentWorkspace) return;
const viewport = currentWorkspace.viewport;
const outline = currentWorkspace.outline;
if (viewport.matchViewport(event.data.target)) {
viewport.digestViewport();
}
if (outline.matchViewport(event.data.target)) {
outline.digestViewport();
}
});
engine.subscribeTo(ViewportScrollEvent, event => {
const currentWorkspace = event?.context?.workspace;
if (!currentWorkspace) return;
const viewport = currentWorkspace.viewport;
const outline = currentWorkspace.outline;
if (viewport.matchViewport(event.data.target)) {
viewport.digestViewport();
}
if (outline.matchViewport(event.data.target)) {
outline.digestViewport();
}
});
};