Files
AFFiNE-Mirror/blocksuite/affine/blocks/surface/src/view.ts
T
2025-05-04 13:53:26 +00:00

46 lines
1.3 KiB
TypeScript

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,
EditPropsMiddlewareBuilder,
} from './extensions';
import { ExportManagerExtension } from './extensions/export-manager/export-manager';
import { DefaultTool } from './tool/default-tool';
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(DefaultTool);
context.register(
BlockViewExtension('affine:surface', literal`affine-surface`)
);
context.register(EditPropsMiddlewareBuilder);
} else {
context.register(
BlockViewExtension('affine:surface', literal`affine-surface-void`)
);
}
}
}