mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-11 20:08:37 +00:00
fix(editor): block selection delete conflict with native selection (#9340)
Closes: [BS-2228](https://linear.app/affine-design/issue/BS-2228/[bug]-选区删除拖拽失灵)
This commit is contained in:
@@ -5,12 +5,17 @@ import {
|
||||
promptDocTitle,
|
||||
} from '@blocksuite/affine-block-embed';
|
||||
import { matchFlavours } from '@blocksuite/affine-shared/utils';
|
||||
import type { BlockComponent, BlockSelection } from '@blocksuite/block-std';
|
||||
import type {
|
||||
BlockComponent,
|
||||
BlockSelection,
|
||||
UIEventHandler,
|
||||
} from '@blocksuite/block-std';
|
||||
import { IS_MAC, IS_WINDOWS } from '@blocksuite/global/env';
|
||||
import { assertExists } from '@blocksuite/global/utils';
|
||||
|
||||
export class PageKeyboardManager {
|
||||
private readonly _handleDelete = () => {
|
||||
private readonly _handleDelete: UIEventHandler = ctx => {
|
||||
const event = ctx.get('keyboardState').raw;
|
||||
const blockSelections = this._currentSelection.filter(sel =>
|
||||
sel.is('block')
|
||||
);
|
||||
@@ -18,6 +23,7 @@ export class PageKeyboardManager {
|
||||
return;
|
||||
}
|
||||
|
||||
event.preventDefault();
|
||||
this._doc.transact(() => {
|
||||
const selection = this._replaceBlocksBySelection(
|
||||
blockSelections,
|
||||
@@ -79,9 +85,9 @@ export class PageKeyboardManager {
|
||||
'Mod-Backspace': () => true,
|
||||
Backspace: this._handleDelete,
|
||||
Delete: this._handleDelete,
|
||||
'Control-d': () => {
|
||||
'Control-d': ctx => {
|
||||
if (!IS_MAC) return;
|
||||
this._handleDelete();
|
||||
this._handleDelete(ctx);
|
||||
},
|
||||
'Mod-Shift-l': () => {
|
||||
this._createEmbedBlock();
|
||||
|
||||
Reference in New Issue
Block a user