feat(core): add document title for shared page (#5596)

This commit is contained in:
Cats Juice
2024-01-18 07:04:36 +00:00
parent c5ea6fd2c3
commit a64854319e
3 changed files with 10 additions and 2 deletions

View File

@@ -1,3 +1,4 @@
import type { PageMeta } from '@blocksuite/store';
import { noop } from 'lodash-es';
import { useEffect } from 'react';
@@ -14,3 +15,7 @@ export function useDocumentTitle(newTitle?: string | null) {
};
}, [newTitle]);
}
export function usePageDocumentTitle(pageMeta?: PageMeta) {
useDocumentTitle(pageMeta?.title ? `${pageMeta.title} · AFFiNE` : null);
}

View File

@@ -1,4 +1,5 @@
import { MainContainer } from '@affine/component/workspace';
import { usePageDocumentTitle } from '@affine/core/hooks/use-global-state';
import { DebugLogger } from '@affine/debug';
import { fetchWithTraceReport } from '@affine/graphql';
import { globalBlockSuiteSchema } from '@affine/workspace';
@@ -119,6 +120,8 @@ export const loader: LoaderFunction = async ({ params }) => {
export const Component = (): ReactElement => {
const { page, publishMode } = useLoaderData() as LoaderData;
usePageDocumentTitle(page.meta);
return (
<AppContainer>
<MainContainer>

View File

@@ -35,7 +35,7 @@ import {
import { TrashPageFooter } from '../../../components/pure/trash-page-footer';
import { TopTip } from '../../../components/top-tip';
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 { performanceRenderLogger } from '../../../shared';
import { PageNotFound } from '../../404';
@@ -115,7 +115,7 @@ const DetailPageImpl = memo(function DetailPageImpl({ page }: { page: Page }) {
const mode = useAtomValue(currentModeAtom);
const setPageMode = useSetAtom(setPageModeAtom);
useRegisterBlocksuiteEditorCommands(currentPageId, mode);
useDocumentTitle(pageMeta?.title ? `${pageMeta.title} · AFFiNE` : null);
usePageDocumentTitle(pageMeta);
const onLoad = useCallback(
(page: Page, editor: AffineEditorContainer) => {