diff --git a/packages/common/env/src/global.ts b/packages/common/env/src/global.ts index 1c0394df20..bc111b845f 100644 --- a/packages/common/env/src/global.ts +++ b/packages/common/env/src/global.ts @@ -19,6 +19,7 @@ export const runtimeFlagsSchema = z.object({ downloadUrl: z.string(), // see: tools/workers imageProxyUrl: z.string(), + linkPreviewUrl: z.string(), enablePreloading: z.boolean(), enableNewSettingModal: z.boolean(), enableNewSettingUnstableApi: z.boolean(), diff --git a/packages/frontend/core/.webpack/runtime-config.ts b/packages/frontend/core/.webpack/runtime-config.ts index a6ac29cd59..2094657c57 100644 --- a/packages/frontend/core/.webpack/runtime-config.ts +++ b/packages/frontend/core/.webpack/runtime-config.ts @@ -19,6 +19,7 @@ export function getRuntimeConfig(buildFlags: BuildFlags): RuntimeConfig { changelogUrl: 'https://affine.pro/what-is-new', downloadUrl: 'https://affine.pro/download', imageProxyUrl: '/api/worker/image-proxy', + linkPreviewUrl: '/api/worker/link-preview', enablePreloading: true, enableNewSettingModal: true, enableNewSettingUnstableApi: false, @@ -61,6 +62,7 @@ export function getRuntimeConfig(buildFlags: BuildFlags): RuntimeConfig { changelogUrl: 'https://github.com/toeverything/AFFiNE/releases', downloadUrl: 'https://affine.pro/download', imageProxyUrl: '/api/worker/image-proxy', + linkPreviewUrl: '/api/worker/link-preview', enablePreloading: true, enableNewSettingModal: true, enableNewSettingUnstableApi: false, diff --git a/packages/frontend/core/src/pages/workspace/detail-page/detail-page.tsx b/packages/frontend/core/src/pages/workspace/detail-page/detail-page.tsx index a24fad4a2d..4d56cdbb4c 100644 --- a/packages/frontend/core/src/pages/workspace/detail-page/detail-page.tsx +++ b/packages/frontend/core/src/pages/workspace/detail-page/detail-page.tsx @@ -5,6 +5,11 @@ import { useWorkspaceStatus } from '@affine/core/hooks/use-workspace-status'; import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace'; import { WorkspaceSubPath } from '@affine/core/shared'; import { globalBlockSuiteSchema, SyncEngineStep } from '@affine/workspace'; +import { + BookmarkService, + customImageProxyMiddleware, + ImageService, +} from '@blocksuite/blocks'; import type { AffineEditorContainer } from '@blocksuite/presets'; import type { Page, Workspace } from '@blocksuite/store'; import { appSettingAtom } from '@toeverything/infra/atom'; @@ -138,6 +143,13 @@ const DetailPageImpl = memo(function DetailPageImpl({ page }: { page: Page }) { ); } } catch {} + + ImageService.setImageProxyURL(runtimeConfig.imageProxyUrl); + BookmarkService.setLinkPreviewEndpoint(runtimeConfig.linkPreviewUrl); + editor.host?.std.clipboard.use( + customImageProxyMiddleware(runtimeConfig.imageProxyUrl) + ); + setPageMode(currentPageId, mode); // fixme: it seems pageLinkClicked is not triggered sometimes? const dispose = editor.slots.pageLinkClicked.on(({ pageId }) => {