From 4295f5e7c1529a299966fa02b6bda7d144d6af20 Mon Sep 17 00:00:00 2001 From: EYHN Date: Thu, 26 Sep 2024 06:36:41 +0000 Subject: [PATCH] fix(core): open page info modal error (#8396) --- .../page-properties/info-modal/info-modal.tsx | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/packages/frontend/core/src/components/affine/page-properties/info-modal/info-modal.tsx b/packages/frontend/core/src/components/affine/page-properties/info-modal/info-modal.tsx index b613a2e5db0b..1f52f51c0e30 100644 --- a/packages/frontend/core/src/components/affine/page-properties/info-modal/info-modal.tsx +++ b/packages/frontend/core/src/components/affine/page-properties/info-modal/info-modal.tsx @@ -7,13 +7,24 @@ import { import { DocInfoService } from '@affine/core/modules/doc-info'; import { DocsSearchService } from '@affine/core/modules/docs-search'; import { useI18n } from '@affine/i18n'; +import type { Doc } from '@toeverything/infra'; import { + DocsService, + FrameworkScope, LiveData, useLiveData, useService, useServices, } from '@toeverything/infra'; -import { Suspense, useCallback, useContext, useMemo, useRef } from 'react'; +import { + Suspense, + useCallback, + useContext, + useEffect, + useMemo, + useRef, + useState, +} from 'react'; import { BlocksuiteHeaderTitle } from '../../../blocksuite/block-suite-header/title'; import { managerContext } from '../common'; @@ -31,10 +42,26 @@ import { TimeRow } from './time-row'; export const InfoModal = () => { const modal = useService(DocInfoService).modal; const docId = useLiveData(modal.docId$); + const docsService = useService(DocsService); + + const [doc, setDoc] = useState(null); + useEffect(() => { + if (!docId) return; + const docRef = docsService.open(docId); + setDoc(docRef.doc); + return () => { + docRef.release(); + setDoc(null); + }; + }, [docId, docsService]); - if (!docId) return null; + if (!doc || !docId) return null; - return ; + return ( + + + + ); }; const InfoModalOpened = ({ docId }: { docId: string }) => {