fix: allow to drop inside the note block in edgeless mode (#10255)

This commit is contained in:
doouding
2025-02-18 10:24:59 +00:00
parent cd00f06b77
commit 75678ceca8
3 changed files with 19 additions and 1 deletions

View File

@@ -55,7 +55,7 @@ export class EdgelessNoteMask extends SignalWatcher(
bottom: `${-extra}px`,
right: `${-extra}px`,
zIndex: '1',
pointerEvents: this.editing ? 'none' : 'auto',
pointerEvents: this.editing || this.disableMask ? 'none' : 'auto',
borderRadius: `${
this.model.edgeless.style.borderRadius * this.zoom
}px`,
@@ -64,6 +64,9 @@ export class EdgelessNoteMask extends SignalWatcher(
`;
}
@property({ attribute: false })
accessor disableMask!: boolean;
@property({ attribute: false })
accessor editing!: boolean;

View File

@@ -260,6 +260,7 @@ export class EdgelessNoteBlockComponent extends toGfxBlockComponent(
.model=${this.model}
.host=${this.host}
.zoom=${this.gfx.viewport.zoom ?? 1}
.disableMask=${this.hideMask}
.editing=${this._editing}
></edgeless-note-mask>
@@ -297,6 +298,9 @@ export class EdgelessNoteBlockComponent extends toGfxBlockComponent(
@state()
private accessor _noteFullHeight = 0;
@state()
accessor hideMask = false;
@query(`.${styles.clipContainer} > div`)
private accessor _noteContent: HTMLElement | null = null;

View File

@@ -1328,6 +1328,7 @@ export class DragEventWatcher {
private _makeDropTarget(view: BlockComponent) {
const isUnderNote = this._isUnderNoteBlock(view.model);
const isNote = matchModels(view.model, [NoteBlockModel]);
if (
// affine:surface block can't be drop target in any modes
@@ -1372,6 +1373,16 @@ export class DragEventWatcher {
return false;
},
onDragEnter: () => {
if (isNote && 'hideMask' in view) {
view.hideMask = true;
}
},
onDragLeave: () => {
if (isNote && 'hideMask' in view) {
view.hideMask = false;
}
},
setDropData: () => {
return {
modelId: view.model.id,