// Metro module 10070 (f10071). import { useState, useMemo } from "react"; import GuildStore from "../../stores/GuildStore"; import PermissionStore from "../../stores/PermissionStore"; import SortedGuildStore from "../../stores/SortedGuildStore"; import GuildDirectoryStore from "./GuildDirectoryStore"; import { Permissions } from "../../Constants"; import { useStateFromStores, useStateFromStoresArray } from "../../_bundle/Module589"; import useMountEffect from "../../hooks/useMountEffect"; import { fetchGuildEntriesForIds } from "./GuildDirectoryActionCreators"; export default function useAvailableAndAddedGuilds(a0, c17671_1) { let stateFromStoresArray; const [loading, setState] = useState(false); const stateFromStores = useStateFromStores([GuildDirectoryStore], () => GuildDirectoryStore.getAdminGuildEntryIds(c17671_1)); stateFromStoresArray = useStateFromStoresArray([SortedGuildStore, GuildStore, PermissionStore], () => { const flattenedGuildIds = SortedGuildStore.getFlattenedGuildIds(); const r5 = []; let c26610_0 = r5; flattenedGuildIds.forEach((flattenedGuildId) => { const guild = GuildStore.getGuild(flattenedGuildId); if (guild != null && PermissionStore.can(Permissions.ADMINISTRATOR, guild) && guild.id !== a0) { c26610_0.push(guild); } }); return r5; }, [a0]); useMountEffect(() => { (async () => { let c30188_0; c30188_0 = void 0; setState(true); await fetchGuildEntriesForIds(c17671_1, stateFromStoresArray.map((item) => item.id)); (0, setState)(false); })(); }); return { availableGuilds: useMemo(() => stateFromStoresArray.filter((item) => !(stateFromStores == null ? void 0 : stateFromStores.has(item.id))), [stateFromStoresArray, stateFromStores]), addedGuilds: useMemo(() => stateFromStoresArray.filter((item) => stateFromStores == null ? void 0 : stateFromStores.has(item.id)), [stateFromStoresArray, stateFromStores]), loading }; };