35 lines
1.1 KiB
JavaScript
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;
|
|
}
|
|
});
|