hku-class/miniprogram/app.js
2026-05-13 00:36:39 +08:00

35 lines
1.1 KiB
JavaScript

const { getStoredUser, refreshMe } = require("./utils/auth");
App({
globalData: {
user: null,
activeClassId: null,
enabledModules: null
},
onLaunch() {
const user = getStoredUser();
if (user) {
this.setUser(user);
refreshMe().catch(() => {});
}
},
setUser(user) {
const savedClass = wx.getStorageSync("active_class") || null;
const memberships = Array.isArray(user.memberships) ? user.memberships : [];
const savedClassValid = savedClass && savedClass.id && memberships.some(
(membership) => membership.class_id === savedClass.id
);
const activeMembership = user.active_membership || null;
const firstMembership = memberships.length ? memberships[0] : null;
this.globalData.user = user;
this.globalData.activeClassId = savedClassValid
? savedClass.id
: (activeMembership && activeMembership.class_id) || (firstMembership && firstMembership.class_id) || null;
this.globalData.enabledModules = savedClassValid
? savedClass.enabled_modules
: user.enabled_modules || null;
}
});