Files
discord-decomp/modules/user_profile/hooks/useUserProfileMutuals.tsx
T
2026-11-01 12:12:55 +02:00

56 lines
2.4 KiB
TypeScript

// Metro module 11696 (f11697).
import { useMemo } from "react";
import UserAffinitiesV2Store from "../../user_affinities/UserAffinitiesV2Store";
import SortedGuildStore from "../../../stores/SortedGuildStore";
import UserProfileStore from "../UserProfileStore";
import { useStateFromStoresArray, useStateFromStores } from "../../../_bundle/Module589";
import { sortBy } from "../../../_bundle/Module12";
import usePrevValue from "../../../hooks/usePrevValue";
export default function useUserProfileMutuals(c19081_0) {
let c19081_1, c19081_2, stateFromStores, stateFromStores2;
let [mutualFriendsCount, r13, r12, isFetching, isFetchingFriends] = useStateFromStoresArray([UserProfileStore], () => [UserProfileStore.getMutualFriendsCount(c19081_0.id), UserProfileStore.getMutualFriends(c19081_0.id), UserProfileStore.getMutualGuilds(c19081_0.id), UserProfileStore.isFetchingProfile(c19081_0.id), UserProfileStore.isFetchingFriends(c19081_0.id)]);
c19081_1 = r13;
c19081_2 = r12;
stateFromStores = useStateFromStores([UserAffinitiesV2Store], () => UserAffinitiesV2Store.getUserAffinitiesMap());
stateFromStores2 = useStateFromStores([SortedGuildStore], () => SortedGuildStore.getFlattenedGuildIds());
let mutualFriends = useMemo(() => c19081_1 != null ? c19081_1.length < 2 ? c19081_1 : sortBy(c19081_1, (a0) => {
let r10 = stateFromStores.get(a0.user.id)?.communicationProbability;
if (r10 == null) {
r10 = -1;
}
return -1 * r10;
}) : c19081_1, [r13, stateFromStores]);
let mutualGuilds = useMemo(() => {
if (c19081_2 != null && !(c19081_2.length < 2)) {
let c27131_0 = Object.fromEntries(stateFromStores2.map((item, index) => [item, index]));
return sortBy(c19081_2, (a0) => {
let r6 = c27131_0[a0.guild.id];
if (r6 == null) {
r6 = stateFromStores2.length;
}
return r6;
});
}
return c19081_2;
}, [r12, stateFromStores2]);
const prevValue = usePrevValue(mutualFriendsCount);
const prevValue2 = usePrevValue(mutualFriends);
const prevValue3 = usePrevValue(mutualGuilds);
if (mutualFriendsCount == null) {
mutualFriendsCount = prevValue;
}
if (mutualFriends == null) {
mutualFriends = prevValue2;
}
if (mutualGuilds == null) {
mutualGuilds = prevValue3;
}
return {
mutualFriendsCount,
mutualFriends,
mutualGuilds,
isFetching,
isFetchingFriends
};
};