From f35dc744dd7699aa469940ab4fa67ac5f2a6b737 Mon Sep 17 00:00:00 2001 From: donteatfriedrice Date: Wed, 7 Aug 2024 06:55:51 +0000 Subject: [PATCH] fix: render ai chat block in embed doc and surface ref (#7747) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BS-1017](https://linear.app/affine-design/issue/BS-1017/含有chat-block的页面被embed时,embed预览不会渲染chatblock) related: https://github.com/toeverything/blocksuite/pull/7845 --- .../blocksuite/block-suite-editor/index.tsx | 1 + .../blocksuite/block-suite-editor/specs/preview.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/preview.ts diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/index.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-editor/index.tsx index ba2af5c26a..a8d4c188c8 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/index.tsx +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/index.tsx @@ -1,3 +1,4 @@ export * from './blocksuite-editor'; import './ai/setup-provider'; +import './specs/preview'; diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/preview.ts b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/preview.ts new file mode 100644 index 0000000000..bec752a78f --- /dev/null +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/preview.ts @@ -0,0 +1,13 @@ +import type { BlockSpec } from '@blocksuite/block-std'; +import { SpecProvider } from '@blocksuite/blocks'; +import { AIChatBlockSpec, EdgelessAIChatBlockSpec } from '@blocksuite/presets'; + +const CustomSpecs: BlockSpec[] = [AIChatBlockSpec, EdgelessAIChatBlockSpec]; + +function patchPreviewSpec(id: string, specs: BlockSpec[]) { + const specProvider = SpecProvider.getInstance(); + specProvider.extendSpec(id, specs); +} + +// Patch edgeless preview spec for blocksuite surface-ref and embed-synced-doc +patchPreviewSpec('edgeless:preview', CustomSpecs);