Skip to content

Commit b058e21

Browse files
authored
🎨 Improve account toolbar VIP badge logic and settings switch order (#18089)
1 parent e959de4 commit b058e21

1 file changed

Lines changed: 34 additions & 21 deletions

File tree

app/src/config/tabs/accountUi.ts

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,14 @@ export const registerAccountGroup = (tab: SettingTabBuilder) => {
6767
afterMount: bindAccountPaymentEvent,
6868
});
6969
if (!isMobile()) {
70-
group.switch("account.displayTitle", {
71-
title: window.siyuan.languages.accountDisplayTitle,
72-
save: (value) => patchSyncConfig("account.displayTitle", value),
73-
});
7470
group.switch("account.displayVIP", {
7571
title: window.siyuan.languages.accountDisplayVIP,
7672
save: (value) => patchSyncConfig("account.displayVIP", value),
7773
});
74+
group.switch("account.displayTitle", {
75+
title: window.siyuan.languages.accountDisplayTitle,
76+
save: (value) => patchSyncConfig("account.displayTitle", value),
77+
});
7878
}
7979
};
8080

@@ -506,32 +506,45 @@ export const onSetaccount = () => {
506506
if (!toolbarVIPEl) {
507507
return;
508508
}
509-
if (!window.siyuan.user || window.siyuan.user.userSiYuanSubscriptionStatus === -1) {
510-
toolbarVIPEl.innerHTML = window.siyuan.config.account.displayVIP ? genToolbarItemHTML(window.siyuan.languages.freeSub, genVIPIconHTML("ft__error")) : "";
511-
return;
512-
}
513509
const parts: string[] = [];
514510
if (window.siyuan.config.account.displayVIP) {
515-
if (window.siyuan.user.userSiYuanProExpireTime === -1) {
516-
parts.push(genToolbarItemHTML(window.siyuan.languages.account12, Constants.SIYUAN_IMAGE_VIP));
517-
} else if (window.siyuan.user.userSiYuanProExpireTime > 0) {
518-
if (window.siyuan.user.userSiYuanSubscriptionPlan === 2) {
519-
parts.push(genToolbarItemHTML(window.siyuan.languages.account3, genVIPIconHTML()));
520-
} else {
521-
parts.push(genToolbarItemHTML(window.siyuan.languages.account10, genVIPIconHTML("ft__secondary")));
511+
if (!window.siyuan.user) {
512+
// 未登录
513+
parts.push(genToolbarItemHTML(window.siyuan.languages.freeSub, genVIPIconHTML("ft__error")));
514+
} else {
515+
const isOneTimePay = window.siyuan.user.userSiYuanOneTimePayStatus === 1;
516+
if (window.siyuan.user.userSiYuanProExpireTime === -1) {
517+
// 终身会员
518+
parts.push(genToolbarItemHTML(window.siyuan.languages.account12, Constants.SIYUAN_IMAGE_VIP));
519+
} else if (window.siyuan.user.userSiYuanProExpireTime > 0) {
520+
// 订阅有效(未过期)
521+
if (window.siyuan.user.userSiYuanSubscriptionPlan === 2) {
522+
// 试用订阅
523+
parts.push(genToolbarItemHTML(window.siyuan.languages.account3, genVIPIconHTML()));
524+
} else {
525+
// 付费订阅
526+
parts.push(genToolbarItemHTML(window.siyuan.languages.account10, genVIPIconHTML("ft__secondary")));
527+
}
528+
} else if (window.siyuan.user.userSiYuanSubscriptionStatus === 2 && !isOneTimePay) {
529+
// 订阅过期
530+
parts.push(genToolbarItemHTML(window.siyuan.languages.accountSubscriptionExpired, genVIPIconHTML("ft__error")));
531+
} else if (window.siyuan.user.userSiYuanSubscriptionStatus === -1 && !isOneTimePay) {
532+
// 未订阅过
533+
parts.push(genToolbarItemHTML(window.siyuan.languages.freeSub, genVIPIconHTML("ft__error")));
534+
}
535+
if (isOneTimePay) {
536+
// 功能特性已付费
537+
parts.push(genToolbarItemHTML(window.siyuan.languages.onepay, genVIPIconHTML("ft__success")));
522538
}
523-
} else if (window.siyuan.user.userSiYuanSubscriptionStatus === 2) {
524-
parts.push(genToolbarItemHTML(window.siyuan.languages.accountSubscriptionExpired, genVIPIconHTML("ft__error")));
525-
}
526-
if (window.siyuan.user.userSiYuanOneTimePayStatus === 1) {
527-
parts.push(genToolbarItemHTML(window.siyuan.languages.onepay, genVIPIconHTML("ft__success")));
528539
}
529540
}
530-
if (window.siyuan.config.account.displayTitle) {
541+
542+
if (window.siyuan.config.account.displayTitle && window.siyuan.user) {
531543
window.siyuan.user.userTitles.forEach(item => {
532544
parts.push(genToolbarItemHTML(`${item.name}${item.desc}`, item.icon));
533545
});
534546
}
547+
535548
toolbarVIPEl.innerHTML = parts.join("");
536549
/// #endif
537550
};

0 commit comments

Comments
 (0)