From af18656759e61bbd939e27c3c56c9209e20fb7f4 Mon Sep 17 00:00:00 2001 From: zzj3720 <17165520+zzj3720@users.noreply.github.com> Date: Tue, 25 Mar 2025 16:05:06 +0000 Subject: [PATCH] fix(editor): clear the search text after selecting a member and add whitelist for image attachment (#11063) fix: BS-2860, BS-2857 --- .../database-block/properties/file/view.tsx | 15 ++++++++++++++- .../member/multi-member-select/index.tsx | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/frontend/core/src/blocksuite/database-block/properties/file/view.tsx b/packages/frontend/core/src/blocksuite/database-block/properties/file/view.tsx index 7eb2a18f1b..82c9dc3401 100644 --- a/packages/frontend/core/src/blocksuite/database-block/properties/file/view.tsx +++ b/packages/frontend/core/src/blocksuite/database-block/properties/file/view.tsx @@ -300,6 +300,19 @@ class FileCellManager { }); } +const SUPPORTED_IMAGE_MIME_TYPES = new Set([ + 'image/apng', + 'image/avif', + 'image/gif', + 'image/jpeg', + 'image/png', + 'image/svg+xml', + 'image/webp', + 'image/tiff', + 'image/bmp', + 'image/vnd.microsoft.icon', +]); + const FileCellComponent: ForwardRefRenderFunction< DataViewCellLifeCycle, CellRenderProps<{}, FileCellRawValueType, FileCellJsonValueType> @@ -460,7 +473,7 @@ const useFilePreview = ( const mime = loadFileData?.fileType?.mime ?? (file.type === 'done' ? file.mime : undefined); - if (mime?.startsWith('image/')) { + if (mime && SUPPORTED_IMAGE_MIME_TYPES.has(mime)) { if (loadFileData == null) { return { preview: null, diff --git a/packages/frontend/core/src/blocksuite/database-block/properties/member/multi-member-select/index.tsx b/packages/frontend/core/src/blocksuite/database-block/properties/member/multi-member-select/index.tsx index fda75a3731..71e62a2eb3 100644 --- a/packages/frontend/core/src/blocksuite/database-block/properties/member/multi-member-select/index.tsx +++ b/packages/frontend/core/src/blocksuite/database-block/properties/member/multi-member-select/index.tsx @@ -77,6 +77,7 @@ class MemberManager { } this.ops.onChange([...this.selectedMembers.value, memberId]); this.moveSelectionAfterSelect(memberId); + this.ops.userListService.search(''); } else { this.ops.onChange(memberId); }