fix: drag block issue (#9902)

### Changed
- Added support for changing the preview offset during dragging.
- Fixed the preview rendering for embed block and surface-ref block
- Resolved an issue where the host element might be reused in certain cases, which could cause unexpected behavior
- Moved viewport-related constants and methods to a more appropriate location
This commit is contained in:
doouding
2025-02-05 07:25:53 +00:00
parent abeff8bb1a
commit 02122098c7
22 changed files with 177 additions and 138 deletions
@@ -617,7 +617,7 @@ export class DragEventWatcher {
onDrop: () => {
this._cleanup();
},
setDragPreview: ({ source, container }) => {
setDragPreview: ({ source, container, setOffset }) => {
if (!source.data?.bsEntity?.modelIds.length) {
return;
}
@@ -626,6 +626,9 @@ export class DragEventWatcher {
source.data?.bsEntity?.modelIds,
container
);
const rect = container.getBoundingClientRect();
setOffset({ x: rect.width / 2, y: rect.height / 2 });
},
setDragData: () => {
const { snapshot } = this._getSnapshotFromHoveredBlocks();