chore(editor): cleanup dead code (#9359)

This commit is contained in:
Saul-Mirone
2024-12-27 03:13:23 +00:00
parent 20c5c28a95
commit 5eb48343a3
6 changed files with 35 additions and 120 deletions

View File

@@ -87,7 +87,6 @@ import {
} from '../utils/query.js';
const BLOCKSUITE_SURFACE = 'blocksuite/surface';
const IMAGE_PNG = 'image/png';
const { GROUP, MINDMAP, CONNECTOR } = CanvasElementType;
const IMAGE_PADDING = 5; // for rotated shapes some padding is needed
@@ -1200,42 +1199,6 @@ export class EdgelessClipboardController extends PageClipboard {
);
}
async copyAsPng(
blocks: BlockSuite.EdgelessBlockModelType[],
shapes: BlockSuite.SurfaceModel[]
) {
const blocksLen = blocks.length;
const shapesLen = shapes.length;
if (blocksLen + shapesLen === 0) return;
const canvas = await this.toCanvas(blocks, shapes);
assertExists(canvas);
// @ts-expect-error FIXME: ts error
if (window.apis?.clipboard?.copyAsImageFromString) {
// @ts-expect-error FIXME: ts error
await window.apis.clipboard?.copyAsImageFromString(
canvas.toDataURL(IMAGE_PNG)
);
} else {
const blob: Blob = await new Promise((resolve, reject) =>
canvas.toBlob(
blob => (blob ? resolve(blob) : reject('Canvas can not export blob')),
IMAGE_PNG
)
);
assertExists(blob);
this.std.clipboard
.writeToClipboard(_items => {
return {
..._items,
[IMAGE_PNG]: blob,
};
})
.catch(console.error);
}
}
async createElementsFromClipboardData(
elementsRawData: (SerializedElement | BlockSnapshot)[],
pasteCenter?: IVec

View File

@@ -1312,7 +1312,7 @@ export class EdgelessSelectedRectWidget extends WidgetComponent<
}
override firstUpdated() {
const { _disposables, edgelessSlots, block, selection, gfx } = this;
const { _disposables, block, selection, gfx } = this;
_disposables.add(
// viewport zooming / scrolling
@@ -1331,15 +1331,6 @@ export class EdgelessSelectedRectWidget extends WidgetComponent<
this.doc.slots.blockUpdated.on(this._updateOnElementChange)
);
_disposables.add(
edgelessSlots.pressShiftKeyUpdated.on(pressed => {
this._shiftKey = pressed;
this._resizeManager.onPressShiftKey(pressed);
this._updateSelectedRect();
this._updateMode();
})
);
_disposables.add(selection.slots.updated.on(this._updateOnSelectionChange));
_disposables.add(
@@ -1355,6 +1346,39 @@ export class EdgelessSelectedRectWidget extends WidgetComponent<
_disposables.add(() => {
this._propDisposables.forEach(disposable => disposable.dispose());
});
this.block.handleEvent(
'keyDown',
ctx => {
const event = ctx.get('defaultState').event;
if (event instanceof KeyboardEvent) {
this._shift(event);
}
},
{ global: true }
);
this.block.handleEvent(
'keyUp',
ctx => {
const event = ctx.get('defaultState').event;
if (event instanceof KeyboardEvent) {
this._shift(event);
}
},
{ global: true }
);
}
private _shift(event: KeyboardEvent) {
if (event.repeat) return;
const pressed = event.key.toLowerCase() === 'shift' && event.shiftKey;
this._shiftKey = pressed;
this._resizeManager.onPressShiftKey(pressed);
this._updateSelectedRect();
this._updateMode();
}
override render() {

View File

@@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/no-non-null-assertion */
import {
ConnectorElementModel,
ConnectorMode,
@@ -163,7 +162,6 @@ export class EdgelessPageKeyboardManager extends PageKeyboardManager {
const std = this.rootComponent.std;
if (
std.selection.getGroup('note').length > 0 ||
// eslint-disable-next-line
std.selection.find('text') ||
Boolean(std.selection.find('surface')?.editing)
) {
@@ -430,35 +428,9 @@ export class EdgelessPageKeyboardManager extends PageKeyboardManager {
}
);
this._bindShiftKey();
this._bindToggleHand();
}
private _bindShiftKey() {
this.rootComponent.handleEvent(
'keyDown',
ctx => {
const event = ctx.get('defaultState').event;
if (event instanceof KeyboardEvent) {
this._shift(event);
}
},
{ global: true }
);
this.rootComponent.handleEvent(
'keyUp',
ctx => {
const event = ctx.get('defaultState').event;
if (event instanceof KeyboardEvent) {
this._shift(event);
}
},
{
global: true,
}
);
}
private _bindToggleHand() {
this.rootComponent.handleEvent(
'keyDown',
@@ -685,21 +657,6 @@ export class EdgelessPageKeyboardManager extends PageKeyboardManager {
);
}
private _shift(event: KeyboardEvent) {
const edgeless = this.rootComponent;
if (event.repeat) return;
const shiftKeyPressed =
event.key.toLowerCase() === 'shift' && event.shiftKey;
if (shiftKeyPressed) {
edgeless.slots.pressShiftKeyUpdated.emit(true);
} else {
edgeless.slots.pressShiftKeyUpdated.emit(false);
}
}
private _space(event: KeyboardEvent) {
/*
Call this function with a check for !event.repeat to consider only the first keydown (not repeat). This way, you can use onPressSpaceBar in a tool to determine if the space bar is pressed or not.

View File

@@ -3,7 +3,6 @@ import type {
SurfaceBlockModel,
} from '@blocksuite/affine-block-surface';
import { CommonUtils } from '@blocksuite/affine-block-surface';
import { toast } from '@blocksuite/affine-components/toast';
import type {
RootBlockModel,
ShapeElementModel,
@@ -320,7 +319,7 @@ export class EdgelessRootBlockComponent extends BlockComponent<
}
private _initSlotEffects() {
const { disposables, slots } = this;
const { disposables } = this;
this.disposables.add(
this.std.get(ThemeProvider).theme$.subscribe(() => this.surface.refresh())
@@ -331,22 +330,6 @@ export class EdgelessRootBlockComponent extends BlockComponent<
this.style.cursor = this.gfx.cursor$.value;
})
);
let canCopyAsPng = true;
disposables.add(
slots.copyAsPng.on(({ blocks, shapes }) => {
if (!canCopyAsPng) return;
canCopyAsPng = false;
this.clipboardController
.copyAsPng(blocks, shapes)
.then(() => toast(this.host, 'Copied to clipboard'))
.catch(() => toast(this.host, 'Failed to copy as PNG'))
.finally(() => {
canCopyAsPng = true;
});
})
);
}
private _initViewport() {

View File

@@ -60,13 +60,7 @@ export class EdgelessRootService extends RootService implements SurfaceContext {
elementRenderers: Record<string, ElementRenderer> = elementRenderers;
slots = {
pressShiftKeyUpdated: new Slot<boolean>(),
copyAsPng: new Slot<{
blocks: BlockSuite.EdgelessBlockModelType[];
shapes: BlockSuite.SurfaceModel[];
}>(),
readonlyUpdated: new Slot<boolean>(),
draggingAreaUpdated: new Slot(),
navigatorSettingUpdated: new Slot<{
hideToolbar?: boolean;
blackBackground?: boolean;

View File

@@ -243,12 +243,6 @@ export class EdgelessWatcher {
})
);
disposables.add(
edgelessSlots.draggingAreaUpdated.on(() => {
this.checkTopLevelBlockSelection();
})
);
disposables.add(
edgelessSlots.elementResizeStart.on(() => {
this.widget.hide();