diff --git a/packages/app/src/components/quick-search/footer.tsx b/packages/app/src/components/quick-search/footer.tsx index 83de303300..5f03b6c85e 100644 --- a/packages/app/src/components/quick-search/footer.tsx +++ b/packages/app/src/components/quick-search/footer.tsx @@ -14,7 +14,7 @@ export const Footer = (props: { query: string }) => { { - const pageId = await createPage(); + const pageId = await createPage({ title: query }); if (pageId) { openPage(pageId); } diff --git a/packages/app/src/hooks/use-page-helper.ts b/packages/app/src/hooks/use-page-helper.ts index ff7556c76c..e4bf4f2957 100644 --- a/packages/app/src/hooks/use-page-helper.ts +++ b/packages/app/src/hooks/use-page-helper.ts @@ -46,6 +46,7 @@ export const usePageHelper = (): EditorHandlers => { } currentWorkspace.createPage(pageId); currentWorkspace.signals.pageAdded.once(addedPageId => { + currentWorkspace.setPageMeta(addedPageId, { title }); resolve(addedPageId); }); }); diff --git a/packages/app/src/pages/workspace/[workspaceId]/[pageId].tsx b/packages/app/src/pages/workspace/[workspaceId]/[pageId].tsx index b04dfe7b53..ceb7d849ce 100644 --- a/packages/app/src/pages/workspace/[workspaceId]/[pageId].tsx +++ b/packages/app/src/pages/workspace/[workspaceId]/[pageId].tsx @@ -16,6 +16,7 @@ import type { NextPageWithLayout } from '../..//_app'; import WorkspaceLayout from '@/components/workspace-layout'; import { useRouter } from 'next/router'; import { usePageHelper } from '@/hooks/use-page-helper'; +import useCurrentPageMeta from '@/hooks/use-current-page-meta'; const StyledEditorContainer = styled('div')(() => { return { height: 'calc(100vh - 60px)', @@ -26,6 +27,7 @@ const Page: NextPageWithLayout = () => { const editorContainer = useRef(null); const { createEditor, setEditor, currentPage, currentWorkspace } = useAppState(); + const { title: metaTitle } = useCurrentPageMeta() || {}; useEffect(() => { const ret = () => { @@ -41,7 +43,8 @@ const Page: NextPageWithLayout = () => { setEditor?.current?.(editor); if (currentPage!.isEmpty) { const isFirstPage = currentWorkspace?.meta.pageMetas.length === 1; - const title = isFirstPage ? 'Welcome to the AFFiNE Alpha' : ''; + const title = + metaTitle || isFirstPage ? 'Welcome to the AFFiNE Alpha' : ''; const pageId = currentPage!.addBlock({ flavour: 'affine:page', title,