42 lines
1.3 KiB
TypeScript
Raw Normal View History

2023-02-16 20:43:52 -06:00
import { createBlocksuiteWorkspace } from '../../utils';
2023-02-17 01:33:32 -06:00
import type { WorkspaceUnitCtorParams } from '../../workspace-unit';
import { WorkspaceUnit } from '../../workspace-unit';
2023-02-16 20:43:52 -06:00
import { setDefaultAvatar } from '../utils';
2023-02-17 01:33:32 -06:00
import { applyLocalUpdates, writeUpdatesToLocal } from './indexeddb/utils';
export const loadWorkspaceUnit = async (params: WorkspaceUnitCtorParams) => {
const workspaceUnit = new WorkspaceUnit(params);
2023-03-08 03:50:58 -06:00
const blocksuiteWorkspace = createBlocksuiteWorkspace({
id: workspaceUnit.id,
blobOptionsGetter: (k: string) => undefined,
});
await applyLocalUpdates(blocksuiteWorkspace);
workspaceUnit.setBlocksuiteWorkspace(blocksuiteWorkspace);
return workspaceUnit;
};
export const createWorkspaceUnit = async (params: WorkspaceUnitCtorParams) => {
const workspaceUnit = new WorkspaceUnit(params);
2023-03-08 03:50:58 -06:00
const blocksuiteWorkspace = createBlocksuiteWorkspace({
id: workspaceUnit.id,
blobOptionsGetter: (k: string) => undefined,
});
blocksuiteWorkspace.meta.setName(workspaceUnit.name);
if (!workspaceUnit.avatar) {
await setDefaultAvatar(blocksuiteWorkspace);
workspaceUnit.update({ avatar: blocksuiteWorkspace.meta.avatar });
}
if (typeof window !== 'undefined') {
await writeUpdatesToLocal(blocksuiteWorkspace);
}
workspaceUnit.setBlocksuiteWorkspace(blocksuiteWorkspace);
return workspaceUnit;
};