From e3fc9b4ceaae5143b729e6bb1806726110a385b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8A=9B=E7=9A=93?= Date: Mon, 25 Jan 2021 14:15:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=80=83=E8=99=91=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E5=8E=9F=E6=9D=A5=E5=8F=AA=E5=A4=84=E7=90=864=E5=90=91?= =?UTF-8?q?=E7=9A=84=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/bundle/upgrade-metadata.ts | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/packages/editor-preset-vision/src/bundle/upgrade-metadata.ts b/packages/editor-preset-vision/src/bundle/upgrade-metadata.ts index 3333bbbec..eb48fd846 100644 --- a/packages/editor-preset-vision/src/bundle/upgrade-metadata.ts +++ b/packages/editor-preset-vision/src/bundle/upgrade-metadata.ts @@ -98,6 +98,20 @@ export interface OldPropConfig { liveTextEditing?: any; } +type ResizeHandler = (dragment: any, triggerDirection: string) => boolean; +type ResizeCompositeHandler = { handle: ResizeHandler, availableDirects: string[] | undefined }; +type CanResize = + | boolean + | ResizeHandler + | ResizeCompositeHandler; + +function isResizeCompositeHandler(resize: CanResize): resize is ResizeCompositeHandler { + if ((resize as any).handle) { + return true; + } + return false; +} + // from vision 5.4 export interface OldPrototypeConfig { packageName: string; // => npm.package @@ -169,7 +183,7 @@ export interface OldPrototypeConfig { subtreeModified?(this: Node): any; // => ? hooks // => ? - canResizing?: ((dragment: any, triggerDirection: string) => boolean) | boolean; + canResizing?: CanResize; onResizeStart?: (e: MouseEvent, triggerDirection: string, dragment: Node) => void; onResize?: (e: MouseEvent, triggerDirection: string, dragment: Node, moveX: number, moveY: number) => void; onResizeEnd?: (e: MouseEvent, triggerDirection: string, dragment: Node) => void; @@ -623,7 +637,6 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) { didDropIn, // onNodeAdd subtreeModified, // onSubtreeModified - canResizing, // resizing onResizeStart, // onResizeStart onResize, // onResize onResizeEnd, // onResizeEnd @@ -631,6 +644,9 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) { schema, isTopFixed, } = oldConfig; + let { + canResizing, // resizing + } = oldConfig; const meta: any = { componentName, @@ -746,13 +762,16 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) { experimental.transducers = transducers; } if (canResizing) { - // TODO: enhance + let availableDirects = ['n', 'e', 's', 'w']; + if (isResizeCompositeHandler(canResizing)) { + availableDirects = canResizing.availableDirects || availableDirects; + canResizing = canResizing.handle; + } experimental.getResizingHandlers = (currentNode: any) => { - const directs = ['n', 'e', 's', 'w', 'ne', 'nw', 'se', 'sw']; if (canResizing === true) { - return directs; + return availableDirects; } - return directs.filter((d) => canResizing(currentNode, d)); + return availableDirects.filter((d) => (canResizing as any)(currentNode, d)); }; }