feat(editor): affine to blocksuite doc dnd with prefered card view (#11748)

Close [BS-3070](https://linear.app/affine-design/issue/BS-3070/文档拖动进入edgeless,形成引用时,默认形成embeded的引用,但是记录上次选择)
This commit is contained in:
L-Sun
2025-04-17 04:06:50 +00:00
parent 50b3f5f7df
commit 98899b4eea
13 changed files with 199 additions and 22 deletions
@@ -12,6 +12,7 @@ import {
import {
ActionPlacement,
DocDisplayMetaProvider,
EditorSettingProvider,
type LinkEventType,
type OpenDocMode,
type ToolbarAction,
@@ -33,7 +34,7 @@ import {
ExpandFullIcon,
OpenInNewIcon,
} from '@blocksuite/icons/lit';
import { BlockFlavourIdentifier } from '@blocksuite/std';
import { BlockFlavourIdentifier, isGfxBlockComponent } from '@blocksuite/std';
import { type ExtensionType, Slice } from '@blocksuite/store';
import { computed, signal } from '@preact/signals-core';
import { html } from 'lit';
@@ -213,6 +214,15 @@ const conversionsActionGroup = {
},
run(ctx) {
const block = ctx.getCurrentBlockByType(EmbedLinkedDocBlockComponent);
if (isGfxBlockComponent(block)) {
const editorSetting = ctx.std.getOptional(EditorSettingProvider);
editorSetting?.set?.(
'docDropCanvasPreferView',
'affine:embed-synced-doc'
);
}
block?.convertToEmbed();
ctx.track('SelectedView', {