From f45f0c2170045f0896d081e110a9fb870903d2c2 Mon Sep 17 00:00:00 2001 From: Peng Xiao Date: Wed, 17 Aug 2022 16:38:39 +0800 Subject: [PATCH] fix: stale editing state --- .../src/lib/tools/LogseqPortalTool/states/CreatingState.tsx | 2 +- tldraw/packages/core/src/lib/TLApp/TLApp.ts | 3 +++ .../src/lib/tools/TLSelectTool/states/EditingShapeState.ts | 6 +++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/tldraw/apps/tldraw-logseq/src/lib/tools/LogseqPortalTool/states/CreatingState.tsx b/tldraw/apps/tldraw-logseq/src/lib/tools/LogseqPortalTool/states/CreatingState.tsx index 8e834d67d7..8a7c9a9029 100644 --- a/tldraw/apps/tldraw-logseq/src/lib/tools/LogseqPortalTool/states/CreatingState.tsx +++ b/tldraw/apps/tldraw-logseq/src/lib/tools/LogseqPortalTool/states/CreatingState.tsx @@ -59,13 +59,13 @@ export class CreatingState extends TLToolState< onExit = () => { if (!this.creatingShape) return - this.app.clearEditingShape() this.app.history.resume() if (this.creatingShape?.props.pageId) { this.app.setSelectedShapes([this.creatingShape.id]) } else { this.app.deleteShapes([this.creatingShape.id]) + this.app.clearEditingShape() } } } diff --git a/tldraw/packages/core/src/lib/TLApp/TLApp.ts b/tldraw/packages/core/src/lib/TLApp/TLApp.ts index 1745a4546f..77d0ff5cc5 100644 --- a/tldraw/packages/core/src/lib/TLApp/TLApp.ts +++ b/tldraw/packages/core/src/lib/TLApp/TLApp.ts @@ -529,6 +529,9 @@ export class TLApp< } else { this.selectionRotation = 0 } + if (shapes.length === 0) { + this.clearEditingShape() + } return this } diff --git a/tldraw/packages/core/src/lib/tools/TLSelectTool/states/EditingShapeState.ts b/tldraw/packages/core/src/lib/tools/TLSelectTool/states/EditingShapeState.ts index 0bd02a5d97..8d785ddd62 100644 --- a/tldraw/packages/core/src/lib/tools/TLSelectTool/states/EditingShapeState.ts +++ b/tldraw/packages/core/src/lib/tools/TLSelectTool/states/EditingShapeState.ts @@ -20,6 +20,9 @@ export class EditingShapeState< onExit = () => { this.app.persist() this.app.clearEditingShape() + + // Blur all inputs when exit idle + document.querySelectorAll('input,textarea').forEach(el => el.blur()) } onPointerDown: TLEvents['pointer'] = info => { @@ -51,9 +54,6 @@ export class EditingShapeState< e.stopPropagation() this.app.setSelectedShapes([this.editingShape]) this.tool.transition('idle') - - // Blur all inputs when exit idle - document.querySelectorAll('input,textarea').forEach(el => el.blur()) }) break }