From 7c845456472d0e044c00576ca82a9fe44576865e Mon Sep 17 00:00:00 2001 From: Saul-Mirone Date: Wed, 25 Dec 2024 07:48:00 +0000 Subject: [PATCH] refactor(editor): cleanup dead code (#9300) --- blocksuite/affine/block-list/src/effects.ts | 5 -- blocksuite/affine/block-list/src/index.ts | 1 - .../affine/block-list/src/list-block.ts | 6 +-- .../affine/block-list/src/list-service.ts | 6 --- blocksuite/affine/block-list/src/list-spec.ts | 2 - .../src/data-view-block/data-view-spec.ts | 3 -- .../src/data-view-block/database-service.ts | 13 ----- blocksuite/blocks/src/effects.ts | 2 - .../blocks/src/surface-ref-block/index.ts | 1 - .../surface-ref-block/surface-ref-block.ts | 9 +--- .../surface-ref-block/surface-ref-service.ts | 6 --- .../src/surface-ref-block/surface-ref-spec.ts | 3 -- .../src/view/element/widget-component.ts | 4 +- .../custom-attachment/custom-attachment.ts | 50 ------------------- .../apps/default/specs-examples/index.ts | 16 +----- .../block-suite-editor/specs/common.ts | 5 +- .../specs/custom/attachment-block.ts | 50 ------------------- 17 files changed, 8 insertions(+), 174 deletions(-) delete mode 100644 blocksuite/affine/block-list/src/list-service.ts delete mode 100644 blocksuite/blocks/src/data-view-block/database-service.ts delete mode 100644 blocksuite/blocks/src/surface-ref-block/surface-ref-service.ts delete mode 100644 blocksuite/playground/apps/default/specs-examples/custom-attachment/custom-attachment.ts delete mode 100644 packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/attachment-block.ts diff --git a/blocksuite/affine/block-list/src/effects.ts b/blocksuite/affine/block-list/src/effects.ts index bff302c6dc..791fc336e5 100644 --- a/blocksuite/affine/block-list/src/effects.ts +++ b/blocksuite/affine/block-list/src/effects.ts @@ -12,7 +12,6 @@ import type { import type { listToParagraphCommand } from './commands/list-to-paragraph.js'; import type { splitListCommand } from './commands/split-list.js'; import { ListBlockComponent } from './list-block.js'; -import type { ListBlockService } from './list-service.js'; export function effects() { customElements.define('affine-list', ListBlockComponent); @@ -20,10 +19,6 @@ export function effects() { declare global { namespace BlockSuite { - interface BlockServices { - 'affine:list': ListBlockService; - } - interface CommandContext { listConvertedId?: string; indentContext?: IndentContext; diff --git a/blocksuite/affine/block-list/src/index.ts b/blocksuite/affine/block-list/src/index.ts index 76178a16ea..f8f82f1d5f 100644 --- a/blocksuite/affine/block-list/src/index.ts +++ b/blocksuite/affine/block-list/src/index.ts @@ -1,5 +1,4 @@ export * from './adapters/index.js'; export { correctNumberedListsOrderToPrev } from './commands/utils'; export * from './list-block.js'; -export * from './list-service.js'; export * from './list-spec.js'; diff --git a/blocksuite/affine/block-list/src/list-block.ts b/blocksuite/affine/block-list/src/list-block.ts index 22a076468b..a454c3a3d8 100644 --- a/blocksuite/affine/block-list/src/list-block.ts +++ b/blocksuite/affine/block-list/src/list-block.ts @@ -24,14 +24,10 @@ import { classMap } from 'lit/directives/class-map.js'; import { styleMap } from 'lit/directives/style-map.js'; import { correctNumberedListsOrderToPrev } from './commands/utils.js'; -import type { ListBlockService } from './list-service.js'; import { listBlockStyles } from './styles.js'; import { getListIcon } from './utils/get-list-icon.js'; -export class ListBlockComponent extends CaptionedBlockComponent< - ListBlockModel, - ListBlockService -> { +export class ListBlockComponent extends CaptionedBlockComponent { static override styles = listBlockStyles; private _inlineRangeProvider: InlineRangeProvider | null = null; diff --git a/blocksuite/affine/block-list/src/list-service.ts b/blocksuite/affine/block-list/src/list-service.ts deleted file mode 100644 index 28895d59f8..0000000000 --- a/blocksuite/affine/block-list/src/list-service.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { ListBlockSchema } from '@blocksuite/affine-model'; -import { BlockService } from '@blocksuite/block-std'; - -export class ListBlockService extends BlockService { - static override readonly flavour = ListBlockSchema.model.flavour; -} diff --git a/blocksuite/affine/block-list/src/list-spec.ts b/blocksuite/affine/block-list/src/list-spec.ts index 83e59de3e0..7d4fbafdba 100644 --- a/blocksuite/affine/block-list/src/list-spec.ts +++ b/blocksuite/affine/block-list/src/list-spec.ts @@ -9,11 +9,9 @@ import { literal } from 'lit/static-html.js'; import { ListBlockAdapterExtensions } from './adapters/extension.js'; import { commands } from './commands/index.js'; import { ListKeymapExtension, ListTextKeymapExtension } from './list-keymap.js'; -import { ListBlockService } from './list-service.js'; export const ListBlockSpec: ExtensionType[] = [ FlavourExtension('affine:list'), - ListBlockService, CommandExtension(commands), BlockViewExtension('affine:list', literal`affine-list`), ListKeymapExtension, diff --git a/blocksuite/blocks/src/data-view-block/data-view-spec.ts b/blocksuite/blocks/src/data-view-block/data-view-spec.ts index 342e5f2013..e0a9aceebc 100644 --- a/blocksuite/blocks/src/data-view-block/data-view-spec.ts +++ b/blocksuite/blocks/src/data-view-block/data-view-spec.ts @@ -5,10 +5,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; -import { DataViewBlockService } from './database-service.js'; - export const DataViewBlockSpec: ExtensionType[] = [ FlavourExtension('affine:data-view'), - DataViewBlockService, BlockViewExtension('affine:data-view', literal`affine-data-view`), ]; diff --git a/blocksuite/blocks/src/data-view-block/database-service.ts b/blocksuite/blocks/src/data-view-block/database-service.ts deleted file mode 100644 index 1c21b4d87e..0000000000 --- a/blocksuite/blocks/src/data-view-block/database-service.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { BlockService } from '@blocksuite/block-std'; -import { DatabaseSelection } from '@blocksuite/data-view'; - -import { DataViewBlockSchema } from './data-view-model.js'; - -export class DataViewBlockService extends BlockService { - static override readonly flavour = DataViewBlockSchema.model.flavour; - - override mounted(): void { - super.mounted(); - this.selectionManager.register(DatabaseSelection); - } -} diff --git a/blocksuite/blocks/src/effects.ts b/blocksuite/blocks/src/effects.ts index b35d2f1a31..fb3756e663 100644 --- a/blocksuite/blocks/src/effects.ts +++ b/blocksuite/blocks/src/effects.ts @@ -271,7 +271,6 @@ import { effects as blockSurfaceRefEffects } from './surface-ref-block/effects.j import { EdgelessSurfaceRefBlockComponent, SurfaceRefBlockComponent, - type SurfaceRefBlockService, } from './surface-ref-block/index.js'; import { SurfaceRefGenericBlockPortal } from './surface-ref-block/portal/generic-block.js'; import { SurfaceRefNotePortal } from './surface-ref-block/portal/note.js'; @@ -611,7 +610,6 @@ declare global { 'affine:bookmark': BookmarkBlockService; 'affine:database': DatabaseBlockService; 'affine:image': ImageBlockService; - 'affine:surface-ref': SurfaceRefBlockService; } } } diff --git a/blocksuite/blocks/src/surface-ref-block/index.ts b/blocksuite/blocks/src/surface-ref-block/index.ts index 8c9e461758..91f9567b93 100644 --- a/blocksuite/blocks/src/surface-ref-block/index.ts +++ b/blocksuite/blocks/src/surface-ref-block/index.ts @@ -1,6 +1,5 @@ export * from './surface-ref-block.js'; export * from './surface-ref-block-edgeless.js'; -export * from './surface-ref-service.js'; export { EdgelessSurfaceRefBlockSpec, PageSurfaceRefBlockSpec, diff --git a/blocksuite/blocks/src/surface-ref-block/surface-ref-block.ts b/blocksuite/blocks/src/surface-ref-block/surface-ref-block.ts index 8c6b3cfffd..9da959dcca 100644 --- a/blocksuite/blocks/src/surface-ref-block/surface-ref-block.ts +++ b/blocksuite/blocks/src/surface-ref-block/surface-ref-block.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import { type SurfaceBlockModel, SurfaceElementModel, @@ -46,7 +45,6 @@ import { styleMap } from 'lit/directives/style-map.js'; import { SpecProvider } from '../_specs/index.js'; import type { EdgelessRootPreviewBlockComponent } from '../root-block/edgeless/edgeless-root-preview-block.js'; import { EdgelessRootService } from '../root-block/index.js'; -import type { SurfaceRefBlockService } from './surface-ref-service.js'; import { noContentPlaceholder } from './utils.js'; const REF_LABEL_ICON = { @@ -66,10 +64,7 @@ const NO_CONTENT_REASON = { } as Record; @Peekable() -export class SurfaceRefBlockComponent extends BlockComponent< - SurfaceRefBlockModel, - SurfaceRefBlockService -> { +export class SurfaceRefBlockComponent extends BlockComponent { static override styles = css` .affine-surface-ref { position: relative; @@ -599,8 +594,6 @@ export class SurfaceRefBlockComponent extends BlockComponent< if (!this._shouldRender) return; - const service = this.service; - assertExists(service, `Surface ref block must run with its service.`); this._initHotkey(); this._initSpec(); this._initReferencedModel(); diff --git a/blocksuite/blocks/src/surface-ref-block/surface-ref-service.ts b/blocksuite/blocks/src/surface-ref-block/surface-ref-service.ts deleted file mode 100644 index 894f4c2b87..0000000000 --- a/blocksuite/blocks/src/surface-ref-block/surface-ref-service.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { SurfaceRefBlockSchema } from '@blocksuite/affine-model'; -import { BlockService } from '@blocksuite/block-std'; - -export class SurfaceRefBlockService extends BlockService { - static override readonly flavour = SurfaceRefBlockSchema.model.flavour; -} diff --git a/blocksuite/blocks/src/surface-ref-block/surface-ref-spec.ts b/blocksuite/blocks/src/surface-ref-block/surface-ref-spec.ts index 80ba7792c6..b0394351d3 100644 --- a/blocksuite/blocks/src/surface-ref-block/surface-ref-spec.ts +++ b/blocksuite/blocks/src/surface-ref-block/surface-ref-spec.ts @@ -8,11 +8,9 @@ import { import { literal } from 'lit/static-html.js'; import { commands } from './commands.js'; -import { SurfaceRefBlockService } from './surface-ref-service.js'; export const PageSurfaceRefBlockSpec: ExtensionType[] = [ FlavourExtension('affine:surface-ref'), - SurfaceRefBlockService, CommandExtension(commands), BlockViewExtension('affine:surface-ref', literal`affine-surface-ref`), WidgetViewMapExtension('affine:surface-ref', { @@ -22,7 +20,6 @@ export const PageSurfaceRefBlockSpec: ExtensionType[] = [ export const EdgelessSurfaceRefBlockSpec: ExtensionType[] = [ FlavourExtension('affine:surface-ref'), - SurfaceRefBlockService, BlockViewExtension( 'affine:surface-ref', literal`affine-edgeless-surface-ref` diff --git a/blocksuite/framework/block-std/src/view/element/widget-component.ts b/blocksuite/framework/block-std/src/view/element/widget-component.ts index 6e0f1de165..f9b9e77761 100644 --- a/blocksuite/framework/block-std/src/view/element/widget-component.ts +++ b/blocksuite/framework/block-std/src/view/element/widget-component.ts @@ -74,7 +74,7 @@ export class WidgetComponent< super.connectedCallback(); this.std.view.setWidget(this); - this.service.specSlots.widgetConnected.emit({ + this.service?.specSlots.widgetConnected.emit({ service: this.service, component: this, }); @@ -83,7 +83,7 @@ export class WidgetComponent< override disconnectedCallback() { super.disconnectedCallback(); this.std?.view.deleteWidget(this); - this.service.specSlots.widgetDisconnected.emit({ + this.service?.specSlots.widgetDisconnected.emit({ service: this.service, component: this, }); diff --git a/blocksuite/playground/apps/default/specs-examples/custom-attachment/custom-attachment.ts b/blocksuite/playground/apps/default/specs-examples/custom-attachment/custom-attachment.ts deleted file mode 100644 index 4e96051aff..0000000000 --- a/blocksuite/playground/apps/default/specs-examples/custom-attachment/custom-attachment.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { - BlockFlavourIdentifier, - BlockServiceIdentifier, - type ExtensionType, - StdIdentifier, -} from '@blocksuite/block-std'; -import { - AttachmentBlockService, - EdgelessEditorBlockSpecs, - PageEditorBlockSpecs, -} from '@blocksuite/blocks'; - -class CustomAttachmentBlockService extends AttachmentBlockService { - override mounted(): void { - super.mounted(); - this.maxFileSize = 100 * 1000 * 1000; // 100MB - } -} - -export function getCustomAttachmentSpecs() { - const pageModeSpecs: ExtensionType[] = [ - ...PageEditorBlockSpecs, - { - setup: di => { - di.override( - BlockServiceIdentifier('affine:attachment'), - CustomAttachmentBlockService, - [StdIdentifier, BlockFlavourIdentifier('affine:attachment')] - ); - }, - }, - ]; - const edgelessModeSpecs: ExtensionType[] = [ - ...EdgelessEditorBlockSpecs, - { - setup: di => { - di.override( - BlockServiceIdentifier('affine:attachment'), - CustomAttachmentBlockService, - [StdIdentifier, BlockFlavourIdentifier('affine:attachment')] - ); - }, - }, - ]; - - return { - pageModeSpecs, - edgelessModeSpecs, - }; -} diff --git a/blocksuite/playground/apps/default/specs-examples/index.ts b/blocksuite/playground/apps/default/specs-examples/index.ts index d68a3a07f8..c0fe99686d 100644 --- a/blocksuite/playground/apps/default/specs-examples/index.ts +++ b/blocksuite/playground/apps/default/specs-examples/index.ts @@ -3,21 +3,9 @@ import { PageEditorBlockSpecs, } from '@blocksuite/blocks'; -import { getCustomAttachmentSpecs } from './custom-attachment/custom-attachment.js'; - -const params = new URLSearchParams(location.search); - export function getExampleSpecs() { - const type = params.get('exampleSpec'); - - let pageModeSpecs = PageEditorBlockSpecs; - let edgelessModeSpecs = EdgelessEditorBlockSpecs; - - if (type === 'attachment') { - const specs = getCustomAttachmentSpecs(); - pageModeSpecs = specs.pageModeSpecs; - edgelessModeSpecs = specs.edgelessModeSpecs; - } + const pageModeSpecs = PageEditorBlockSpecs; + const edgelessModeSpecs = EdgelessEditorBlockSpecs; return { pageModeSpecs, diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/common.ts b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/common.ts index eb35be71e6..4a94175c80 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/common.ts +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/common.ts @@ -7,6 +7,7 @@ import { AIChatBlockSpec } from '@affine/core/blocksuite/presets/blocks/ai-chat- import type { ExtensionType } from '@blocksuite/affine/block-std'; import { AdapterFactoryExtensions, + AttachmentBlockSpec, BookmarkBlockSpec, CodeBlockSpec, DatabaseBlockSpec, @@ -28,8 +29,6 @@ import { RichTextExtensions, } from '@blocksuite/affine/blocks'; -import { CustomAttachmentBlockSpec } from './custom/attachment-block'; - const CommonBlockSpecs: ExtensionType[] = [ RefNodeSlotsExtension(), EditPropsStore, @@ -47,8 +46,8 @@ const CommonBlockSpecs: ExtensionType[] = [ EmbedHtmlBlockSpec, EmbedSyncedDocBlockSpec, EmbedLinkedDocBlockSpec, + AttachmentBlockSpec, // special - CustomAttachmentBlockSpec, AdapterFactoryExtensions, ].flat(); diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/attachment-block.ts b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/attachment-block.ts deleted file mode 100644 index 128cc458b4..0000000000 --- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/attachment-block.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { - BlockFlavourIdentifier, - BlockServiceIdentifier, - type ExtensionType, - StdIdentifier, -} from '@blocksuite/affine/block-std'; -import { - AttachmentBlockService, - AttachmentBlockSpec, - ImageBlockService, -} from '@blocksuite/affine/blocks'; - -// bytes.parse('2GB') -const MAX_FILE_SIZE = 2147483648; - -class CustomAttachmentBlockService extends AttachmentBlockService { - override mounted(): void { - // blocksuite default max file size is 10MB, we override it to 2GB - // but the real place to limit blob size is CloudQuotaModal / LocalQuotaModal - this.maxFileSize = MAX_FILE_SIZE; - super.mounted(); - } -} - -class CustomImageBlockService extends ImageBlockService { - override mounted(): void { - // blocksuite default max file size is 10MB, we override it to 2GB - // but the real place to limit blob size is CloudQuotaModal / LocalQuotaModal - this.maxFileSize = MAX_FILE_SIZE; - super.mounted(); - } -} - -export const CustomAttachmentBlockSpec: ExtensionType[] = [ - ...AttachmentBlockSpec, - { - setup: di => { - di.override( - BlockServiceIdentifier('affine:attachment'), - CustomAttachmentBlockService, - [StdIdentifier, BlockFlavourIdentifier('affine:attachment')] - ); - di.override( - BlockServiceIdentifier('affine:image'), - CustomImageBlockService, - [StdIdentifier, BlockFlavourIdentifier('affine:image')] - ); - }, - }, -];