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

View File

@@ -0,0 +1,17 @@
import {
type StoreExtensionContext,
StoreExtensionProvider,
} from '@blocksuite/affine-ext-loader';
import { EdgelessSurfaceBlockAdapterExtensions } from './adapters';
import { SurfaceBlockSchemaExtension } from './surface-model';
export class SurfaceStoreExtension extends StoreExtensionProvider {
override name = 'affine-surface-block';
override setup(context: StoreExtensionContext) {
super.setup(context);
context.register(SurfaceBlockSchemaExtension);
context.register(EdgelessSurfaceBlockAdapterExtensions);
}
}

View File

@@ -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`)
);
}
}
}