diff --git a/packages/frontend/core/src/components/attachment-viewer/index.tsx b/packages/frontend/core/src/components/attachment-viewer/index.tsx
index 3ed74e0f91181..d36e81344aaba 100644
--- a/packages/frontend/core/src/components/attachment-viewer/index.tsx
+++ b/packages/frontend/core/src/components/attachment-viewer/index.tsx
@@ -1,16 +1,12 @@
import { ViewBody, ViewHeader } from '@affine/core/modules/workbench';
-import type { AttachmentBlockModel } from '@blocksuite/affine/blocks';
import { AttachmentPreviewErrorBoundary, Error } from './error';
-import { PDFViewer, type PDFViewerProps } from './pdf-viewer';
+import { PDFViewer } from './pdf-viewer';
import * as styles from './styles.css';
import { Titlebar } from './titlebar';
+import type { AttachmentViewerProps, PDFViewerProps } from './types';
import { buildAttachmentProps } from './utils';
-export type AttachmentViewerProps = {
- model: AttachmentBlockModel;
-};
-
// In Peek view
export const AttachmentViewer = ({ model }: AttachmentViewerProps) => {
const props = buildAttachmentProps(model);
diff --git a/packages/frontend/core/src/components/attachment-viewer/pdf-viewer-embedded-inner.tsx b/packages/frontend/core/src/components/attachment-viewer/pdf-viewer-embedded-inner.tsx
index 660b13dcb39db..026431e7a439b 100644
--- a/packages/frontend/core/src/components/attachment-viewer/pdf-viewer-embedded-inner.tsx
+++ b/packages/frontend/core/src/components/attachment-viewer/pdf-viewer-embedded-inner.tsx
@@ -28,9 +28,9 @@ import {
useState,
} from 'react';
-import type { PDFViewerProps } from './pdf-viewer';
import * as styles from './styles.css';
import * as embeddedStyles from './styles.embedded.css';
+import type { PDFViewerProps } from './types';
function defaultMeta() {
return {
@@ -40,9 +40,7 @@ function defaultMeta() {
};
}
-type PDFViewerEmbeddedInnerProps = PDFViewerProps;
-
-export function PDFViewerEmbeddedInner({ model }: PDFViewerEmbeddedInnerProps) {
+export function PDFViewerEmbeddedInner({ model }: PDFViewerProps) {
const scale = window.devicePixelRatio;
const peekView = useService(PeekViewService).peekView;
const pdfService = useService(PDFService);
diff --git a/packages/frontend/core/src/components/attachment-viewer/pdf-viewer-embedded.tsx b/packages/frontend/core/src/components/attachment-viewer/pdf-viewer-embedded.tsx
index a0846beb36536..302870db72fa3 100644
--- a/packages/frontend/core/src/components/attachment-viewer/pdf-viewer-embedded.tsx
+++ b/packages/frontend/core/src/components/attachment-viewer/pdf-viewer-embedded.tsx
@@ -1,14 +1,13 @@
-import type { AttachmentBlockModel } from '@blocksuite/affine/blocks';
-
+import { AttachmentPreviewErrorBoundary } from './error';
import { PDFViewerEmbeddedInner } from './pdf-viewer-embedded-inner';
+import type { AttachmentViewerProps } from './types';
+import { buildAttachmentProps } from './utils';
-export interface PDFViewerEmbeddedProps {
- model: AttachmentBlockModel;
- name: string;
- ext: string;
- size: string;
-}
-
-export function PDFViewerEmbedded(props: PDFViewerEmbeddedProps) {
- return ;
-}
+// In Embed view
+export const AttachmentEmbedPreview = ({ model }: AttachmentViewerProps) => {
+ return (
+
+
+
+ );
+};
diff --git a/packages/frontend/core/src/components/attachment-viewer/pdf-viewer.tsx b/packages/frontend/core/src/components/attachment-viewer/pdf-viewer.tsx
index 49c4c30cef3a7..27b397c19a54a 100644
--- a/packages/frontend/core/src/components/attachment-viewer/pdf-viewer.tsx
+++ b/packages/frontend/core/src/components/attachment-viewer/pdf-viewer.tsx
@@ -1,11 +1,11 @@
import { type PDF, PDFService, PDFStatus } from '@affine/core/modules/pdf';
import { LoadingSvg } from '@affine/core/modules/pdf/views';
import track from '@affine/track';
-import type { AttachmentBlockModel } from '@blocksuite/affine/blocks';
import { useLiveData, useService } from '@toeverything/infra';
import { useEffect, useState } from 'react';
import { PDFViewerInner } from './pdf-viewer-inner';
+import type { PDFViewerProps } from './types';
function PDFViewerStatus({ pdf, ...props }: PDFViewerProps & { pdf: PDF }) {
const state = useLiveData(pdf.state$);
@@ -23,13 +23,6 @@ function PDFViewerStatus({ pdf, ...props }: PDFViewerProps & { pdf: PDF }) {
return ;
}
-export interface PDFViewerProps {
- model: AttachmentBlockModel;
- name: string;
- ext: string;
- size: string;
-}
-
export function PDFViewer({ model, ...props }: PDFViewerProps) {
const pdfService = useService(PDFService);
const [pdf, setPdf] = useState(null);
diff --git a/packages/frontend/core/src/components/attachment-viewer/types.ts b/packages/frontend/core/src/components/attachment-viewer/types.ts
new file mode 100644
index 0000000000000..956417afc99b1
--- /dev/null
+++ b/packages/frontend/core/src/components/attachment-viewer/types.ts
@@ -0,0 +1,12 @@
+import type { AttachmentBlockModel } from '@blocksuite/affine/blocks';
+
+export type AttachmentViewerProps = {
+ model: AttachmentBlockModel;
+};
+
+export type PDFViewerProps = {
+ model: AttachmentBlockModel;
+ name: string;
+ ext: string;
+ size: string;
+};
diff --git a/packages/frontend/core/src/components/attachment-viewer/utils.ts b/packages/frontend/core/src/components/attachment-viewer/utils.ts
index 445dbf2ece5c6..f241e05b014f9 100644
--- a/packages/frontend/core/src/components/attachment-viewer/utils.ts
+++ b/packages/frontend/core/src/components/attachment-viewer/utils.ts
@@ -3,7 +3,7 @@ import type { AttachmentBlockModel } from '@blocksuite/affine/blocks';
import { filesize } from 'filesize';
import { downloadBlob } from '../../utils/resource';
-import type { PDFViewerProps } from './pdf-viewer';
+import type { PDFViewerProps } from './types';
export async function getAttachmentBlob(model: AttachmentBlockModel) {
const sourceId = model.sourceId;
diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/spec-patchers.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/spec-patchers.tsx
index e958ec08eb7c5..961a297b25061 100644
--- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/spec-patchers.tsx
+++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/spec-patchers.tsx
@@ -8,9 +8,6 @@ import {
type useConfirmModal,
} from '@affine/component';
import { AIChatBlockSchema } from '@affine/core/blocksuite/blocks';
-import { AttachmentPreviewErrorBoundary } from '@affine/core/components/attachment-viewer/error';
-import { PDFViewerEmbedded } from '@affine/core/components/attachment-viewer/pdf-viewer-embedded';
-import { buildAttachmentProps } from '@affine/core/components/attachment-viewer/utils';
import { WorkspaceServerService } from '@affine/core/modules/cloud';
import { type DocService, DocsService } from '@affine/core/modules/doc';
import type { EditorService } from '@affine/core/modules/editor';
@@ -74,6 +71,7 @@ import { literal } from 'lit/static-html.js';
import { pick } from 'lodash-es';
import type { DocProps } from '../../../../../blocksuite/initialization';
+import { AttachmentEmbedPreview } from '../../../../attachment-viewer/pdf-viewer-embedded';
import { generateUrl } from '../../../../hooks/affine/use-share-url';
import { createKeyboardToolbarConfig } from './widgets/keyboard-toolbar';
@@ -624,12 +622,7 @@ export function patchForAttachmentEmbedViews(
});
},
template: (model, _blobUrl) =>
- reactToLit(
-
-
- ,
- false
- ),
+ reactToLit(, false),
}));
},
};