diff --git a/src/actions/undo_redo.ts b/src/actions/undo_redo.ts index e43e9b66..a2509767 100644 --- a/src/actions/undo_redo.ts +++ b/src/actions/undo_redo.ts @@ -4,17 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { - ShortcutRegistry, - utils as BlocklyUtils, - ShortcutItems, - WorkspaceSvg, -} from 'blockly/core'; - -import * as Constants from '../constants'; -import type {Navigation} from '../navigation'; - -const KeyCodes = BlocklyUtils.KeyCodes; +import {ShortcutRegistry, ShortcutItems, WorkspaceSvg} from 'blockly/core'; /** * Class for registering a shortcut for undo/redo actions. diff --git a/src/keyboard_drag_strategy.ts b/src/keyboard_drag_strategy.ts index c8fee5db..31ff8aea 100644 --- a/src/keyboard_drag_strategy.ts +++ b/src/keyboard_drag_strategy.ts @@ -144,21 +144,20 @@ export class KeyboardDragStrategy extends dragging.BlockDragStrategy { const cursor = draggingBlock.workspace.getCursor() as LineCursor; if (!cursor) return null; + // Helper function for traversal. + function isConnection(node: ASTNode | null): boolean { + return !!node && node.isConnection(); + } + const connectionChecker = draggingBlock.workspace.connectionChecker; let candidateConnection: ConnectionCandidate | null = null; let potential: ASTNode | null = this.searchNode; const dir = this.currentDragDirection; while (potential && !candidateConnection) { if (dir === Direction.Up || dir === Direction.Left) { - potential = cursor.getPreviousNode(potential, (node) => { - // @ts-expect-error isConnectionType is private. - return node && ASTNode.isConnectionType(node.getType()); - }); + potential = cursor.getPreviousNode(potential, isConnection, true); } else if (dir === Direction.Down || dir === Direction.Right) { - potential = cursor.getNextNode(potential, (node) => { - // @ts-expect-error isConnectionType is private. - return node && ASTNode.isConnectionType(node.getType()); - }); + potential = cursor.getNextNode(potential, isConnection, true); } localConns.forEach((conn: RenderedConnection) => {