From 08327b14d6451786dbe9fba87ba45551a55cca7d Mon Sep 17 00:00:00 2001 From: zzj3720 <17165520+zzj3720@users.noreply.github.com> Date: Tue, 1 Apr 2025 10:32:23 +0000 Subject: [PATCH] fix(editor): database block columns popover closes unexpectedly (#11352) fix: BS-2906 --- .../src/core/component/tags/multi-tag-select.ts | 15 +++++++++++++-- .../affine/data-view/src/core/detail/field.ts | 7 +++---- .../affine/data-view/src/core/detail/selection.ts | 4 ++-- .../multi-select/cell-renderer.ts | 6 ++++-- .../database-block/properties/file/view.tsx | 10 ++++++++-- .../member/multi-member-select/index.tsx | 1 + 6 files changed, 31 insertions(+), 12 deletions(-) diff --git a/blocksuite/affine/data-view/src/core/component/tags/multi-tag-select.ts b/blocksuite/affine/data-view/src/core/component/tags/multi-tag-select.ts index 46cd3d125a..0aaa1e8d21 100644 --- a/blocksuite/affine/data-view/src/core/component/tags/multi-tag-select.ts +++ b/blocksuite/affine/data-view/src/core/component/tags/multi-tag-select.ts @@ -16,7 +16,7 @@ import { } from '@blocksuite/icons/lit'; import { ShadowlessElement } from '@blocksuite/std'; import { nanoid } from '@blocksuite/store'; -import { flip, offset, shift } from '@floating-ui/dom'; +import { autoPlacement, offset, shift } from '@floating-ui/dom'; import { computed, type ReadonlySignal, signal } from '@preact/signals-core'; import { cssVarV2 } from '@toeverything/theme/v2'; import { nothing } from 'lit'; @@ -588,7 +588,18 @@ export const popTagSelect = (target: PopupTarget, ops: TagSelectOptions) => { }; const remove = createPopup(target, component, { onClose: ops.onComplete, - middleware: [flip(), offset({ mainAxis: -28, crossAxis: 112 }), shift()], + middleware: [ + autoPlacement({ + allowedPlacements: [ + 'bottom-start', + 'bottom-end', + 'top-start', + 'top-end', + ], + }), + offset({ mainAxis: -36 }), + shift(), + ], container: ops.container, }); return remove; diff --git a/blocksuite/affine/data-view/src/core/detail/field.ts b/blocksuite/affine/data-view/src/core/detail/field.ts index 80aee71460..498aa97822 100644 --- a/blocksuite/affine/data-view/src/core/detail/field.ts +++ b/blocksuite/affine/data-view/src/core/detail/field.ts @@ -13,7 +13,7 @@ import { import { ShadowlessElement } from '@blocksuite/std'; import { computed, signal } from '@preact/signals-core'; import { css } from 'lit'; -import { property, state } from 'lit/decorators.js'; +import { property } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { html } from 'lit/static-html.js'; @@ -249,7 +249,7 @@ export class RecordField extends SignalWatcher( 'field-content': true, empty: !this.isEditing$.value && this.cell$.value.isEmpty$.value, 'is-editing': this.isEditing$.value, - 'is-focus': this.isFocus, + 'is-focus': this.isFocus$.value, }); return html`