From e3e0553c56fe91fc295066d920074c34769f214b Mon Sep 17 00:00:00 2001 From: EYHN Date: Thu, 9 Nov 2023 16:59:36 +0800 Subject: [PATCH] fix(hooks): missing page preview and references (#4863) --- .../hooks/src/use-block-suite-page-preview.ts | 15 ++++++++++----- .../hooks/src/use-block-suite-page-references.ts | 16 +++++++++++----- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/packages/frontend/hooks/src/use-block-suite-page-preview.ts b/packages/frontend/hooks/src/use-block-suite-page-preview.ts index fc630c5f23..3947839f67 100644 --- a/packages/frontend/hooks/src/use-block-suite-page-preview.ts +++ b/packages/frontend/hooks/src/use-block-suite-page-preview.ts @@ -25,14 +25,19 @@ export function useBlockSuitePagePreview(page: Page | null): Atom { } else if (weakMap.has(page)) { return weakMap.get(page) as Atom; } else { - const baseAtom = atom(getPagePreviewText(page)); + const baseAtom = atom(''); baseAtom.onMount = set => { - const disposable = page.slots.yUpdated.on(() => { - set(getPagePreviewText(page)); - }); + const disposables = [ + page.slots.ready.on(() => { + set(getPagePreviewText(page)); + }), + page.slots.yUpdated.on(() => { + set(getPagePreviewText(page)); + }), + ]; set(getPagePreviewText(page)); return () => { - disposable.dispose(); + disposables.forEach(disposable => disposable.dispose()); }; }; weakMap.set(page, baseAtom); diff --git a/packages/frontend/hooks/src/use-block-suite-page-references.ts b/packages/frontend/hooks/src/use-block-suite-page-references.ts index 3a164a868e..6b78117748 100644 --- a/packages/frontend/hooks/src/use-block-suite-page-references.ts +++ b/packages/frontend/hooks/src/use-block-suite-page-references.ts @@ -19,13 +19,19 @@ const getPageReferencesAtom = (page: Page | null) => { } if (!weakMap.has(page)) { - const baseAtom = atom(getPageReferences(page)); + const baseAtom = atom([]); baseAtom.onMount = set => { - const dispose = page.slots.yUpdated.on(() => { - set(getPageReferences(page)); - }); + const disposables = [ + page.slots.ready.on(() => { + set(getPageReferences(page)); + }), + page.slots.yUpdated.on(() => { + set(getPageReferences(page)); + }), + ]; + set(getPageReferences(page)); return () => { - dispose.dispose(); + disposables.forEach(disposable => disposable.dispose()); }; }; weakMap.set(page, baseAtom);