mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-25 06:18:45 +08:00
fix: create page title not sync to meta
This commit is contained in:
@@ -5,18 +5,15 @@ import { useEditor } from '@/providers/editor-provider';
|
||||
import { useModal } from '@/providers/global-modal-provider';
|
||||
|
||||
export const Footer = (props: { query: string }) => {
|
||||
const { createPage, getPageMeta, openPage } = useEditor();
|
||||
const { createPage, openPage } = useEditor();
|
||||
const { triggerQuickSearchModal } = useModal();
|
||||
const query = props.query;
|
||||
|
||||
return (
|
||||
<StyledModalFooterContent
|
||||
onClick={async () => {
|
||||
const page = await (query
|
||||
? createPage({ title: query })
|
||||
: createPage());
|
||||
const pageMeta = getPageMeta(page.id);
|
||||
pageMeta && openPage(pageMeta.id);
|
||||
const page = await createPage({ title: query });
|
||||
openPage(page.id);
|
||||
|
||||
triggerQuickSearchModal();
|
||||
}}
|
||||
|
||||
@@ -117,8 +117,7 @@ export const WorkSpaceSliderBar = () => {
|
||||
<StyledNewPageButton
|
||||
onClick={async () => {
|
||||
const page = await createPage();
|
||||
const pageMeta = getPageMeta(page.id);
|
||||
pageMeta && openPage(pageMeta.id);
|
||||
openPage(page.id);
|
||||
}}
|
||||
>
|
||||
<AddIcon /> New Page
|
||||
|
||||
@@ -2,7 +2,7 @@ import '@blocksuite/blocks';
|
||||
import '@blocksuite/blocks/style';
|
||||
import type { EditorContainer } from '@blocksuite/editor';
|
||||
import { BlockSchema, createEditor } from '@blocksuite/editor';
|
||||
import { generateDefaultPageId, initialPage } from './utils';
|
||||
import { generateDefaultPageId, initEmptyPage } from './utils';
|
||||
import { useEffect } from 'react';
|
||||
import pkg from '../../../package.json';
|
||||
import {
|
||||
@@ -80,7 +80,7 @@ const EditorReactor = ({
|
||||
setCurrentPage(page);
|
||||
} else {
|
||||
createPage(workspace!, pageId).then(page => {
|
||||
initialPage(page);
|
||||
initEmptyPage(page);
|
||||
setCurrentPage(page);
|
||||
});
|
||||
}
|
||||
@@ -94,7 +94,7 @@ const EditorReactor = ({
|
||||
}
|
||||
|
||||
createPage(workspace!, generateDefaultPageId()).then(page => {
|
||||
initialPage(page);
|
||||
initEmptyPage(page);
|
||||
setCurrentPage(page);
|
||||
});
|
||||
}, [workspace, routerPageId, setCurrentPage]);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { QueryContent } from '@blocksuite/store/dist/workspace/search';
|
||||
import { createPage, initialPage, generateDefaultPageId } from '../utils';
|
||||
import { createPage, generateDefaultPageId, initPage } from '../utils';
|
||||
import { Workspace, Page } from '@blocksuite/store';
|
||||
import { useRouter } from 'next/router';
|
||||
import { EditorHandlers, PageMeta } from '../interface';
|
||||
@@ -17,9 +17,12 @@ export const useEditorHandler = ({
|
||||
const router = useRouter();
|
||||
|
||||
return {
|
||||
createPage: async ({ pageId = generateDefaultPageId(), title } = {}) => {
|
||||
createPage: async ({
|
||||
pageId = generateDefaultPageId(),
|
||||
title = '',
|
||||
} = {}) => {
|
||||
const page = await createPage(workspace!, pageId);
|
||||
initialPage(page, title);
|
||||
initPage(workspace!, page, { title });
|
||||
return page;
|
||||
},
|
||||
getPageMeta(pageId) {
|
||||
@@ -29,6 +32,7 @@ export const useEditorHandler = ({
|
||||
) as PageMeta;
|
||||
},
|
||||
openPage: (pageId, query = {}) => {
|
||||
pageId = pageId.replace('space:', '');
|
||||
return router.push({
|
||||
pathname: '/',
|
||||
query: {
|
||||
|
||||
@@ -26,10 +26,24 @@ export const createPage = (
|
||||
});
|
||||
};
|
||||
|
||||
export const initialPage = (page: Page, title?: string) => {
|
||||
export const initEmptyPage = (page: Page) => {
|
||||
const pageBlockId = page.addBlock({ flavour: 'affine:page' });
|
||||
const groupId = page.addBlock({ flavour: 'affine:group' }, pageBlockId);
|
||||
page.addBlock({ flavour: 'affine:paragraph' }, groupId);
|
||||
return page;
|
||||
};
|
||||
|
||||
export const initPage = (
|
||||
workspace: Workspace,
|
||||
page: Page,
|
||||
{ title = '' }: { title?: string } = {}
|
||||
) => {
|
||||
const pageBlockId = page.addBlock({ flavour: 'affine:page', title });
|
||||
const groupId = page.addBlock({ flavour: 'affine:group' }, pageBlockId);
|
||||
page.addBlock({ flavour: 'affine:paragraph' }, groupId);
|
||||
if (title) {
|
||||
workspace!.meta.setPage(page.id.replace('space:', ''), { title });
|
||||
}
|
||||
return page;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user