diff --git a/blocksuite/affine/blocks/block-bookmark/src/commands/insert-link-by-quick-search.ts b/blocksuite/affine/blocks/block-bookmark/src/commands/insert-link-by-quick-search.ts index 84cf68c45a..5b18116b1a 100644 --- a/blocksuite/affine/blocks/block-bookmark/src/commands/insert-link-by-quick-search.ts +++ b/blocksuite/affine/blocks/block-bookmark/src/commands/insert-link-by-quick-search.ts @@ -4,10 +4,7 @@ import { insertEmbedLinkedDocCommand, type LinkableFlavour, } from '@blocksuite/affine-block-embed'; -import { - FeatureFlagService, - QuickSearchProvider, -} from '@blocksuite/affine-shared/services'; +import { QuickSearchProvider } from '@blocksuite/affine-shared/services'; import type { Command } from '@blocksuite/std'; import { insertBookmarkCommand } from './insert-bookmark'; @@ -41,35 +38,20 @@ export const insertLinkByQuickSearchCommand: Command< // add normal link; if ('externalUrl' in result) { - const featureFlagService = std.get(FeatureFlagService); - const enableEmbedIframeBlock = featureFlagService.getFlag( - 'enable_embed_iframe_block' - ); - if (enableEmbedIframeBlock) { - // try to insert embed iframe block first - const [success, { flavour }] = std.command - .chain() - .try(chain => [ - chain.pipe(insertEmbedIframeWithUrlCommand, { - url: result.externalUrl, - }), - chain.pipe(insertBookmarkCommand, { url: result.externalUrl }), - ]) - .run(); - if (!success || !flavour) return null; - return { - flavour: flavour as LinkableFlavour, - }; - } else { - const [success, { flavour }] = std.command.exec( - insertBookmarkCommand, - { url: result.externalUrl } - ); - if (!success || !flavour) return null; - return { - flavour: flavour as LinkableFlavour, - }; - } + // try to insert embed iframe block first + const [success, { flavour }] = std.command + .chain() + .try(chain => [ + chain.pipe(insertEmbedIframeWithUrlCommand, { + url: result.externalUrl, + }), + chain.pipe(insertBookmarkCommand, { url: result.externalUrl }), + ]) + .run(); + if (!success || !flavour) return null; + return { + flavour: flavour as LinkableFlavour, + }; } return null; diff --git a/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/configs/slash-menu/slash-menu.ts b/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/configs/slash-menu/slash-menu.ts index b184d3d77a..431ef910d3 100644 --- a/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/configs/slash-menu/slash-menu.ts +++ b/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/configs/slash-menu/slash-menu.ts @@ -1,5 +1,4 @@ import { getSelectedModelsCommand } from '@blocksuite/affine-shared/commands'; -import { FeatureFlagService } from '@blocksuite/affine-shared/services'; import type { SlashMenuConfig } from '@blocksuite/affine-widget-slash-menu'; import { EmbedIcon } from '@blocksuite/icons/lit'; @@ -17,12 +16,8 @@ export const embedIframeSlashMenuConfig: SlashMenuConfig = { caption: 'Embed', }, group: '4_Content & Media@5', - when: ({ model, std }) => { - const featureFlagService = std.get(FeatureFlagService); - return ( - featureFlagService.getFlag('enable_embed_iframe_block') && - model.doc.schema.flavourSchemaMap.has('affine:embed-iframe') - ); + when: ({ model }) => { + return model.doc.schema.flavourSchemaMap.has('affine:embed-iframe'); }, action: ({ std }) => { std.command diff --git a/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/embed-edgeless-iframe-block.ts b/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/embed-edgeless-iframe-block.ts index 4122371781..0e790756c8 100644 --- a/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/embed-edgeless-iframe-block.ts +++ b/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/embed-edgeless-iframe-block.ts @@ -1,7 +1,6 @@ import { EdgelessLegacySlotIdentifier } from '@blocksuite/affine-block-surface'; import { Bound } from '@blocksuite/global/gfx'; import { toGfxBlockComponent } from '@blocksuite/std'; -import { nothing } from 'lit'; import { styleMap } from 'lit/directives/style-map.js'; import { html } from 'lit/static-html.js'; @@ -36,10 +35,6 @@ export class EmbedEdgelessIframeBlockComponent extends toGfxBlockComponent( } override renderGfxBlock() { - if (!this.isEmbedIframeBlockEnabled) { - return nothing; - } - const bound = Bound.deserialize(this.model.props.xywh$.value); const scale = this.model.props.scale$.value; const width = bound.w / scale; diff --git a/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/embed-iframe-block.ts b/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/embed-iframe-block.ts index 91e408b4b7..5f18d771b3 100644 --- a/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/embed-iframe-block.ts +++ b/blocksuite/affine/blocks/block-embed/src/embed-iframe-block/embed-iframe-block.ts @@ -8,7 +8,6 @@ import type { EmbedIframeBlockModel } from '@blocksuite/affine-model'; import { type EmbedIframeData, EmbedIframeService, - FeatureFlagService, type IframeOptions, LinkPreviewerService, NotificationProvider, @@ -23,7 +22,7 @@ import { type ReadonlySignal, signal, } from '@preact/signals-core'; -import { html, nothing } from 'lit'; +import { html } from 'lit'; import { query } from 'lit/decorators.js'; import { type ClassInfo, classMap } from 'lit/directives/class-map.js'; import { ifDefined } from 'lit/directives/if-defined.js'; @@ -106,12 +105,6 @@ export class EmbedIframeBlockComponent extends CaptionedBlockComponent { - const featureFlagService = std.get(FeatureFlagService); - return ( - featureFlagService.getFlag('enable_embed_iframe_block') && - std.store.schema.flavourSchemaMap.has('affine:embed-iframe') - ); + return std.store.schema.flavourSchemaMap.has('affine:embed-iframe'); }, action: async ({ std }) => { std.command diff --git a/blocksuite/affine/inlines/link/src/link-node/configs/toolbar.ts b/blocksuite/affine/inlines/link/src/link-node/configs/toolbar.ts index 91d7cb247f..80fe5da4a1 100644 --- a/blocksuite/affine/inlines/link/src/link-node/configs/toolbar.ts +++ b/blocksuite/affine/inlines/link/src/link-node/configs/toolbar.ts @@ -3,7 +3,6 @@ import { ActionPlacement, EmbedIframeService, EmbedOptionProvider, - FeatureFlagService, type ToolbarAction, type ToolbarActionGroup, type ToolbarModuleConfig, @@ -196,13 +195,8 @@ export const builtinInlineLinkToolbarConfig = { if (!url) return false; // check if the url can be embedded as iframe block - const featureFlag = ctx.std.get(FeatureFlagService); const embedIframeService = ctx.std.get(EmbedIframeService); - const isEmbedIframeEnabled = featureFlag.getFlag( - 'enable_embed_iframe_block' - ); - const canEmbedAsIframe = - isEmbedIframeEnabled && embedIframeService.canEmbed(url); + const canEmbedAsIframe = embedIframeService.canEmbed(url); const options = ctx.std .get(EmbedOptionProvider) @@ -234,12 +228,8 @@ export const builtinInlineLinkToolbarConfig = { let blockId: string | undefined; // first try to embed as iframe block - const featureFlag = ctx.std.get(FeatureFlagService); - const isEmbedIframeEnabled = featureFlag.getFlag( - 'enable_embed_iframe_block' - ); const embedIframeService = ctx.std.get(EmbedIframeService); - if (isEmbedIframeEnabled && embedIframeService.canEmbed(url)) { + if (embedIframeService.canEmbed(url)) { blockId = embedIframeService.addEmbedIframeBlock( props, parent.id, diff --git a/blocksuite/affine/shared/src/services/feature-flag-service.ts b/blocksuite/affine/shared/src/services/feature-flag-service.ts index 60022ae2da..ed72544ece 100644 --- a/blocksuite/affine/shared/src/services/feature-flag-service.ts +++ b/blocksuite/affine/shared/src/services/feature-flag-service.ts @@ -18,7 +18,6 @@ export interface BlockSuiteFlags { enable_mobile_linked_doc_menu: boolean; enable_block_meta: boolean; enable_callout: boolean; - enable_embed_iframe_block: boolean; enable_edgeless_scribbled_style: boolean; } @@ -42,7 +41,6 @@ export class FeatureFlagService extends StoreExtension { enable_mobile_linked_doc_menu: false, enable_block_meta: false, enable_callout: false, - enable_embed_iframe_block: false, enable_edgeless_scribbled_style: false, }); diff --git a/packages/frontend/core/src/modules/feature-flag/constant.ts b/packages/frontend/core/src/modules/feature-flag/constant.ts index aabf793d53..1dc84c5747 100644 --- a/packages/frontend/core/src/modules/feature-flag/constant.ts +++ b/packages/frontend/core/src/modules/feature-flag/constant.ts @@ -105,16 +105,6 @@ export const AFFINE_FLAGS = { configurable: isCanaryBuild, defaultState: isCanaryBuild, }, - enable_embed_iframe_block: { - category: 'blocksuite', - bsFlag: 'enable_embed_iframe_block', - displayName: - 'com.affine.settings.workspace.experimental-features.enable-embed-iframe-block.name', - description: - 'com.affine.settings.workspace.experimental-features.enable-embed-iframe-block.description', - configurable: isCanaryBuild, - defaultState: false, - }, enable_emoji_folder_icon: { category: 'affine',