feat(editor): add feature flag service (#9592)

This commit is contained in:
Saul-Mirone
2025-01-08 15:46:31 +00:00
parent fd26b72255
commit 3683297ccf
55 changed files with 283 additions and 188 deletions

View File

@@ -30,6 +30,7 @@ import {
import {
DocDisplayMetaService,
EditPropsStore,
FeatureFlagService,
FontLoaderService,
} from '@blocksuite/affine-shared/services';
import type { ExtensionType } from '@blocksuite/store';
@@ -73,3 +74,5 @@ export const EdgelessFirstPartyBlockSpecs: ExtensionType[] = [
EdgelessTextBlockSpec,
FontLoaderService,
].flat();
export const StoreExtensions: ExtensionType[] = [FeatureFlagService];

View File

@@ -1,3 +1,4 @@
export * from './common.js';
export * from './preset/edgeless-specs.js';
export * from './preset/mobile-patch.js';
export * from './preset/page-specs.js';

View File

@@ -3,6 +3,7 @@ import {
type ReferenceNodeConfig,
ReferenceNodeConfigIdentifier,
} from '@blocksuite/affine-components/rich-text';
import { FeatureFlagService } from '@blocksuite/affine-shared/services';
import {
type BlockStdScope,
ConfigIdentifier,
@@ -21,9 +22,10 @@ export class MobileSpecsPatches extends LifeCycleWatcher {
constructor(std: BlockStdScope) {
super(std);
const featureFlagService = std.get(FeatureFlagService);
std.doc.awarenessStore.setFlag('enable_mobile_keyboard_toolbar', true);
std.doc.awarenessStore.setFlag('enable_mobile_linked_doc_menu', true);
featureFlagService.setFlag('enable_mobile_keyboard_toolbar', true);
featureFlagService.setFlag('enable_mobile_linked_doc_menu', true);
}
static override setup(di: Container) {

View File

@@ -1,6 +1,6 @@
import { SpecProvider } from '@blocksuite/affine-shared/utils';
import { CommonBlockSpecs } from './common.js';
import { CommonBlockSpecs, StoreExtensions } from './common.js';
import { EdgelessEditorBlockSpecs } from './preset/edgeless-specs.js';
import { PageEditorBlockSpecs } from './preset/page-specs.js';
import {
@@ -9,6 +9,7 @@ import {
} from './preset/preview-specs.js';
export function registerSpecs() {
SpecProvider.getInstance().addSpec('store', StoreExtensions);
SpecProvider.getInstance().addSpec('common', CommonBlockSpecs);
SpecProvider.getInstance().addSpec('page', PageEditorBlockSpecs);
SpecProvider.getInstance().addSpec('edgeless', EdgelessEditorBlockSpecs);