feat: add preloading template

This commit is contained in:
Flrande
2023-06-07 17:31:54 +08:00
committed by himself65
parent ead106b940
commit e6cd2ace7d
67 changed files with 6732 additions and 385 deletions
@@ -1,10 +1,11 @@
import { initEmptyPage } from '@affine/env/blocksuite';
import { WorkspaceFlavour } from '@affine/workspace/type';
import { createEmptyBlockSuiteWorkspace } from '@affine/workspace/utils';
import type { EditorContainer } from '@blocksuite/editor';
import type { Page } from '@blocksuite/store';
import { Generator } from '@blocksuite/store';
import type React from 'react';
import { useCallback, useRef } from 'react';
import { useCallback } from 'react';
import { BlockSuiteEditor } from '../../blocksuite/block-suite-editor';
@@ -18,19 +19,7 @@ const blockSuiteWorkspace = createEmptyBlockSuiteWorkspace(
const page = blockSuiteWorkspace.createPage({ id: 'page0' });
const Editor: React.FC<{
onInit: (page: Page, editor: Readonly<EditorContainer>) => void;
testType: 'empty' | 'importMarkdown';
}> = ({ onInit, testType }) => {
const onceRef = useRef(false);
if (!onceRef.current) {
if (testType === 'importMarkdown') {
page.workspace.meta.setPageMeta(page.id, {
init: true,
});
}
}
const Editor: React.FC = () => {
const onLoad = useCallback((page: Page, editor: EditorContainer) => {
// @ts-ignore
globalThis.page = page;
@@ -43,7 +32,12 @@ const Editor: React.FC<{
return <>loading...</>;
}
return (
<BlockSuiteEditor page={page} mode="page" onInit={onInit} onLoad={onLoad} />
<BlockSuiteEditor
page={page}
mode="page"
onInit={initEmptyPage}
onLoad={onLoad}
/>
);
};
@@ -1,4 +1,4 @@
import { initPage } from '@affine/env/blocksuite';
import { initEmptyPage } from '@affine/env/blocksuite';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import type { PageBlockModel } from '@blocksuite/blocks';
import { PlusIcon } from '@blocksuite/icons';
@@ -41,7 +41,7 @@ export const Footer: React.FC<FooterProps> = ({
const id = nanoid();
const page = createPage(id);
assertEquals(page.id, id);
initPage(page);
initEmptyPage(page);
const block = page.getBlockByFlavour(
'affine:page'
)[0] as PageBlockModel;