194 lines
5.3 KiB
TypeScript
194 lines
5.3 KiB
TypeScript
// Metro module 11508 (f11509).
|
|
import { MAX_ACCOUNTS } from "./Constants";
|
|
import isStaffFromRawUser from "../user/isStaffFromRawUser";
|
|
import { removeToken } from "../../_bundle/setSecondaryToken";
|
|
import { moveItemFromTo } from "../../utils/DragAndDropUtils";
|
|
import Module589 from "../../_bundle/Module589";
|
|
import Dispatcher from "../../Dispatcher";
|
|
function $mk87423($env) {
|
|
return (a0) => a0.id !== $env[0];
|
|
}
|
|
function $mk87424($env) {
|
|
return (a0) => a0.id === $env[0];
|
|
}
|
|
let id, canUseMultiAccountMobile;
|
|
let c7843_7 = {
|
|
INVALID: 0,
|
|
0: "INVALID",
|
|
VALIDATING: 1,
|
|
1: "VALIDATING",
|
|
VALID: 2,
|
|
2: "VALID"
|
|
};
|
|
const users = [];
|
|
class MultiAccountStore extends Module589.PersistedStore {
|
|
static displayName = "MultiAccountStore";
|
|
static persistKey = "MultiAccountStore";
|
|
static migrations = [(a0) => {
|
|
let r1;
|
|
if (a0 != null) {
|
|
let users2 = a0.users;
|
|
if (users2 == null) {
|
|
users2 = [];
|
|
}
|
|
r1 = {
|
|
users: users2,
|
|
canUseMultiAccountMobile: false
|
|
};
|
|
} else {
|
|
r1 = {
|
|
users: [],
|
|
canUseMultiAccountMobile: false
|
|
};
|
|
}
|
|
return r1;
|
|
}];
|
|
initialize(a0) {
|
|
if (a0 != null) {
|
|
let users2 = a0.users;
|
|
if (users2 == null) {
|
|
users2 = [];
|
|
}
|
|
users = users2;
|
|
canUseMultiAccountMobile = a0.canUseMultiAccountMobile;
|
|
}
|
|
}
|
|
getCanUseMultiAccountMobile() {
|
|
return canUseMultiAccountMobile;
|
|
}
|
|
getState() {
|
|
return {
|
|
users,
|
|
canUseMultiAccountMobile
|
|
};
|
|
}
|
|
getUsers() {
|
|
return users;
|
|
}
|
|
getValidUsers() {
|
|
return users.filter((user) => user.tokenStatus !== c7843_7.INVALID);
|
|
}
|
|
getHasLoggedInAccounts() {
|
|
return users.length > 0;
|
|
}
|
|
getIsValidatingUsers() {
|
|
return users.some((user) => user.tokenStatus === c7843_7.VALIDATING);
|
|
}
|
|
get canUseMultiAccountNotifications() {
|
|
return this.getCanUseMultiAccountMobile();
|
|
}
|
|
}
|
|
const multiAccountStore = new MultiAccountStore(Dispatcher, {
|
|
CONNECTION_OPEN: function handleConnectionOpen({ user }) {
|
|
id = user.id;
|
|
const r6 = canUseMultiAccountMobile;
|
|
if (r6 ? !r6 : isStaffFromRawUser(user)) {
|
|
canUseMultiAccountMobile = true;
|
|
}
|
|
const r17 = users.slice();
|
|
const r20 = r17.findIndex((item) => item.id === user.id);
|
|
if (r20 > -1) {
|
|
users[r20].avatar = user.avatar;
|
|
users[r20].username = user.username;
|
|
users[r20].discriminator = user.discriminator;
|
|
users[r20].tokenStatus = c7843_7.VALID;
|
|
users = r17;
|
|
} else {
|
|
r17.push({
|
|
id: user.id,
|
|
avatar: user.avatar,
|
|
username: user.username,
|
|
discriminator: user.discriminator,
|
|
tokenStatus: c7843_7.VALID,
|
|
pushSyncToken: null
|
|
});
|
|
users = r17;
|
|
}
|
|
if (r17.length > MAX_ACCOUNTS) {
|
|
users.splice(MAX_ACCOUNTS).forEach(({ id: id2 }) => {
|
|
let env27091;
|
|
const r6 = env27091 = {};
|
|
env27091[0] = id2;
|
|
users = users.filter($mk87423(r6));
|
|
removeToken(id2);
|
|
});
|
|
}
|
|
},
|
|
LOGOUT: function handleLogout(a0) {
|
|
if (!a0.isSwitchingAccount) {
|
|
users = users.filter((user) => user.id !== id);
|
|
}
|
|
id = null;
|
|
},
|
|
MULTI_ACCOUNT_VALIDATE_TOKEN_REQUEST: ({ userId: userId2 }) => {
|
|
let env18908;
|
|
const VALIDATING = c7843_7.VALIDATING;
|
|
const r7 = env18908 = {};
|
|
env18908[0] = userId2;
|
|
const r9 = users.slice();
|
|
const r12 = r9.find($mk87424(r7));
|
|
if (r12 != null) {
|
|
r12.tokenStatus = VALIDATING;
|
|
users = r9;
|
|
}
|
|
},
|
|
MULTI_ACCOUNT_VALIDATE_TOKEN_SUCCESS: ({ userId: userId2 }) => {
|
|
let env18909;
|
|
const VALID = c7843_7.VALID;
|
|
const r7 = env18909 = {};
|
|
env18909[0] = userId2;
|
|
const r9 = users.slice();
|
|
const r12 = r9.find($mk87424(r7));
|
|
if (r12 != null) {
|
|
r12.tokenStatus = VALID;
|
|
users = r9;
|
|
}
|
|
},
|
|
MULTI_ACCOUNT_VALIDATE_TOKEN_FAILURE: ({ userId: userId2 }) => {
|
|
let env18910;
|
|
const INVALID = c7843_7.INVALID;
|
|
const r7 = env18910 = {};
|
|
env18910[0] = userId2;
|
|
const r9 = users.slice();
|
|
const r12 = r9.find($mk87424(r7));
|
|
if (r12 != null) {
|
|
r12.tokenStatus = INVALID;
|
|
users = r9;
|
|
}
|
|
},
|
|
MULTI_ACCOUNT_REMOVE_ACCOUNT: ({ userId: userId2 }) => {
|
|
let env18911;
|
|
const r6 = env18911 = {};
|
|
env18911[0] = userId2;
|
|
users = users.filter($mk87423(r6));
|
|
removeToken(userId2);
|
|
},
|
|
MULTI_ACCOUNT_MOVE_ACCOUNT: function handleMoveAccount(a0) {
|
|
users = moveItemFromTo(users, a0.from, a0.to);
|
|
},
|
|
CURRENT_USER_UPDATE: function handleCurrentUserUpdate({ user: user2 }) {
|
|
const r7 = users.slice();
|
|
const r10 = r7.find((item) => item.id === user2.id);
|
|
if (r10 != null) {
|
|
r10.avatar = user2.avatar;
|
|
r10.username = user2.username;
|
|
r10.discriminator = user2.discriminator;
|
|
users = r7;
|
|
}
|
|
},
|
|
MULTI_ACCOUNT_UPDATE_PUSH_SYNC_TOKEN: function handleUpdatePushSyncToken({ userId, pushSyncToken }) {
|
|
users = users.map((user) => user.id === userId ? {
|
|
...user,
|
|
pushSyncToken
|
|
} : user);
|
|
},
|
|
MULTI_ACCOUNT_INVALIDATE_PUSH_SYNC_TOKENS: function handleInvalidatePushSyncTokens({ invalidPushSyncTokens }) {
|
|
users = users.map((user) => user.pushSyncToken != null ? invalidPushSyncTokens.includes(user.pushSyncToken) ? {
|
|
...user,
|
|
pushSyncToken: null
|
|
} : user : user);
|
|
}
|
|
});
|
|
export default multiAccountStore;
|
|
export { c7843_7 as MultiAccountTokenStatus };
|