mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-19 19:16:29 +08:00
27 lines
825 B
TypeScript
27 lines
825 B
TypeScript
import { assertExists } from '@blocksuite/store';
|
|
import { useEffect, useState } from 'react';
|
|
|
|
import type { BlockSuiteWorkspace } from '../shared';
|
|
|
|
export function useBlockSuiteWorkspacePageTitle(
|
|
blockSuiteWorkspace: BlockSuiteWorkspace,
|
|
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 || 'AFFiNE');
|
|
const dispose = blockSuiteWorkspace.meta.pageMetasUpdated.on(() => {
|
|
const page = blockSuiteWorkspace.getPage(pageId);
|
|
assertExists(page);
|
|
setTitle(page?.meta.title || 'AFFiNE');
|
|
});
|
|
return () => {
|
|
dispose.dispose();
|
|
};
|
|
}, [blockSuiteWorkspace, pageId]);
|
|
|
|
return title;
|
|
}
|