fix(core): page update date (#4502)

This commit is contained in:
Alex Yang
2023-09-25 23:09:52 -05:00
committed by GitHub
parent eb728f7ef2
commit 61044d91a8
@@ -4,7 +4,7 @@ import { PageNotFoundError } from '@affine/env/constant';
import type { LayoutNode } from '@affine/sdk//entry'; import type { LayoutNode } from '@affine/sdk//entry';
import { rootBlockHubAtom } from '@affine/workspace/atom'; import { rootBlockHubAtom } from '@affine/workspace/atom';
import type { EditorContainer } from '@blocksuite/editor'; import type { EditorContainer } from '@blocksuite/editor';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists, DisposableGroup } from '@blocksuite/global/utils';
import type { Page, Workspace } from '@blocksuite/store'; import type { Page, Workspace } from '@blocksuite/store';
import { useBlockSuitePageMeta } from '@toeverything/hooks/use-block-suite-page-meta'; import { useBlockSuitePageMeta } from '@toeverything/hooks/use-block-suite-page-meta';
import { useBlockSuiteWorkspacePage } from '@toeverything/hooks/use-block-suite-workspace-page'; import { useBlockSuiteWorkspacePage } from '@toeverything/hooks/use-block-suite-workspace-page';
@@ -98,13 +98,17 @@ const EditorWrapper = memo(function EditorWrapper({
setBlockHub={setBlockHub} setBlockHub={setBlockHub}
onLoad={useCallback( onLoad={useCallback(
(page: Page, editor: EditorContainer) => { (page: Page, editor: EditorContainer) => {
page.workspace.setPageMeta(page.id, { const disposableGroup = new DisposableGroup();
updatedDate: Date.now(), disposableGroup.add(
}); page.slots.blockUpdated.once(() => {
page.workspace.setPageMeta(page.id, {
updatedDate: Date.now(),
});
})
);
localStorage.setItem('last_page_id', page.id); localStorage.setItem('last_page_id', page.id);
let dispose = () => {};
if (onLoad) { if (onLoad) {
dispose = onLoad(page, editor); disposableGroup.add(onLoad(page, editor));
} }
const rootStore = getCurrentStore(); const rootStore = getCurrentStore();
const editorItems = rootStore.get(pluginEditorAtom); const editorItems = rootStore.get(pluginEditorAtom);
@@ -124,7 +128,7 @@ const EditorWrapper = memo(function EditorWrapper({
}); });
return () => { return () => {
dispose(); disposableGroup.dispose();
clearTimeout(renderTimeout); clearTimeout(renderTimeout);
window.setTimeout(() => { window.setTimeout(() => {
disposes.forEach(dispose => dispose()); disposes.forEach(dispose => dispose());