From 5eb48343a3f938957fdcaa38bea06cbfffa7b185 Mon Sep 17 00:00:00 2001 From: Saul-Mirone Date: Fri, 27 Dec 2024 03:13:23 +0000 Subject: [PATCH] chore(editor): cleanup dead code (#9359) --- .../edgeless/clipboard/clipboard.ts | 37 ---------------- .../rects/edgeless-selected-rect.ts | 44 ++++++++++++++----- .../root-block/edgeless/edgeless-keyboard.ts | 43 ------------------ .../edgeless/edgeless-root-block.ts | 19 +------- .../edgeless/edgeless-root-service.ts | 6 --- .../drag-handle/watchers/edgeless-watcher.ts | 6 --- 6 files changed, 35 insertions(+), 120 deletions(-) diff --git a/blocksuite/blocks/src/root-block/edgeless/clipboard/clipboard.ts b/blocksuite/blocks/src/root-block/edgeless/clipboard/clipboard.ts index ed06f9c75..781eebe5e 100644 --- a/blocksuite/blocks/src/root-block/edgeless/clipboard/clipboard.ts +++ b/blocksuite/blocks/src/root-block/edgeless/clipboard/clipboard.ts @@ -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 diff --git a/blocksuite/blocks/src/root-block/edgeless/components/rects/edgeless-selected-rect.ts b/blocksuite/blocks/src/root-block/edgeless/components/rects/edgeless-selected-rect.ts index abf8e2b95..889482c38 100644 --- a/blocksuite/blocks/src/root-block/edgeless/components/rects/edgeless-selected-rect.ts +++ b/blocksuite/blocks/src/root-block/edgeless/components/rects/edgeless-selected-rect.ts @@ -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() { diff --git a/blocksuite/blocks/src/root-block/edgeless/edgeless-keyboard.ts b/blocksuite/blocks/src/root-block/edgeless/edgeless-keyboard.ts index 5f8fad0ae..3e8750add 100644 --- a/blocksuite/blocks/src/root-block/edgeless/edgeless-keyboard.ts +++ b/blocksuite/blocks/src/root-block/edgeless/edgeless-keyboard.ts @@ -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. diff --git a/blocksuite/blocks/src/root-block/edgeless/edgeless-root-block.ts b/blocksuite/blocks/src/root-block/edgeless/edgeless-root-block.ts index f44af80c6..5142cf579 100644 --- a/blocksuite/blocks/src/root-block/edgeless/edgeless-root-block.ts +++ b/blocksuite/blocks/src/root-block/edgeless/edgeless-root-block.ts @@ -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() { diff --git a/blocksuite/blocks/src/root-block/edgeless/edgeless-root-service.ts b/blocksuite/blocks/src/root-block/edgeless/edgeless-root-service.ts index 42b21d965..bb2e9a4d2 100644 --- a/blocksuite/blocks/src/root-block/edgeless/edgeless-root-service.ts +++ b/blocksuite/blocks/src/root-block/edgeless/edgeless-root-service.ts @@ -60,13 +60,7 @@ export class EdgelessRootService extends RootService implements SurfaceContext { elementRenderers: Record = elementRenderers; slots = { - pressShiftKeyUpdated: new Slot(), - copyAsPng: new Slot<{ - blocks: BlockSuite.EdgelessBlockModelType[]; - shapes: BlockSuite.SurfaceModel[]; - }>(), readonlyUpdated: new Slot(), - draggingAreaUpdated: new Slot(), navigatorSettingUpdated: new Slot<{ hideToolbar?: boolean; blackBackground?: boolean; diff --git a/blocksuite/blocks/src/root-block/widgets/drag-handle/watchers/edgeless-watcher.ts b/blocksuite/blocks/src/root-block/widgets/drag-handle/watchers/edgeless-watcher.ts index a4fd747e1..c87185881 100644 --- a/blocksuite/blocks/src/root-block/widgets/drag-handle/watchers/edgeless-watcher.ts +++ b/blocksuite/blocks/src/root-block/widgets/drag-handle/watchers/edgeless-watcher.ts @@ -243,12 +243,6 @@ export class EdgelessWatcher { }) ); - disposables.add( - edgelessSlots.draggingAreaUpdated.on(() => { - this.checkTopLevelBlockSelection(); - }) - ); - disposables.add( edgelessSlots.elementResizeStart.on(() => { this.widget.hide();