mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-02 01:49:51 +08:00
refactor(editor): remove AbstractEditor type and feature flags in test (#10308)
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
import {
|
||||
CommunityCanvasTextFonts,
|
||||
DocModeProvider,
|
||||
EdgelessEditorBlockSpecs,
|
||||
EditorSettingExtension,
|
||||
FeatureFlagService,
|
||||
FontConfigExtension,
|
||||
PageEditorBlockSpecs,
|
||||
ParseDocUrlExtension,
|
||||
RefNodeSlotsProvider,
|
||||
} from '@blocksuite/blocks';
|
||||
import { type AffineEditorContainer } from '@blocksuite/presets';
|
||||
import type { ExtensionType, Store, Workspace } from '@blocksuite/store';
|
||||
|
||||
import {
|
||||
mockDocModeService,
|
||||
mockEditorSetting,
|
||||
mockParseDocUrlService,
|
||||
} from '../../_common/mock-services';
|
||||
|
||||
export function getTestCommonExtensions(
|
||||
editor: AffineEditorContainer
|
||||
): ExtensionType[] {
|
||||
return [
|
||||
FontConfigExtension(CommunityCanvasTextFonts),
|
||||
EditorSettingExtension(mockEditorSetting()),
|
||||
ParseDocUrlExtension(mockParseDocUrlService(editor.doc.workspace)),
|
||||
{
|
||||
setup: di => {
|
||||
di.override(DocModeProvider, mockDocModeService(editor));
|
||||
},
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
export function createTestEditor(store: Store, workspace: Workspace) {
|
||||
store
|
||||
.get(FeatureFlagService)
|
||||
.setFlag('enable_advanced_block_visibility', true);
|
||||
|
||||
const editor = document.createElement('affine-editor-container');
|
||||
|
||||
editor.autofocus = true;
|
||||
editor.doc = store;
|
||||
|
||||
const defaultExtensions = getTestCommonExtensions(editor);
|
||||
editor.pageSpecs = [...PageEditorBlockSpecs, ...defaultExtensions];
|
||||
editor.edgelessSpecs = [...EdgelessEditorBlockSpecs, ...defaultExtensions];
|
||||
|
||||
editor.std
|
||||
.get(RefNodeSlotsProvider)
|
||||
.docLinkClicked.on(({ pageId: docId }) => {
|
||||
const target = workspace.getDoc(docId);
|
||||
if (!target) {
|
||||
throw new Error(`Failed to jump to doc ${docId}`);
|
||||
}
|
||||
target.load();
|
||||
editor.doc = target;
|
||||
});
|
||||
|
||||
return editor;
|
||||
}
|
||||
Reference in New Issue
Block a user