mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-13 21:05:19 +00:00
30 lines
870 B
TypeScript
30 lines
870 B
TypeScript
import { assertExists } from '@blocksuite/store';
|
|
import { useMemo } from 'react';
|
|
|
|
import { BlockSuiteWorkspace } from '../shared';
|
|
|
|
export function useBlockSuiteWorkspaceHelper(
|
|
blockSuiteWorkspace: BlockSuiteWorkspace | null
|
|
) {
|
|
return useMemo(
|
|
() => ({
|
|
createPage: (pageId: string, title?: string): Promise<string> => {
|
|
return new Promise(resolve => {
|
|
assertExists(blockSuiteWorkspace);
|
|
const dispose = blockSuiteWorkspace.signals.pageAdded.on(id => {
|
|
if (id === pageId) {
|
|
dispose.dispose();
|
|
// Fixme: https://github.com/toeverything/blocksuite/issues/1350
|
|
setTimeout(() => {
|
|
resolve(pageId);
|
|
}, 0);
|
|
}
|
|
});
|
|
blockSuiteWorkspace.createPage(pageId);
|
|
});
|
|
},
|
|
}),
|
|
[blockSuiteWorkspace]
|
|
);
|
|
}
|