feat(editor): replace spec provider with extension manager (#11861)

Closes: BS-3273
This commit is contained in:
Saul-Mirone
2025-04-22 07:40:41 +00:00
parent 8fdb00e0ab
commit 6d6504e2af
51 changed files with 623 additions and 177 deletions

View File

@@ -17,6 +17,7 @@
"@blocksuite/affine-block-paragraph": "workspace:*",
"@blocksuite/affine-block-surface": "workspace:*",
"@blocksuite/affine-components": "workspace:*",
"@blocksuite/affine-ext-loader": "workspace:*",
"@blocksuite/affine-model": "workspace:*",
"@blocksuite/affine-shared": "workspace:*",
"@blocksuite/global": "workspace:*",

View File

@@ -1,10 +1,10 @@
import { ViewExtensionManagerIdentifier } from '@blocksuite/affine-ext-loader';
import {
DocModeExtension,
DocModeProvider,
EditorSettingExtension,
EditorSettingProvider,
} from '@blocksuite/affine-shared/services';
import { SpecProvider } from '@blocksuite/affine-shared/utils';
import { BlockStdScope, BlockViewIdentifier } from '@blocksuite/std';
import type {
BlockModel,
@@ -69,7 +69,9 @@ export class PreviewHelper {
const editorSetting = std.get(EditorSettingProvider);
const query = this._calculateQuery(blockIds as string[]);
const store = widget.doc.doc.getStore({ query });
const previewSpec = SpecProvider._.getSpec('preview:page');
let previewSpec = widget.std
.get(ViewExtensionManagerIdentifier)
.get('preview-page');
const settingSignal = signal({ ...editorSetting.setting$.peek() });
const extensions = [
DocModeExtension(docModeService),
@@ -99,7 +101,7 @@ export class PreviewHelper {
} as ExtensionType,
];
previewSpec.extend(extensions);
previewSpec = previewSpec.concat(extensions);
settingSignal.value = {
...settingSignal.value,
@@ -108,7 +110,7 @@ export class PreviewHelper {
const previewStd = new BlockStdScope({
store,
extensions: previewSpec.value,
extensions: previewSpec,
});
let width: number = 500;

View File

@@ -14,6 +14,7 @@
{ "path": "../../blocks/paragraph" },
{ "path": "../../blocks/surface" },
{ "path": "../../components" },
{ "path": "../../ext-loader" },
{ "path": "../../model" },
{ "path": "../../shared" },
{ "path": "../../../framework/global" },