mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-27 10:52:40 +08:00
To close: [BS-2665](https://linear.app/affine-design/issue/BS-2665/iframe-embed-block-edgeless-mode-支持) [BS-2666](https://linear.app/affine-design/issue/BS-2666/iframe-embed-block-edgeless-toolbar) [BS-2667](https://linear.app/affine-design/issue/BS-2667/iframe-embed-block-edgeless-mode-拖拽调整支持) [BS-2789](https://linear.app/affine-design/issue/BS-2789/iframe-embed-block-edgeless-block-component)
26 lines
908 B
TypeScript
26 lines
908 B
TypeScript
import '@blocksuite/affine-block-embed/effects';
|
|
|
|
import { insertEmbedCard } from '@blocksuite/affine-block-embed';
|
|
import type { EmbedCardStyle } from '@blocksuite/affine-model';
|
|
import { EmbedOptionProvider } from '@blocksuite/affine-shared/services';
|
|
import type { Command } from '@blocksuite/block-std';
|
|
|
|
export const insertBookmarkCommand: Command<
|
|
{ url: string },
|
|
{ blockId: string; flavour: string }
|
|
> = (ctx, next) => {
|
|
const { url, std } = ctx;
|
|
const embedOptions = std.get(EmbedOptionProvider).getEmbedBlockOptions(url);
|
|
|
|
let flavour = 'affine:bookmark';
|
|
let targetStyle: EmbedCardStyle = 'vertical';
|
|
const props: Record<string, unknown> = { url };
|
|
if (embedOptions) {
|
|
flavour = embedOptions.flavour;
|
|
targetStyle = embedOptions.styles[0];
|
|
}
|
|
const blockId = insertEmbedCard(std, { flavour, targetStyle, props });
|
|
if (!blockId) return;
|
|
next({ blockId, flavour });
|
|
};
|