Files
AFFiNE-Mirror/apps/web/src/hooks/use-blocksuite-workspace-helper.ts

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]
);
}