refactor(editor): improve config extension (#11006)

This commit is contained in:
Saul-Mirone
2025-03-19 13:38:09 +00:00
parent c1e16aeaa7
commit 1c6a876e6a
6 changed files with 37 additions and 65 deletions

View File

@@ -11,7 +11,7 @@ import { FootNoteNodeConfigIdentifier } from './nodes/footnote-node/footnote-con
import { builtinInlineLinkToolbarConfig } from './nodes/link-node/configs/toolbar.js';
import { builtinInlineReferenceToolbarConfig } from './nodes/reference-node/configs/toolbar.js';
import {
ReferenceNodeConfigIdentifier,
ReferenceNodeConfigExtension,
ReferenceNodeConfigProvider,
} from './nodes/reference-node/reference-config.js';
@@ -123,7 +123,8 @@ export const ReferenceInlineSpecExtension = InlineSpecExtension(
provider => {
const std = provider.get(StdIdentifier);
const configProvider = new ReferenceNodeConfigProvider(std);
const config = provider.getOptional(ReferenceNodeConfigIdentifier) ?? {};
const config =
provider.getOptional(ReferenceNodeConfigExtension.identifier) ?? {};
if (config.customContent) {
configProvider.setCustomContent(config.customContent);
}

View File

@@ -1,6 +1,7 @@
import type { BlockStdScope } from '@blocksuite/block-std';
import { createIdentifier } from '@blocksuite/global/di';
import type { ExtensionType } from '@blocksuite/store';
import {
type BlockStdScope,
ConfigExtensionFactory,
} from '@blocksuite/block-std';
import type { TemplateResult } from 'lit';
import type { AffineReference } from './reference-node';
@@ -11,18 +12,8 @@ export interface ReferenceNodeConfig {
hidePopup?: boolean;
}
export const ReferenceNodeConfigIdentifier =
createIdentifier<ReferenceNodeConfig>('AffineReferenceNodeConfig');
export function ReferenceNodeConfigExtension(
config: ReferenceNodeConfig
): ExtensionType {
return {
setup: di => {
di.addImpl(ReferenceNodeConfigIdentifier, () => ({ ...config }));
},
};
}
export const ReferenceNodeConfigExtension =
ConfigExtensionFactory<ReferenceNodeConfig>('AffineReferenceNodeConfig');
export class ReferenceNodeConfigProvider {
private _customContent: