fix(hooks): missing page preview and references (#4863)

This commit is contained in:
EYHN authored and GitHub committed 2023-11-09 08:59:36 +00:00
1 parent 248fb1fa69
commit e3e0553c56
2 files changed
+21 -10

No files matched your search

@@ -25,14 +25,19 @@ export function useBlockSuitePagePreview(page: Page | null): Atom<string> {
} else if (weakMap.has(page)) {
return weakMap.get(page) as Atom<string>;
} else {
const baseAtom = atom<string>(getPagePreviewText(page));
const baseAtom = atom<string>('');
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);
@@ -19,13 +19,19 @@ const getPageReferencesAtom = (page: Page | null) => {
}
if (!weakMap.has(page)) {
const baseAtom = atom<string[]>(getPageReferences(page));
const baseAtom = atom<string[]>([]);
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);