refactor: remove sync binary (#1297)

This commit is contained in:
Himself65
2023-03-03 13:36:42 -06:00
committed by GitHub
parent fd510834ed
commit 296cd215c1
22 changed files with 161 additions and 202 deletions

View File

@@ -10,6 +10,11 @@ export function useBlockSuiteWorkspaceName(
const [name, set] = useState(
() => blockSuiteWorkspace?.meta.name ?? DEFAULT_WORKSPACE_NAME
);
if (blockSuiteWorkspace) {
if (blockSuiteWorkspace.meta.name !== name) {
set(blockSuiteWorkspace.meta.name);
}
}
useEffect(() => {
if (blockSuiteWorkspace) {
set(blockSuiteWorkspace.meta.name);
@@ -24,8 +29,8 @@ export function useBlockSuiteWorkspaceName(
const setName = useCallback(
(name: string) => {
assertExists(blockSuiteWorkspace);
set(name);
blockSuiteWorkspace.meta.setName(name);
set(name);
},
[blockSuiteWorkspace]
);

View File

@@ -1,13 +0,0 @@
import { useEffect } from 'react';
import { RemWorkspace, RemWorkspaceFlavour } from '../shared';
export function useLoadWorkspace(workspace: RemWorkspace | null | undefined) {
useEffect(() => {
if (workspace?.flavour === RemWorkspaceFlavour.AFFINE) {
if (!workspace.firstBinarySynced) {
workspace.syncBinary();
}
}
}, [workspace]);
}

View File

@@ -12,18 +12,13 @@ export function findSuitablePageId(
): string | null {
switch (workspace.flavour) {
case RemWorkspaceFlavour.AFFINE: {
if (workspace.firstBinarySynced) {
return (
workspace.blockSuiteWorkspace.meta.pageMetas.find(
page => page.id === targetId
)?.id ??
workspace.blockSuiteWorkspace.meta.pageMetas.at(0)?.id ??
null
);
} else {
return null;
}
break;
return (
workspace.blockSuiteWorkspace.meta.pageMetas.find(
page => page.id === targetId
)?.id ??
workspace.blockSuiteWorkspace.meta.pageMetas.at(0)?.id ??
null
);
}
case RemWorkspaceFlavour.LOCAL: {
return (

View File

@@ -2,12 +2,10 @@ import { NextRouter } from 'next/router';
import { useEffect } from 'react';
import { useCurrentWorkspace } from './current/use-current-workspace';
import { useLoadWorkspace } from './use-load-workspace';
import { useWorkspaces } from './use-workspaces';
export function useSyncRouterWithCurrentWorkspace(router: NextRouter) {
const [currentWorkspace, setCurrentWorkspaceId] = useCurrentWorkspace();
useLoadWorkspace(currentWorkspace);
const workspaces = useWorkspaces();
useEffect(() => {
const listener: Parameters<typeof router.events.on>[1] = (url: string) => {

View File

@@ -3,7 +3,6 @@ import { config, getEnvironment } from '@affine/env';
import { nanoid } from '@blocksuite/store';
import { useCallback, useMemo, useSyncExternalStore } from 'react';
import useSWR from 'swr';
import { IndexeddbPersistence } from 'y-indexeddb';
import { lockMutex } from '../atoms';
import { createLocalProviders } from '../blocksuite';
@@ -47,23 +46,6 @@ function createRemLocalWorkspace(name: string) {
flavour: RemWorkspaceFlavour.LOCAL,
blockSuiteWorkspace: blockSuiteWorkspace,
providers: [...createLocalProviders(blockSuiteWorkspace)],
syncBinary: async () => {
if (!config.enableIndexedDBProvider) {
return {
...workspace,
};
}
const persistence = new IndexeddbPersistence(
blockSuiteWorkspace.room as string,
blockSuiteWorkspace.doc
);
return persistence.whenSynced.then(() => {
persistence.destroy();
return {
...workspace,
};
});
},
id,
};
if (config.enableIndexedDBProvider) {
@@ -111,6 +93,7 @@ export async function refreshDataCenter(signal?: AbortSignal) {
break;
}
const oldData = dataCenter.workspaces;
oldData.forEach(d => console.log(d.blockSuiteWorkspace.doc.toJSON()));
await plugin.prefetchData(dataCenter, signal);
const newData = dataCenter.workspaces;
if (!Object.is(oldData, newData)) {