From 0710da15c6df8e62d4c847e48e50db61b9119a0c Mon Sep 17 00:00:00 2001 From: L-Sun Date: Fri, 15 Aug 2025 14:09:34 +0800 Subject: [PATCH] fix(editor): hook of database is invoked repeatedly (#13493) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Close [AF-2789](https://linear.app/affine-design/issue/AF-2789/安卓客户端日期没了) #### PR Dependency Tree * **PR #13493** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) ## Summary by CodeRabbit * **Bug Fixes** * Improved editing mode stability in mobile Kanban cells by preventing redundant enter/exit transitions, resulting in smoother interactions and reduced flicker. * Enhanced mobile Table cells to avoid duplicate editing state changes, minimizing unnecessary updates and improving responsiveness. * Overall, editing transitions are now idempotent across affected mobile views, reducing visual jitter and improving performance during edit operations. --- .../affine/data-view/src/view-presets/kanban/mobile/cell.ts | 4 ++-- .../affine/data-view/src/view-presets/table/mobile/cell.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/blocksuite/affine/data-view/src/view-presets/kanban/mobile/cell.ts b/blocksuite/affine/data-view/src/view-presets/kanban/mobile/cell.ts index 189a97b05..9c31c96c2 100644 --- a/blocksuite/affine/data-view/src/view-presets/kanban/mobile/cell.ts +++ b/blocksuite/affine/data-view/src/view-presets/kanban/mobile/cell.ts @@ -103,12 +103,12 @@ export class MobileKanbanCell extends SignalWatcher( this.disposables.add( effect(() => { const isEditing = this.isSelectionEditing$.value; - if (isEditing) { + if (isEditing && !this.isEditing$.peek()) { this.isEditing$.value = true; requestAnimationFrame(() => { this._cell.value?.afterEnterEditingMode(); }); - } else { + } else if (!isEditing && this.isEditing$.peek()) { this._cell.value?.beforeExitEditingMode(); this.isEditing$.value = false; } diff --git a/blocksuite/affine/data-view/src/view-presets/table/mobile/cell.ts b/blocksuite/affine/data-view/src/view-presets/table/mobile/cell.ts index 3cf3a5ded..c934a00e2 100644 --- a/blocksuite/affine/data-view/src/view-presets/table/mobile/cell.ts +++ b/blocksuite/affine/data-view/src/view-presets/table/mobile/cell.ts @@ -105,13 +105,13 @@ export class MobileTableCell extends SignalWatcher( this.disposables.add( effect(() => { const isEditing = this.isSelectionEditing$.value; - if (isEditing) { + if (isEditing && !this.isEditing$.peek()) { this.isEditing$.value = true; const cell = this._cell.value; requestAnimationFrame(() => { cell?.afterEnterEditingMode(); }); - } else { + } else if (!isEditing && this.isEditing$.peek()) { this._cell.value?.beforeExitEditingMode(); this.isEditing$.value = false; }