fix: fix the problem that node.isSlot reports an error as a function call

This commit is contained in:
liujuping 2022-10-28 09:50:28 +08:00 committed by LeoYuan 袁力皓
parent 9b0ea3bef3
commit 433dfc4df0

View File

@ -1,6 +1,7 @@
import { EventEmitter } from 'events'; import { EventEmitter } from 'events';
import { obx, makeObservable } from '@alilc/lowcode-editor-core'; import { obx, makeObservable } from '@alilc/lowcode-editor-core';
import { NodeSchema } from '@alilc/lowcode-types'; import { NodeSchema } from '@alilc/lowcode-types';
import { Node as ShellNode } from '@alilc/lowcode-shell';
import { setNativeSelection, cursor } from '@alilc/lowcode-utils'; import { setNativeSelection, cursor } from '@alilc/lowcode-utils';
import { DropLocation } from './location'; import { DropLocation } from './location';
import { Node, DocumentModel } from '../document'; import { Node, DocumentModel } from '../document';
@ -89,7 +90,7 @@ export enum DragObjectType {
export interface DragNodeObject { export interface DragNodeObject {
type: DragObjectType.Node; type: DragObjectType.Node;
nodes: Node[]; nodes: (Node | ShellNode)[];
} }
export interface DragNodeDataObject { export interface DragNodeDataObject {
type: DragObjectType.NodeData; type: DragObjectType.NodeData;
@ -225,13 +226,13 @@ export class Dragon {
* @param dragObject * @param dragObject
* @param boostEvent * @param boostEvent
*/ */
boost(dragObject: DragObject, boostEvent: MouseEvent | DragEvent, fromRglNode?: Node) { boost(dragObject: DragObject, boostEvent: MouseEvent | DragEvent, fromRglNode?: Node | ShellNode) {
const { designer } = this; const { designer } = this;
const masterSensors = this.getMasterSensors(); const masterSensors = this.getMasterSensors();
const handleEvents = makeEventsHandler(boostEvent, masterSensors); const handleEvents = makeEventsHandler(boostEvent, masterSensors);
const newBie = !isDragNodeObject(dragObject); const newBie = !isDragNodeObject(dragObject);
const forceCopyState = const forceCopyState =
isDragNodeObject(dragObject) && dragObject.nodes.some((node) => node.isSlot()); isDragNodeObject(dragObject) && dragObject.nodes.some((node: Node | ShellNode) => (typeof node.isSlot === 'function' ? node.isSlot() : node.isSlot));
const isBoostFromDragAPI = isDragEvent(boostEvent); const isBoostFromDragAPI = isDragEvent(boostEvent);
let lastSensor: ISensor | undefined; let lastSensor: ISensor | undefined;