feat(editor): surface block extension (#11961)

Closes: BS-3204
This commit is contained in:
Saul-Mirone
2025-04-24 09:47:35 +00:00
parent d6e7039b7b
commit b66d2d58a1
15 changed files with 78 additions and 32 deletions
@@ -0,0 +1,41 @@
import {
type ViewExtensionContext,
ViewExtensionProvider,
} from '@blocksuite/affine-ext-loader';
import { BlockViewExtension, FlavourExtension } from '@blocksuite/std';
import { literal } from 'lit/static-html.js';
import { effects } from './effects';
import {
EdgelessCRUDExtension,
EdgelessLegacySlotExtension,
} from './extensions';
import { ExportManagerExtension } from './extensions/export-manager/export-manager';
export class SurfaceViewExtension extends ViewExtensionProvider {
override name = 'affine-surface-block';
override effect() {
super.effect();
effects();
}
override setup(context: ViewExtensionContext) {
super.setup(context);
context.register([
FlavourExtension('affine:surface'),
EdgelessCRUDExtension,
EdgelessLegacySlotExtension,
ExportManagerExtension,
]);
if (this.isEdgeless(context.scope)) {
context.register(
BlockViewExtension('affine:surface', literal`affine-surface`)
);
} else {
context.register(
BlockViewExtension('affine:surface', literal`affine-surface-void`)
);
}
}
}