feat(core): add resetSync button (#10404)

This commit is contained in:
EYHN
2025-02-24 10:22:34 +00:00
parent 59a791fe1f
commit 0e581c915c
6 changed files with 46 additions and 0 deletions

View File

@@ -8,7 +8,9 @@ import { WorkspaceServerService } from '@affine/core/modules/cloud';
import { WorkspaceService } from '@affine/core/modules/workspace';
import { UNTITLED_WORKSPACE_NAME } from '@affine/env/constant';
import { useI18n } from '@affine/i18n';
import { ArrowRightSmallIcon } from '@blocksuite/icons/rc';
import { FrameworkScope, useService } from '@toeverything/infra';
import { useCallback } from 'react';
import { DeleteLeaveWorkspace } from './delete-leave-workspace';
import { EnableCloudPanel } from './enable-cloud';
@@ -28,6 +30,17 @@ export const WorkspaceSettingDetail = ({
const workspaceInfo = useWorkspaceInfo(workspace);
const handleResetSyncStatus = useCallback(() => {
workspace?.engine.doc
.resetSync()
.then(() => {
onCloseSetting();
})
.catch(err => {
console.error(err);
});
}, [onCloseSetting, workspace]);
return (
<FrameworkScope scope={server?.scope}>
<SettingHeader
@@ -53,6 +66,19 @@ export const WorkspaceSettingDetail = ({
<SharingPanel />
<SettingWrapper>
<DeleteLeaveWorkspace onCloseSetting={onCloseSetting} />
<SettingRow
name={
<span style={{ color: 'var(--affine-text-secondary-color)' }}>
{t['com.affine.resetSyncStatus.button']()}
</span>
}
desc={t['com.affine.resetSyncStatus.description']()}
style={{ cursor: 'pointer' }}
onClick={handleResetSyncStatus}
data-testid="reset-sync-status"
>
<ArrowRightSmallIcon />
</SettingRow>
</SettingWrapper>
</FrameworkScope>
);