diff --git a/app/src/config/bazaar.ts b/app/src/config/bazaar.ts index e1bf78cdd..c91ceb9e0 100644 --- a/app/src/config/bazaar.ts +++ b/app/src/config/bazaar.ts @@ -446,9 +446,6 @@ export const bazaar = { }); } bazaar._data.downloaded = response.data.packages; - if (bazaar.element.querySelector("#configBazaarReadme").classList.contains("config-bazaar__readme--show")) { - bazaar._renderReadme(bazaar.element.querySelector("#configBazaarReadme > .item__side"), bazaarType); - } const checkElement = contentElement.parentElement.querySelector(".b3-switch"); if (bazaarType === "plugins") { checkElement.classList.remove("fn__none"); @@ -473,14 +470,7 @@ export const bazaar = { plugins: [] as IBazaarItem[], } }, - _renderReadme(cardElement: HTMLElement, bazaarType: TBazaarType) { - const dataObj = JSON.parse(cardElement.getAttribute("data-obj")); - let data: IBazaarItem; - if (hasClosestByAttribute(cardElement, "data-type", "downloaded-update")) { - data = bazaar._data.update[bazaarType].find((item: IBazaarItem) => item.repoURL === dataObj.repoURL); - } else { - data = (dataObj.downloaded ? bazaar._data.downloaded : bazaar._data[bazaarType]).find((item: IBazaarItem) => item.repoURL === dataObj.repoURL); - } + _renderReadme(bazaarType: TBazaarType, data: IBazaarItem, downloaded: boolean) { const readmeElement = bazaar.element.querySelector("#configBazaarReadme") as HTMLElement; const urls = data.repoURL.split("/"); urls.pop(); @@ -500,7 +490,7 @@ export const bazaar = { name: data.name, repoURL: data.repoURL, repoHash: data.repoHash, - downloaded: true + downloaded }; readmeElement.innerHTML = `
@@ -532,26 +522,26 @@ export const bazaar = {
${window.siyuan.languages.currentVer}
v${data.version}
-
${dataObj.downloaded ? window.siyuan.languages.installDate : window.siyuan.languages.releaseDate}
${dataObj.downloaded ? data.hInstallDate : data.hUpdated}
-
-
${window.siyuan.languages.pkgSize}
${data.hSize}
+
${downloaded ? window.siyuan.languages.installDate : window.siyuan.languages.releaseDate}
${downloaded ? data.hInstallDate : data.hUpdated}
+
+
${window.siyuan.languages.pkgSize}
${data.hSize}
${window.siyuan.languages.installSize}
${data.hInstallSize}
- +
- +
${window.siyuan.languages.feedback}
-
-
-
+
+
+
Repo @@ -588,7 +578,7 @@ export const bazaar = {
`; - if (dataObj.downloaded) { + if (downloaded) { const mdElement = readmeElement.querySelector(".item__readme"); mdElement.innerHTML = data.preferredReadme; highlightRender(mdElement); @@ -735,7 +725,6 @@ export const bazaar = { event.stopPropagation(); break; } else if (type === "feedback") { - event.preventDefault(); event.stopPropagation(); break; @@ -765,9 +754,9 @@ export const bazaar = { update: true, frontend: getFrontend() }, async response => { - // 更新主题后不需要对该主题进行切换 https://github.com/siyuan-note/siyuan/issues/4966 this._genMyHTML(bazaarType, app); bazaar._onBazaar(response, bazaarType, ["icons"].includes(bazaarType)); + // 更新主题后不需要对该主题进行切换 https://github.com/siyuan-note/siyuan/issues/4966 // https://github.com/siyuan-note/siyuan/issues/5411 if (bazaarType === "themes" && ( (window.siyuan.config.appearance.mode === 0 && window.siyuan.config.appearance.themeLight === dataObj.name) || @@ -975,7 +964,15 @@ export const bazaar = { break; } else if (target.classList.contains("b3-card")) { if (!hasClosestByClassName(event.target as HTMLElement, "b3-card__actions--right")) { - bazaar._renderReadme(target, (dataObj.bazaarType) as TBazaarType); + const dataObj = JSON.parse(target.getAttribute("data-obj")); + const bazaarType = (dataObj.bazaarType) as TBazaarType; + let data; + if (hasClosestByAttribute(target, "data-type", "downloaded-update")) { + data = bazaar._data.update[(dataObj.bazaarType) as TBazaarType].find((item: IBazaarItem) => item.repoURL === dataObj.repoURL); + } else { + data = (dataObj.downloaded ? bazaar._data.downloaded : bazaar._data[bazaarType]).find((item: IBazaarItem) => item.repoURL === dataObj.repoURL); + } + bazaar._renderReadme(bazaarType, data, dataObj.downloaded); } event.preventDefault(); event.stopPropagation(); @@ -1146,6 +1143,12 @@ export const bazaar = { }); }, _onBazaar(response: IWebSocketData, bazaarType: TBazaarType, reload: boolean) { + if (bazaar.element.querySelector("#configBazaarReadme").classList.contains("config-bazaar__readme--show")) { + const dataObj = JSON.parse(bazaar.element.querySelector("#configBazaarReadme > .item__side").getAttribute("data-obj")); + bazaar._renderReadme((dataObj.bazaarType) as TBazaarType, + response.data.packages.find((item: IBazaarItem) => item.repoURL === dataObj.repoURL), + dataObj.downloaded); + } let id = "#configBazaarTemplate"; if (bazaarType === "themes") { id = "#configBazaarTheme";