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