mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-09-06 08:50:50 +08:00
Merge branch 'feat/fileSystem' into develop
This commit is contained in:
@@ -9,10 +9,10 @@
|
|||||||
"lint": "next lint"
|
"lint": "next lint"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@blocksuite/blocks": "0.3.0-alpha.9",
|
"@blocksuite/blocks": "0.3.0-alpha.10",
|
||||||
"@blocksuite/editor": "0.3.0-alpha.9",
|
"@blocksuite/editor": "0.3.0-alpha.10",
|
||||||
"@blocksuite/icons": "^2.0.0",
|
"@blocksuite/icons": "^2.0.0",
|
||||||
"@blocksuite/store": "0.3.0-alpha.9",
|
"@blocksuite/store": "0.3.0-alpha.10",
|
||||||
"@emotion/css": "^11.10.0",
|
"@emotion/css": "^11.10.0",
|
||||||
"@emotion/react": "^11.10.4",
|
"@emotion/react": "^11.10.4",
|
||||||
"@emotion/server": "^11.10.0",
|
"@emotion/server": "^11.10.0",
|
||||||
|
|||||||
@@ -5,18 +5,15 @@ import { useEditor } from '@/providers/editor-provider';
|
|||||||
import { useModal } from '@/providers/global-modal-provider';
|
import { useModal } from '@/providers/global-modal-provider';
|
||||||
|
|
||||||
export const Footer = (props: { query: string }) => {
|
export const Footer = (props: { query: string }) => {
|
||||||
const { createPage, getPageMeta, openPage } = useEditor();
|
const { createPage, openPage } = useEditor();
|
||||||
const { triggerQuickSearchModal } = useModal();
|
const { triggerQuickSearchModal } = useModal();
|
||||||
const query = props.query;
|
const query = props.query;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StyledModalFooterContent
|
<StyledModalFooterContent
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
const page = await (query
|
const page = await createPage({ title: query });
|
||||||
? createPage({ title: query })
|
openPage(page.id);
|
||||||
: createPage());
|
|
||||||
const pageMeta = getPageMeta(page.id);
|
|
||||||
pageMeta && openPage(pageMeta.id);
|
|
||||||
|
|
||||||
triggerQuickSearchModal();
|
triggerQuickSearchModal();
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -117,8 +117,7 @@ export const WorkSpaceSliderBar = () => {
|
|||||||
<StyledNewPageButton
|
<StyledNewPageButton
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
const page = await createPage();
|
const page = await createPage();
|
||||||
const pageMeta = getPageMeta(page.id);
|
openPage(page.id);
|
||||||
pageMeta && openPage(pageMeta.id);
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<AddIcon /> New Page
|
<AddIcon /> New Page
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import '@blocksuite/blocks';
|
|||||||
import '@blocksuite/blocks/style';
|
import '@blocksuite/blocks/style';
|
||||||
import type { EditorContainer } from '@blocksuite/editor';
|
import type { EditorContainer } from '@blocksuite/editor';
|
||||||
import { BlockSchema, createEditor } from '@blocksuite/editor';
|
import { BlockSchema, createEditor } from '@blocksuite/editor';
|
||||||
import { generateDefaultPageId, initialPage } from './utils';
|
import { generateDefaultPageId, initEmptyPage } from './utils';
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import pkg from '../../../package.json';
|
import pkg from '../../../package.json';
|
||||||
import {
|
import {
|
||||||
@@ -80,7 +80,7 @@ const EditorReactor = ({
|
|||||||
setCurrentPage(page);
|
setCurrentPage(page);
|
||||||
} else {
|
} else {
|
||||||
createPage(workspace!, pageId).then(page => {
|
createPage(workspace!, pageId).then(page => {
|
||||||
initialPage(page);
|
initEmptyPage(page);
|
||||||
setCurrentPage(page);
|
setCurrentPage(page);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -94,7 +94,7 @@ const EditorReactor = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
createPage(workspace!, generateDefaultPageId()).then(page => {
|
createPage(workspace!, generateDefaultPageId()).then(page => {
|
||||||
initialPage(page);
|
initEmptyPage(page);
|
||||||
setCurrentPage(page);
|
setCurrentPage(page);
|
||||||
});
|
});
|
||||||
}, [workspace, routerPageId, setCurrentPage]);
|
}, [workspace, routerPageId, setCurrentPage]);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { QueryContent } from '@blocksuite/store/dist/workspace/search';
|
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 { Workspace, Page } from '@blocksuite/store';
|
||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
import { EditorHandlers, PageMeta } from '../interface';
|
import { EditorHandlers, PageMeta } from '../interface';
|
||||||
@@ -17,9 +17,12 @@ export const useEditorHandler = ({
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
createPage: async ({ pageId = generateDefaultPageId(), title } = {}) => {
|
createPage: async ({
|
||||||
|
pageId = generateDefaultPageId(),
|
||||||
|
title = '',
|
||||||
|
} = {}) => {
|
||||||
const page = await createPage(workspace!, pageId);
|
const page = await createPage(workspace!, pageId);
|
||||||
initialPage(page, title);
|
initPage(workspace!, page, { title });
|
||||||
return page;
|
return page;
|
||||||
},
|
},
|
||||||
getPageMeta(pageId) {
|
getPageMeta(pageId) {
|
||||||
@@ -29,6 +32,7 @@ export const useEditorHandler = ({
|
|||||||
) as PageMeta;
|
) as PageMeta;
|
||||||
},
|
},
|
||||||
openPage: (pageId, query = {}) => {
|
openPage: (pageId, query = {}) => {
|
||||||
|
pageId = pageId.replace('space:', '');
|
||||||
return router.push({
|
return router.push({
|
||||||
pathname: '/',
|
pathname: '/',
|
||||||
query: {
|
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 pageBlockId = page.addBlock({ flavour: 'affine:page', title });
|
||||||
const groupId = page.addBlock({ flavour: 'affine:group' }, pageBlockId);
|
const groupId = page.addBlock({ flavour: 'affine:group' }, pageBlockId);
|
||||||
page.addBlock({ flavour: 'affine:paragraph' }, groupId);
|
page.addBlock({ flavour: 'affine:paragraph' }, groupId);
|
||||||
|
if (title) {
|
||||||
|
workspace!.meta.setPage(page.id.replace('space:', ''), { title });
|
||||||
|
}
|
||||||
return page;
|
return page;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Generated
+15
-15
@@ -22,10 +22,10 @@ importers:
|
|||||||
|
|
||||||
packages/app:
|
packages/app:
|
||||||
specifiers:
|
specifiers:
|
||||||
'@blocksuite/blocks': 0.3.0-alpha.9
|
'@blocksuite/blocks': 0.3.0-alpha.10
|
||||||
'@blocksuite/editor': 0.3.0-alpha.9
|
'@blocksuite/editor': 0.3.0-alpha.10
|
||||||
'@blocksuite/icons': ^2.0.0
|
'@blocksuite/icons': ^2.0.0
|
||||||
'@blocksuite/store': 0.3.0-alpha.9
|
'@blocksuite/store': 0.3.0-alpha.10
|
||||||
'@emotion/css': ^11.10.0
|
'@emotion/css': ^11.10.0
|
||||||
'@emotion/react': ^11.10.4
|
'@emotion/react': ^11.10.4
|
||||||
'@emotion/server': ^11.10.0
|
'@emotion/server': ^11.10.0
|
||||||
@@ -55,10 +55,10 @@ importers:
|
|||||||
react-dom: 18.2.0
|
react-dom: 18.2.0
|
||||||
typescript: 4.8.3
|
typescript: 4.8.3
|
||||||
dependencies:
|
dependencies:
|
||||||
'@blocksuite/blocks': 0.3.0-alpha.9
|
'@blocksuite/blocks': 0.3.0-alpha.10
|
||||||
'@blocksuite/editor': 0.3.0-alpha.9
|
'@blocksuite/editor': 0.3.0-alpha.10
|
||||||
'@blocksuite/icons': 2.0.0_w5j4k42lgipnm43s3brx6h3c34
|
'@blocksuite/icons': 2.0.0_w5j4k42lgipnm43s3brx6h3c34
|
||||||
'@blocksuite/store': 0.3.0-alpha.9
|
'@blocksuite/store': 0.3.0-alpha.10
|
||||||
'@emotion/css': 11.10.0
|
'@emotion/css': 11.10.0
|
||||||
'@emotion/react': 11.10.4_w5j4k42lgipnm43s3brx6h3c34
|
'@emotion/react': 11.10.4_w5j4k42lgipnm43s3brx6h3c34
|
||||||
'@emotion/server': 11.10.0_@emotion+css@11.10.0
|
'@emotion/server': 11.10.0_@emotion+css@11.10.0
|
||||||
@@ -176,10 +176,10 @@ packages:
|
|||||||
to-fast-properties: 2.0.0
|
to-fast-properties: 2.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@blocksuite/blocks/0.3.0-alpha.9:
|
/@blocksuite/blocks/0.3.0-alpha.10:
|
||||||
resolution: {integrity: sha512-7Zw2lL5DZ+JB6dtmGKfuW19nG5gMvLPcTakK9oMszbhgETnwHUUN382Pz3urecuDA88yaLj8qbC1VdbAQWDW5w==}
|
resolution: {integrity: sha512-tW6AMQTQIkBg4uob+6naAtnNWEgxtX/kBFpV/L1hGW3OHGF6JwpyM/AfzuuS9KooDJvADpb2xeQnNcifJTWGHA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@blocksuite/store': 0.3.0-alpha.9
|
'@blocksuite/store': 0.3.0-alpha.10
|
||||||
'@tldraw/intersect': 1.8.0
|
'@tldraw/intersect': 1.8.0
|
||||||
'@tldraw/vec': 1.8.0
|
'@tldraw/vec': 1.8.0
|
||||||
hotkeys-js: 3.10.0
|
hotkeys-js: 3.10.0
|
||||||
@@ -193,11 +193,11 @@ packages:
|
|||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@blocksuite/editor/0.3.0-alpha.9:
|
/@blocksuite/editor/0.3.0-alpha.10:
|
||||||
resolution: {integrity: sha512-dnrk87akzwRRKxS18dec2rY2ZvfIpvNq9SIHEPCCk2UNLI2R66HUO5v1RhLi6/oglbWtizcqzQWCa/DjjY1ljA==}
|
resolution: {integrity: sha512-P5PcrYGRmnOeNTdqGDncWjUn5BwCm4j5JvJkjOw80VbvWNcVtWhr2ViBCsgD00m4ZIybxV6o00GOqDNNej2mEQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@blocksuite/blocks': 0.3.0-alpha.9
|
'@blocksuite/blocks': 0.3.0-alpha.10
|
||||||
'@blocksuite/store': 0.3.0-alpha.9
|
'@blocksuite/store': 0.3.0-alpha.10
|
||||||
lit: 2.4.0
|
lit: 2.4.0
|
||||||
marked: 4.1.1
|
marked: 4.1.1
|
||||||
turndown: 7.1.1
|
turndown: 7.1.1
|
||||||
@@ -217,8 +217,8 @@ packages:
|
|||||||
react: 18.2.0
|
react: 18.2.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@blocksuite/store/0.3.0-alpha.9:
|
/@blocksuite/store/0.3.0-alpha.10:
|
||||||
resolution: {integrity: sha512-5wdnE6JUL1/y/LufqcRg2lRL5mYvdXc+MOj98eNfFAv+JFbY4vuGZ8N9HFn6dQ/rQaQsgaoAZkWyogbbC8x4IA==}
|
resolution: {integrity: sha512-KP88oFu5qAZA1mYbfLZ6D8S90bw8x3d19HhfoOqME0MOHyY6r462NF7wxQh9jlGDsCmyJMf3ZY+z/PxsJIufxQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer: 6.0.3
|
buffer: 6.0.3
|
||||||
flexsearch: 0.7.21
|
flexsearch: 0.7.21
|
||||||
|
|||||||
Reference in New Issue
Block a user