// Metro module 11296 (f11297). import { useMemo } from "react"; import { useGuildIndexState } from "../../application_commands/ApplicationCommandIndexStore"; import UserStore from "../../../stores/UserStore"; import { DISCOVERY_COMMANDS_QUERY_LIMIT } from "../../application_commands/ApplicationCommandConstants"; import { useStateFromStores } from "../../../_bundle/Module589"; import { useDiscovery } from "../../application_commands/ApplicationCommandQueryApi"; import { ApplicationCommandType } from "../../../flow/Server"; import { BUILT_IN_SECTIONS } from "../../application_commands/ApplicationCommandBuiltIns"; import { useSortApplicationsViaFrecency } from "../../applications/ApplicationFrecencyHooks"; import Module12 from "../../../_bundle/Module12"; import isApplicationAgeRestricted from "../../applications/utils/isApplicationAgeRestricted"; export default function useAppsInThisServer({ context }) { let commandsByActiveSection, memo, sortApplicationsViaFrecency; commandsByActiveSection = void 0; memo = void 0; sortApplicationsViaFrecency = void 0; const guildIndexState = useGuildIndexState((context.type === "channel" ? context.channel : void 0)?.guild_id, true); const stateFromStores = useStateFromStores([UserStore], () => UserStore.getCurrentUser()?.nsfwAllowed); const discovery = useDiscovery({ context, filters: { commandTypes: [ApplicationCommandType.CHAT, ApplicationCommandType.PRIMARY_ENTRY_POINT] }, options: { placeholderCount: 0, limit: DISCOVERY_COMMANDS_QUERY_LIMIT, includeFrecency: true }, allowFetch: true }); commandsByActiveSection = discovery.commandsByActiveSection; const loading = discovery.loading; memo = useMemo(() => commandsByActiveSection.reduce((acc, item) => { const section = item.section; if (item.data.length > 0) { acc.add(section.id); } return acc; }, new Set()), [commandsByActiveSection]); sortApplicationsViaFrecency = useSortApplicationsViaFrecency(useMemo(() => { const r6 = Object; let r9 = guildIndexState.result?.sections; if (r9 == null) { r9 = {}; } return r6.values(r9).map((item) => item.descriptor).filter((item) => !(item.id in BUILT_IN_SECTIONS) && memo.has(item.id)); }, [guildIndexState.result?.sections, memo])); return { appsInThisServer: useMemo(() => Module12.compact(sortApplicationsViaFrecency.map((item) => item.application)).filter((item) => !(stateFromStores === false && isApplicationAgeRestricted(item.id))).map((item) => ({ application: item })), [stateFromStores, sortApplicationsViaFrecency]), isLoading: guildIndexState.fetchState.fetching || loading }; };