36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
/**
|
||
* 会员按钮状态解析工具
|
||
* 根据会员状态和订阅状态,返回各按钮的显示状态
|
||
*/
|
||
|
||
/**
|
||
* 解析会员页按钮状态
|
||
* @param {object} params
|
||
* @param {boolean} params.isMember - 是否为会员
|
||
* @param {boolean} params.isSubscribed - 是否已订阅
|
||
* @returns {{ monthly: { visible: boolean, disabled: boolean, label: string }, subscription: { visible: boolean, disabled: boolean, label: string } }}
|
||
*/
|
||
export function resolveMembershipButtons({ isMember, isSubscribed }) {
|
||
// 单月会员按钮
|
||
const monthly = {
|
||
// 已开通单月会员时隐藏单月按钮(需求5.8)
|
||
visible: !isMember,
|
||
// 非会员时可点击
|
||
disabled: isMember,
|
||
// 非会员显示"开通会员",已开通显示"会员已开通"(需求5.5)
|
||
label: isMember ? 'joinedBtn' : 'joinBtn'
|
||
}
|
||
|
||
// 订阅会员按钮
|
||
const subscription = {
|
||
// 订阅按钮始终可见
|
||
visible: true,
|
||
// 已订阅时不可点击(需求5.9)
|
||
disabled: isSubscribed,
|
||
// 已订阅显示"已购买订阅会员",否则显示"订阅会员"
|
||
label: isSubscribed ? 'subscribedBtn' : 'subscribeBtn'
|
||
}
|
||
|
||
return { monthly, subscription }
|
||
}
|