56 lines
2.4 KiB
TypeScript
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
|
|
};
|
|
};
|