Files
discord-decomp/modules/multi_account/useMultiAccount.tsx
T
2026-11-01 12:12:55 +02:00

34 lines
1.3 KiB
TypeScript

// Metro module 14865 (f14866).
import { useEffect } from "react";
import UserStore from "../../stores/UserStore";
import MultiAccountStore, { MultiAccountTokenStatus } from "./MultiAccountStore";
import { useStateFromStoresObject } from "../../_bundle/Module589";
import Dispatcher from "../../Dispatcher";
import { validateMultiAccountTokens } from "./MultiAccountActionCreators";
export function useMultiAccountUsers() {
const stateFromStoresObject = useStateFromStoresObject([MultiAccountStore, UserStore], () => {
const users = MultiAccountStore.getUsers();
const currentUser = UserStore.getCurrentUser();
return currentUser != null && !users.some((user) => user.id === currentUser.id) ? {
isLoading: MultiAccountStore.getIsValidatingUsers(),
multiAccountUsers: [{
id: currentUser.id,
avatar: currentUser.avatar,
username: currentUser.username,
discriminator: currentUser.discriminator,
tokenStatus: MultiAccountTokenStatus.VALID,
pushSyncToken: null
}, ...users]
} : {
isLoading: MultiAccountStore.getIsValidatingUsers(),
multiAccountUsers: users
};
});
useEffect(() => {
Dispatcher.wait(() => {
validateMultiAccountTokens();
});
}, []);
return stateFromStoresObject;
}