refactor(editor): remove legacy dnd config (#9291)

This commit is contained in:
Saul-Mirone
2024-12-24 13:59:36 +00:00
parent 052d74896e
commit f5dea2a990
18 changed files with 43 additions and 385 deletions
+1 -55
View File
@@ -1,60 +1,6 @@
import type { MenuOptions } from '@blocksuite/affine-components/context-menu';
import {
type DatabaseBlockModel,
DatabaseBlockSchema,
} from '@blocksuite/affine-model';
import { DragHandleConfigExtension } from '@blocksuite/affine-shared/services';
import { captureEventTarget } from '@blocksuite/affine-shared/utils';
import { type DatabaseBlockModel } from '@blocksuite/affine-model';
export interface DatabaseOptionsConfig {
configure: (model: DatabaseBlockModel, options: MenuOptions) => MenuOptions;
}
let canDrop = false;
export const DatabaseDragHandleOption = DragHandleConfigExtension({
flavour: DatabaseBlockSchema.model.flavour,
onDragMove: ({ state }) => {
const target = captureEventTarget(state.raw.target);
const database = target?.closest('affine-database');
if (!database) return false;
const view = database.view;
if (view && target instanceof HTMLElement && database.contains(target)) {
canDrop = view.showIndicator?.(state.raw) ?? false;
return false;
}
if (canDrop) {
view?.hideIndicator?.();
canDrop = false;
}
return false;
},
onDragEnd: ({ state, draggingElements, editorHost }) => {
const target = state.raw.target;
const targetEl = captureEventTarget(state.raw.target);
const database = targetEl?.closest('affine-database');
if (!database) {
return false;
}
const view = database.view;
if (
canDrop &&
view &&
view.moveTo &&
target instanceof HTMLElement &&
database.parentElement?.contains(target)
) {
const blocks = draggingElements.map(v => v.model);
editorHost.doc.moveBlocks(blocks, database.model);
blocks.forEach(model => {
view.moveTo?.(model.id, state.raw);
});
view.hideIndicator?.();
return false;
}
if (canDrop) {
view?.hideIndicator?.();
canDrop = false;
}
return false;
},
});
@@ -9,7 +9,6 @@ import { literal } from 'lit/static-html.js';
import { DatabaseBlockAdapterExtensions } from './adapters/extension.js';
import { commands } from './commands.js';
import { DatabaseDragHandleOption } from './config.js';
import { DatabaseBlockService } from './database-service.js';
export const DatabaseBlockSpec: ExtensionType[] = [
@@ -17,7 +16,6 @@ export const DatabaseBlockSpec: ExtensionType[] = [
DatabaseBlockService,
CommandExtension(commands),
BlockViewExtension('affine:database', literal`affine-database`),
DatabaseDragHandleOption,
DatabaseSelectionExtension,
DatabaseBlockAdapterExtensions,
].flat();