EYHN
2024-03-22 16:43:26 +00:00
parent 05c44db5a9
commit 34703a3b7d
85 changed files with 3248 additions and 2286 deletions

View File

@@ -0,0 +1,20 @@
import { useLiveData, useService, Workspace } from '@toeverything/infra';
import { useMemo } from 'react';
export function useDocEngineStatus() {
const workspace = useService(Workspace);
const engineState = useLiveData(workspace.engine.docEngineState);
const progress =
(engineState.total - engineState.syncing) / engineState.total;
return useMemo(
() => ({
...engineState,
progress,
syncing: engineState.syncing > 0,
}),
[engineState, progress]
);
}

View File

@@ -1,35 +0,0 @@
import { syncEngineStatusAtom } from '@affine/core/atoms/sync-engine-status';
import { useAtom } from 'jotai';
import { mean } from 'lodash-es';
import { useMemo } from 'react';
export function useSyncEngineStatus() {
const [syncEngineStatus, setSyncEngineStatus] = useAtom(syncEngineStatusAtom);
const progress = useMemo(() => {
if (!syncEngineStatus?.remotes || syncEngineStatus?.remotes.length === 0) {
return null;
}
return mean(
syncEngineStatus.remotes.map(peer => {
if (!peer) {
return 0;
}
const totalTask =
peer.totalDocs + peer.pendingPullUpdates + peer.pendingPushUpdates;
const doneTask = peer.loadedDocs;
return doneTask / totalTask;
})
);
}, [syncEngineStatus?.remotes]);
return useMemo(
() => ({
syncEngineStatus,
setSyncEngineStatus,
progress,
}),
[progress, setSyncEngineStatus, syncEngineStatus]
);
}