From 56e83fadc6002ead1a9c9e4629432e3606d3a084 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Wed, 19 Mar 2025 16:32:17 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/14159 --- app/src/mobile/settings/account.ts | 38 +++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/app/src/mobile/settings/account.ts b/app/src/mobile/settings/account.ts index 6586f8d3a..a520c5199 100644 --- a/app/src/mobile/settings/account.ts +++ b/app/src/mobile/settings/account.ts @@ -64,7 +64,7 @@ export const showAccountInfo = () => { ${window.siyuan.languages.account6} ${Math.max(0, Math.floor((window.siyuan.user.userSiYuanProExpireTime - new Date().getTime()) / 1000 / 60 / 60 / 24))} ${window.siyuan.languages.day} - ${isIOS ? `${window.siyuan.languages.clickMeToRenew}` : ` ${window.siyuan.languages.clickMeToRenew}`} + ${isIOS ? `${window.siyuan.languages.clickMeToRenew}` : `${window.siyuan.languages.clickMeToRenew}`} `; if (window.siyuan.user.userSiYuanOneTimePayStatus === 1) { subscriptionHTML = `
${window.siyuan.languages.onepay}
@@ -124,16 +124,36 @@ ${renewHTML}`; bindEvent(modelMainElement: HTMLElement) { modelMainElement.addEventListener("click", (event) => { let target = event.target as HTMLElement; + if (typeof event.detail !== "number") { + target = event.detail + } while (target && !target.isSameNode(modelMainElement)) { if (target.getAttribute("data-action") === "iOSPay") { - // "6ba7b810-9dad-11d1-0001-377616491562" - let productID = '0' - if (window.siyuan.config.cloudRegion === 0) { - productID = target.getAttribute("data-type") === "function" ? "0" : "1" + if (window.siyuan.user) { + fetchPost("/api/setting/getCloudUser", { + token: window.siyuan.user.userToken, + }, response => { + if (window.siyuan.user.userSiYuanOneTimePayStatus !== response.data.userSiYuanOneTimePayStatus || + window.siyuan.user.userSiYuanProExpireTime !== response.data.userSiYuanProExpireTime || + window.siyuan.user.userSiYuanSubscriptionPlan !== response.data.userSiYuanSubscriptionPlan || + window.siyuan.user.userSiYuanSubscriptionType !== response.data.userSiYuanSubscriptionType || + window.siyuan.user.userSiYuanSubscriptionStatus !== response.data.userSiYuanSubscriptionStatus) { + showMessage(window.siyuan.languages["_kernel"][19]); + return; + } + window.siyuan.user = response.data; + const productType = target.getAttribute("data-type") + let productID + if (window.siyuan.config.cloudRegion === 0) { + productID = productType === "function" ? "0" : "1" + } else { + productID = productType === "function" ? "2" : "3" + } + window.webkit.messageHandlers.purchase.postMessage(`${productID} ${genUUID().substring(0, 19)}${window.siyuan.config.cloudRegion}00${window.siyuan.user.userId.substring(0, 1)}-${window.siyuan.user.userId.substring(1)}`); + }); } else { - productID = target.getAttribute("data-type") === "function" ? "2" : "3" + showMessage(window.siyuan.languages.needLogin); } - window.webkit.messageHandlers.purchase.postMessage(`${productID} ${genUUID().substring(0, 19)}${window.siyuan.config.cloudRegion}00${window.siyuan.user.userId.substring(0, 1)}-${window.siyuan.user.userId.substring(1)}`); event.preventDefault(); event.stopPropagation() break; @@ -160,7 +180,9 @@ ${renewHTML}`; break; } else if (target.id === "trialSub") { fetchPost("/api/account/startFreeTrial", {}, () => { - modelMainElement.querySelector("#refresh").dispatchEvent(new Event("click")); + modelMainElement.dispatchEvent(new CustomEvent("click", { + detail: modelMainElement.querySelector("#refresh") + })); }); event.preventDefault() event.stopPropagation()