// 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 };