mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-09-06 00:41:39 +08:00
39 lines
1.5 KiB
TypeScript
39 lines
1.5 KiB
TypeScript
import { EmbedYoutubeBlockSchema } from '@blocksuite/affine-model';
|
|
import { ToolbarModuleExtension } from '@blocksuite/affine-shared/services';
|
|
import { SlashMenuConfigExtension } from '@blocksuite/affine-widget-slash-menu';
|
|
import {
|
|
BlockServiceIdentifier,
|
|
BlockViewExtension,
|
|
FlavourExtension,
|
|
} from '@blocksuite/block-std';
|
|
import type { ExtensionType } from '@blocksuite/store';
|
|
import { literal } from 'lit/static-html.js';
|
|
|
|
import { createBuiltinToolbarConfigForExternal } from '../configs/toolbar';
|
|
import { EmbedYoutubeBlockAdapterExtensions } from './adapters/extension';
|
|
import { embedYoutubeSlashMenuConfig } from './configs/slash-menu';
|
|
import { EmbedYoutubeBlockComponent } from './embed-youtube-block';
|
|
import {
|
|
EmbedYoutubeBlockOptionConfig,
|
|
EmbedYoutubeBlockService,
|
|
} from './embed-youtube-service';
|
|
|
|
const flavour = EmbedYoutubeBlockSchema.model.flavour;
|
|
|
|
export const EmbedYoutubeBlockSpec: ExtensionType[] = [
|
|
FlavourExtension(flavour),
|
|
EmbedYoutubeBlockService,
|
|
BlockViewExtension(flavour, model => {
|
|
return model.parent?.flavour === 'affine:surface'
|
|
? literal`affine-embed-edgeless-youtube-block`
|
|
: literal`affine-embed-youtube-block`;
|
|
}),
|
|
EmbedYoutubeBlockAdapterExtensions,
|
|
EmbedYoutubeBlockOptionConfig,
|
|
ToolbarModuleExtension({
|
|
id: BlockServiceIdentifier(flavour),
|
|
config: createBuiltinToolbarConfigForExternal(EmbedYoutubeBlockComponent),
|
|
}),
|
|
SlashMenuConfigExtension('affine:embed-youtube', embedYoutubeSlashMenuConfig),
|
|
].flat();
|