feat(core): add document title for shared page (#5596)
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import type { PageMeta } from '@blocksuite/store';
|
||||||
import { noop } from 'lodash-es';
|
import { noop } from 'lodash-es';
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
|
|
||||||
@@ -14,3 +15,7 @@ export function useDocumentTitle(newTitle?: string | null) {
|
|||||||
};
|
};
|
||||||
}, [newTitle]);
|
}, [newTitle]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function usePageDocumentTitle(pageMeta?: PageMeta) {
|
||||||
|
useDocumentTitle(pageMeta?.title ? `${pageMeta.title} · AFFiNE` : null);
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { MainContainer } from '@affine/component/workspace';
|
import { MainContainer } from '@affine/component/workspace';
|
||||||
|
import { usePageDocumentTitle } from '@affine/core/hooks/use-global-state';
|
||||||
import { DebugLogger } from '@affine/debug';
|
import { DebugLogger } from '@affine/debug';
|
||||||
import { fetchWithTraceReport } from '@affine/graphql';
|
import { fetchWithTraceReport } from '@affine/graphql';
|
||||||
import { globalBlockSuiteSchema } from '@affine/workspace';
|
import { globalBlockSuiteSchema } from '@affine/workspace';
|
||||||
@@ -119,6 +120,8 @@ export const loader: LoaderFunction = async ({ params }) => {
|
|||||||
|
|
||||||
export const Component = (): ReactElement => {
|
export const Component = (): ReactElement => {
|
||||||
const { page, publishMode } = useLoaderData() as LoaderData;
|
const { page, publishMode } = useLoaderData() as LoaderData;
|
||||||
|
usePageDocumentTitle(page.meta);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<AppContainer>
|
<AppContainer>
|
||||||
<MainContainer>
|
<MainContainer>
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ import {
|
|||||||
import { TrashPageFooter } from '../../../components/pure/trash-page-footer';
|
import { TrashPageFooter } from '../../../components/pure/trash-page-footer';
|
||||||
import { TopTip } from '../../../components/top-tip';
|
import { TopTip } from '../../../components/top-tip';
|
||||||
import { useRegisterBlocksuiteEditorCommands } from '../../../hooks/affine/use-register-blocksuite-editor-commands';
|
import { useRegisterBlocksuiteEditorCommands } from '../../../hooks/affine/use-register-blocksuite-editor-commands';
|
||||||
import { useDocumentTitle } from '../../../hooks/use-global-state';
|
import { usePageDocumentTitle } from '../../../hooks/use-global-state';
|
||||||
import { useNavigateHelper } from '../../../hooks/use-navigate-helper';
|
import { useNavigateHelper } from '../../../hooks/use-navigate-helper';
|
||||||
import { performanceRenderLogger } from '../../../shared';
|
import { performanceRenderLogger } from '../../../shared';
|
||||||
import { PageNotFound } from '../../404';
|
import { PageNotFound } from '../../404';
|
||||||
@@ -115,7 +115,7 @@ const DetailPageImpl = memo(function DetailPageImpl({ page }: { page: Page }) {
|
|||||||
const mode = useAtomValue(currentModeAtom);
|
const mode = useAtomValue(currentModeAtom);
|
||||||
const setPageMode = useSetAtom(setPageModeAtom);
|
const setPageMode = useSetAtom(setPageModeAtom);
|
||||||
useRegisterBlocksuiteEditorCommands(currentPageId, mode);
|
useRegisterBlocksuiteEditorCommands(currentPageId, mode);
|
||||||
useDocumentTitle(pageMeta?.title ? `${pageMeta.title} · AFFiNE` : null);
|
usePageDocumentTitle(pageMeta);
|
||||||
|
|
||||||
const onLoad = useCallback(
|
const onLoad = useCallback(
|
||||||
(page: Page, editor: AffineEditorContainer) => {
|
(page: Page, editor: AffineEditorContainer) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user