refactor(editor): extract edgeless legacy slots (#9363)

This commit is contained in:
Saul-Mirone
2024-12-27 04:22:52 +00:00
parent 71272203b0
commit 3ae3ae98c8
24 changed files with 167 additions and 113 deletions

View File

@@ -1,3 +1,4 @@
import { EdgelessLegacySlotIdentifier } from '@blocksuite/affine-block-surface';
import { MoreIndicatorIcon } from '@blocksuite/affine-components/icons';
import type { NoteBlockModel } from '@blocksuite/affine-model';
import {
@@ -13,11 +14,7 @@ import {
matchFlavours,
stopPropagation,
} from '@blocksuite/affine-shared/utils';
import type {
BlockComponent,
BlockService,
EditorHost,
} from '@blocksuite/block-std';
import type { BlockComponent, EditorHost } from '@blocksuite/block-std';
import { ShadowlessElement, toGfxBlockComponent } from '@blocksuite/block-std';
import {
almostEqual,
@@ -26,7 +23,7 @@ import {
Point,
WithDisposable,
} from '@blocksuite/global/utils';
import type { BlockModel, Slot } from '@blocksuite/store';
import type { BlockModel } from '@blocksuite/store';
import { css, html, nothing } from 'lit';
import { property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
@@ -153,9 +150,7 @@ export class EdgelessNoteBlockComponent extends toGfxBlockComponent(
}
get rootService() {
return this.std.getService('affine:page') as BlockService & {
slots: Record<string, Slot>;
};
return this.std.getService('affine:page');
}
private _collapsedContent() {
@@ -330,12 +325,16 @@ export class EdgelessNoteBlockComponent extends toGfxBlockComponent(
);
}
get edgelessSlots() {
return this.std.get(EdgelessLegacySlotIdentifier);
}
override firstUpdated() {
const { _disposables } = this;
const selection = this.gfx.selection;
_disposables.add(
this.rootService.slots.elementResizeStart.on(() => {
this.edgelessSlots.elementResizeStart.on(() => {
if (selection.selectedElements.includes(this.model)) {
this._isResizing = true;
}
@@ -343,7 +342,7 @@ export class EdgelessNoteBlockComponent extends toGfxBlockComponent(
);
_disposables.add(
this.rootService.slots.elementResizeEnd.on(() => {
this.edgelessSlots.elementResizeEnd.on(() => {
this._isResizing = false;
})
);