mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-15 17:16:16 +08:00
26 lines
816 B
TypeScript
26 lines
816 B
TypeScript
import type { Workspace } from '@blocksuite/store';
|
|
import { assertExists } from '@blocksuite/store';
|
|
import { useEffect, useState } from 'react';
|
|
|
|
export function useBlockSuiteWorkspacePageTitle(
|
|
blockSuiteWorkspace: Workspace,
|
|
pageId: string
|
|
) {
|
|
const page = blockSuiteWorkspace.getPage(pageId);
|
|
const [title, setTitle] = useState(() => page?.meta.title || 'AFFiNE');
|
|
useEffect(() => {
|
|
const page = blockSuiteWorkspace.getPage(pageId);
|
|
setTitle(page?.meta.title || 'Untitled');
|
|
const dispose = blockSuiteWorkspace.meta.pageMetasUpdated.on(() => {
|
|
const page = blockSuiteWorkspace.getPage(pageId);
|
|
assertExists(page);
|
|
setTitle(page?.meta.title || 'Untitled');
|
|
});
|
|
return () => {
|
|
dispose.dispose();
|
|
};
|
|
}, [blockSuiteWorkspace, pageId]);
|
|
|
|
return title;
|
|
}
|