Skip to content

Commit 1e37b55

Browse files
committed
fix: Fix post-rebase null handling
1 parent 19c86f7 commit 1e37b55

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

src/line_cursor.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -591,13 +591,13 @@ export class LineCursor extends Marker {
591591
}
592592
}
593593

594-
if (this.isZelos && this.isValueInputConnection(oldNode)) {
594+
if (this.isZelos && oldNode && this.isValueInputConnection(oldNode)) {
595595
this.hideAtInput(oldNode);
596596
}
597597

598598
const curNodeType = curNode?.getType();
599599
const isZelosInputConnection =
600-
this.isZelos && this.isValueInputConnection(curNode);
600+
this.isZelos && curNode && this.isValueInputConnection(curNode);
601601

602602
// If drawing can't be handled locally, just use the drawer.
603603
if (curNodeType !== ASTNode.types.BLOCK && !isZelosInputConnection) {
@@ -610,7 +610,7 @@ export class LineCursor extends Marker {
610610

611611
if (isZelosInputConnection) {
612612
this.showAtInput(curNode);
613-
} else if (curNodeType === ASTNode.types.BLOCK) {
613+
} else if (curNode && curNodeType === ASTNode.types.BLOCK) {
614614
const block = curNode.getLocation() as Blockly.BlockSvg;
615615
if (!block.isShadow()) {
616616
// Selection should already be in sync.

src/navigation.ts

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -423,11 +423,12 @@ export class Navigation {
423423
this.setState(workspace, Constants.STATE.NOWHERE);
424424
const cursor = workspace.getCursor();
425425
if (cursor) {
426-
if (cursor.getCurNode()) {
427-
this.passiveFocusIndicator.show(cursor.getCurNode());
426+
const curNode = cursor.getCurNode();
427+
if (curNode) {
428+
this.passiveFocusIndicator.show(curNode);
428429
}
429430
// It's initially null so this is a valid state despite the types.
430-
cursor.setCurNode(null as never);
431+
cursor.setCurNode(null);
431432
}
432433
}
433434

@@ -544,20 +545,21 @@ export class Navigation {
544545
const flyoutCursor = this.getFlyoutCursor(workspace);
545546
if (!flyoutCursor) return;
546547

547-
if (
548-
flyoutCursor.getCurNode() &&
549-
!this.isFlyoutItemDisposed(flyoutCursor.getCurNode())
550-
)
551-
return;
548+
const curNode = flyoutCursor.getCurNode();
549+
if (curNode && !this.isFlyoutItemDisposed(curNode)) return;
552550

553551
const flyoutContents = flyout.getContents();
554552
const firstFlyoutItem = flyoutContents[0];
555553
if (!firstFlyoutItem) return;
556-
if (firstFlyoutItem.button) {
557-
const astNode = Blockly.ASTNode.createButtonNode(firstFlyoutItem.button);
554+
if (firstFlyoutItem.getElement() instanceof Blockly.FlyoutButton) {
555+
const astNode = Blockly.ASTNode.createButtonNode(
556+
firstFlyoutItem.getElement() as Blockly.FlyoutButton,
557+
);
558558
flyoutCursor.setCurNode(astNode!);
559-
} else if (firstFlyoutItem.block) {
560-
const astNode = Blockly.ASTNode.createStackNode(firstFlyoutItem.block);
559+
} else if (firstFlyoutItem.getElement() instanceof Blockly.BlockSvg) {
560+
const astNode = Blockly.ASTNode.createStackNode(
561+
firstFlyoutItem.getElement() as Blockly.BlockSvg,
562+
);
561563
flyoutCursor.setCurNode(astNode!);
562564
}
563565
}

0 commit comments

Comments
 (0)