feat(editor): drag handle widget extension (#11962)

Closes: BS-3220
This commit is contained in:
Saul-Mirone
2025-04-24 09:47:36 +00:00
parent b66d2d58a1
commit 1d38e5787b
12 changed files with 30 additions and 10 deletions

View File

@@ -162,7 +162,8 @@
"./inlines/latex/view": "./src/inlines/latex/view.ts",
"./inlines/mention": "./src/inlines/mention/index.ts",
"./inlines/mention/view": "./src/inlines/mention/view.ts",
"./widgets/drag-handle": "./src/widgets/drag-handle.ts",
"./widgets/drag-handle": "./src/widgets/drag-handle/index.ts",
"./widgets/drag-handle/view": "./src/widgets/drag-handle/view.ts",
"./widgets/edgeless-auto-connect": "./src/widgets/edgeless-auto-connect.ts",
"./widgets/edgeless-toolbar": "./src/widgets/edgeless-toolbar.ts",
"./widgets/frame-title": "./src/widgets/frame-title.ts",

View File

@@ -29,7 +29,6 @@ import { effects as fragmentDocTitleEffects } from '@blocksuite/affine-fragment-
import { effects as fragmentFramePanelEffects } from '@blocksuite/affine-fragment-frame-panel/effects';
import { effects as fragmentOutlineEffects } from '@blocksuite/affine-fragment-outline/effects';
import { effects as richTextEffects } from '@blocksuite/affine-rich-text/effects';
import { effects as widgetDragHandleEffects } from '@blocksuite/affine-widget-drag-handle/effects';
import { effects as widgetEdgelessAutoConnectEffects } from '@blocksuite/affine-widget-edgeless-auto-connect/effects';
import { effects as widgetFrameTitleEffects } from '@blocksuite/affine-widget-frame-title/effects';
import { effects as widgetRemoteSelectionEffects } from '@blocksuite/affine-widget-remote-selection/effects';
@@ -71,7 +70,6 @@ export function effects() {
widgetScrollAnchoringEffects();
widgetFrameTitleEffects();
widgetRemoteSelectionEffects();
widgetDragHandleEffects();
widgetEdgelessAutoConnectEffects();
widgetSlashMenuEffects();
widgetToolbarEffects();

View File

@@ -30,6 +30,7 @@ import { LinkViewExtension } from '@blocksuite/affine-inline-link/view';
import { MentionViewExtension } from '@blocksuite/affine-inline-mention/view';
import { InlinePresetViewExtension } from '@blocksuite/affine-inline-preset/view';
import { ReferenceViewExtension } from '@blocksuite/affine-inline-reference/view';
import { DragHandleViewExtension } from '@blocksuite/affine-widget-drag-handle/view';
import { MigratingViewExtension } from './migrating-view';
@@ -73,6 +74,9 @@ export function getInternalViewExtensions() {
MentionViewExtension,
InlinePresetViewExtension,
// Widget
DragHandleViewExtension,
MigratingViewExtension,
];
}

View File

@@ -0,0 +1 @@
export * from '@blocksuite/affine-widget-drag-handle/view';

View File

@@ -33,7 +33,6 @@
"@blocksuite/affine-model": "workspace:*",
"@blocksuite/affine-rich-text": "workspace:*",
"@blocksuite/affine-shared": "workspace:*",
"@blocksuite/affine-widget-drag-handle": "workspace:*",
"@blocksuite/affine-widget-edgeless-auto-connect": "workspace:*",
"@blocksuite/affine-widget-edgeless-toolbar": "workspace:*",
"@blocksuite/affine-widget-frame-title": "workspace:*",

View File

@@ -10,7 +10,6 @@ import {
ToolbarModuleExtension,
ToolbarRegistryExtension,
} from '@blocksuite/affine-shared/services';
import { dragHandleWidget } from '@blocksuite/affine-widget-drag-handle';
import { linkedDocWidget } from '@blocksuite/affine-widget-linked-doc';
import { docRemoteSelectionWidget } from '@blocksuite/affine-widget-remote-selection';
import { scrollAnchoringWidget } from '@blocksuite/affine-widget-scroll-anchoring';
@@ -39,7 +38,6 @@ export const CommonSpecs: ExtensionType[] = [
...clipboardConfigs,
SlashMenuExtension,
linkedDocWidget,
dragHandleWidget,
docRemoteSelectionWidget,
viewportOverlayWidget,
scrollAnchoringWidget,

View File

@@ -30,7 +30,6 @@
{ "path": "../../model" },
{ "path": "../../rich-text" },
{ "path": "../../shared" },
{ "path": "../../widgets/drag-handle" },
{ "path": "../../widgets/edgeless-auto-connect" },
{ "path": "../../widgets/edgeless-toolbar" },
{ "path": "../../widgets/frame-title" },

View File

@@ -37,7 +37,8 @@
},
"exports": {
".": "./src/index.ts",
"./effects": "./src/effects.ts"
"./effects": "./src/effects.ts",
"./view": "./src/view.ts"
},
"files": [
"src",

View File

@@ -0,0 +1,21 @@
import {
type ViewExtensionContext,
ViewExtensionProvider,
} from '@blocksuite/affine-ext-loader';
import { dragHandleWidget } from '.';
import { effects } from './effects';
export class DragHandleViewExtension extends ViewExtensionProvider {
override name = 'affine-drag-handle-widget';
override effect() {
super.effect();
effects();
}
override setup(context: ViewExtensionContext) {
super.setup(context);
context.register(dragHandleWidget);
}
}