32 lines
977 B
TypeScript
32 lines
977 B
TypeScript
/**
|
||
* 课程支付状态 - localStorage(来自 nomadlms)
|
||
* 与 join 报名支付分离,课程解锁用此模块
|
||
*/
|
||
|
||
const PAY_STORAGE_KEY = "lms-pay";
|
||
|
||
/** 是否已支付(课程已解锁) */
|
||
export function isPaid(): boolean {
|
||
if (typeof window === "undefined") return false;
|
||
return localStorage.getItem(PAY_STORAGE_KEY) === "ok";
|
||
}
|
||
|
||
/** 设置已支付(支付成功后调用) */
|
||
export function setPaid(): void {
|
||
if (typeof window === "undefined") return;
|
||
localStorage.setItem(PAY_STORAGE_KEY, "ok");
|
||
window.dispatchEvent(new CustomEvent("pay:updated"));
|
||
}
|
||
|
||
/** 前 2 章为试看,无需支付 */
|
||
export function isFreeTrial(moduleIndex: number, lessonIndex: number): boolean {
|
||
if (moduleIndex === 0 && lessonIndex < 2) return true;
|
||
return false;
|
||
}
|
||
|
||
/** 章节是否可观看 */
|
||
export function canWatchLesson(moduleIndex: number, lessonIndex: number): boolean {
|
||
if (isFreeTrial(moduleIndex, lessonIndex)) return true;
|
||
return isPaid();
|
||
}
|