diff --git a/app/src/config/repos.ts b/app/src/config/repos.ts index 963cffa4d..bf57481e2 100644 --- a/app/src/config/repos.ts +++ b/app/src/config/repos.ts @@ -164,6 +164,24 @@ const renderProvider = (provider: number) => { }; const bindProviderEvent = () => { + const importElement = repos.element.querySelector("#importData") as HTMLInputElement; + importElement.addEventListener("change", () => { + const formData = new FormData(); + formData.append("file", importElement.files[0]); + const isS3 = importElement.getAttribute("data-type") === "s3" + fetchPost(isS3 ? "/api/sync/importSyncProviderS3" : "/api/sync/importSyncProviderWebDAV", formData, (response) => { + if (isS3) { + window.siyuan.config.sync.s3 = response.data.s3; + } else { + window.siyuan.config.sync.webdav = response.data.webdav; + } + repos.element.querySelector("#syncProviderPanel").innerHTML = renderProvider(window.siyuan.config.sync.provider); + bindProviderEvent(); + showMessage(window.siyuan.languages.imported); + importElement.value = ""; + }); + }); + const reposDataElement = repos.element.querySelector("#reposData"); const loadingElement = repos.element.querySelector("#reposLoading"); if (window.siyuan.config.sync.provider === 0) { @@ -400,23 +418,6 @@ export const repos = { window.siyuan.config.sync.mode = parseInt(syncModeElement.value, 10); }); }); - repos.element.querySelectorAll("#importData").forEach((item: HTMLInputElement) => { - item.addEventListener("change", () => { - const formData = new FormData(); - formData.append("file", item.files[0]); - const isS3 = item.getAttribute("data-type") === "s3" - fetchPost(isS3 ? "/api/sync/importSyncProviderS3" : "/api/sync/importSyncProviderWebDAV", formData, (response) => { - if (isS3) { - window.siyuan.config.sync.s3 = response.data.s3; - } else { - window.siyuan.config.sync.webdav = response.data.webdav; - } - repos.element.querySelector("#syncProviderPanel").innerHTML = renderProvider(window.siyuan.config.sync.provider); - showMessage(window.siyuan.languages.imported); - item.value = ""; - }); - }); - }); const syncConfigElement = repos.element.querySelector("#reposCloudSyncList"); const syncProviderElement = repos.element.querySelector("#syncProvider") as HTMLSelectElement; syncProviderElement.addEventListener("change", () => {