diff --git a/app/src/sync/syncGuide.ts b/app/src/sync/syncGuide.ts index 9a3b6361e..07f444160 100644 --- a/app/src/sync/syncGuide.ts +++ b/app/src/sync/syncGuide.ts @@ -42,7 +42,7 @@ export const addCloudName = (cloudPanelElement: Element) => { }); }; -export const bindSyncCloudListEvent = (cloudPanelElement: Element) => { +export const bindSyncCloudListEvent = (cloudPanelElement: Element, cb?: () => void) => { cloudPanelElement.addEventListener("click", (event) => { let target = event.target as HTMLElement; while (target && !target.isEqualNode(cloudPanelElement)) { @@ -57,7 +57,7 @@ export const bindSyncCloudListEvent = (cloudPanelElement: Element) => { cloudPanelElement.innerHTML = ''; fetchPost("/api/sync/removeCloudSyncDir", {name: target.parentElement.getAttribute("data-name")}, (response) => { window.siyuan.config.sync.cloudName = response.data; - getSyncCloudList(cloudPanelElement, true); + getSyncCloudList(cloudPanelElement, true, cb); }); }); break; @@ -65,7 +65,7 @@ export const bindSyncCloudListEvent = (cloudPanelElement: Element) => { cloudPanelElement.innerHTML = ''; fetchPost("/api/sync/setCloudSyncDir", {name: target.getAttribute("data-name")}, () => { window.siyuan.config.sync.cloudName = target.getAttribute("data-name"); - getSyncCloudList(cloudPanelElement, true); + getSyncCloudList(cloudPanelElement, true, cb); }); break; } @@ -247,8 +247,14 @@ const setSync = (key?: string, dialog?: Dialog) => { }); } const contentElement = dialog.element.querySelector(".b3-dialog__content").lastElementChild; - bindSyncCloudListEvent(contentElement); const btnElement = dialog.element.querySelector(".b3-button"); + bindSyncCloudListEvent(contentElement, () => { + if (contentElement.querySelector("input[checked]")) { + btnElement.removeAttribute("disabled"); + } else { + btnElement.setAttribute("disabled", "disabled"); + } + }); getSyncCloudList(contentElement, false, () => { if (contentElement.querySelector("input[checked]")) { btnElement.removeAttribute("disabled"); @@ -276,7 +282,7 @@ const setSync = (key?: string, dialog?: Dialog) => { } }; -export const setKey = (isSync:boolean, cb?:() => void) => { +export const setKey = (isSync: boolean, cb?: () => void) => { const dialog = new Dialog({ title: window.siyuan.languages.syncConfGuide1, content: `