mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-17 18:16:15 +08:00
77 lines
1.9 KiB
TypeScript
77 lines
1.9 KiB
TypeScript
import { GfxControllerIdentifier } from '@blocksuite/block-std/gfx';
|
|
import { Text } from '@blocksuite/store';
|
|
import { Pane } from 'tweakpane';
|
|
|
|
import { CanvasRenderer } from './canvas-renderer.js';
|
|
import { doc, editor } from './editor.js';
|
|
|
|
type DocMode = 'page' | 'edgeless';
|
|
|
|
const container = document.querySelector('#right-column') as HTMLElement;
|
|
const renderer = new CanvasRenderer(editor, container);
|
|
|
|
async function handleToCanvasClick() {
|
|
await renderer.render();
|
|
const viewport = editor.std.get(GfxControllerIdentifier).viewport;
|
|
viewport.viewportUpdated.on(async () => {
|
|
await renderer.render();
|
|
});
|
|
}
|
|
|
|
function initUI() {
|
|
const pane = new Pane({
|
|
container: document.querySelector('#tweakpane-container') as HTMLElement,
|
|
});
|
|
|
|
const params = {
|
|
mode: 'edgeless' as DocMode,
|
|
};
|
|
|
|
pane
|
|
.addButton({
|
|
title: 'To Canvas',
|
|
})
|
|
.on('click', () => {
|
|
handleToCanvasClick().catch(console.error);
|
|
});
|
|
|
|
pane
|
|
.addBinding(params, 'mode', {
|
|
label: 'Editor Mode',
|
|
options: {
|
|
Doc: 'page',
|
|
Edgeless: 'edgeless',
|
|
},
|
|
})
|
|
.on('change', ({ value }) => {
|
|
editor.mode = value as DocMode;
|
|
});
|
|
|
|
document.querySelector('#left-column')?.append(editor);
|
|
}
|
|
|
|
function addParagraph(content: string) {
|
|
const note = doc.getBlocksByFlavour('affine:note')[0];
|
|
const props = {
|
|
text: new Text(content),
|
|
};
|
|
doc.addBlock('affine:paragraph', props, note.id);
|
|
}
|
|
|
|
function main() {
|
|
initUI();
|
|
|
|
const firstParagraph = doc.getBlockByFlavour('affine:paragraph')[0];
|
|
doc.updateBlock(firstParagraph, { text: new Text('Renderer') });
|
|
|
|
addParagraph('Hello World!');
|
|
addParagraph(
|
|
'Hello World! Lorem ipsum dolor sit amet. Consectetur adipiscing elit. Sed do eiusmod tempor incididunt.'
|
|
);
|
|
addParagraph(
|
|
'你好这是测试,这是一个为了换行而写的中文段落。这个段落会自动换行。'
|
|
);
|
|
}
|
|
|
|
main();
|