// Metro module 11292 (f11293). import { useEffect, useMemo } from "react"; import AuthorizedAppsStore, { FetchState } from "../../oauth2/AuthorizedAppsStore"; import UserStore from "../../../stores/UserStore"; import AppLauncherLastUsedCommandStore from "../AppLauncherLastUsedCommandStore"; import { WATCH_YOUTUBE_PROD_APP_ID } from "../../activities/Constants"; import { BuiltInSectionId, DISCOVERY_COMMANDS_QUERY_LIMIT } from "../../application_commands/ApplicationCommandConstants"; import { ApplicationCommandType } from "../../../flow/Server"; import { useDiscovery } from "../../application_commands/ApplicationCommandQueryApi"; import { useStateFromStores, useStateFromStoresArray } from "../../../_bundle/Module589"; import AuthorizedAppsActionCreators from "../../oauth2/AuthorizedAppsActionCreators"; import { OAuth2Scopes } from "../../../_bundle/Module8174"; import { useSortApplicationsViaFrecency } from "../../applications/ApplicationFrecencyHooks"; import isApplicationAgeRestricted from "../../applications/utils/isApplicationAgeRestricted"; import { isEmbeddedApp } from "../utils/AppLauncherUtils"; import { queryForPrimaryAppCommand } from "../../application_commands/getPrimaryAppCommand"; let filters, options; const useFrecentApps = function useFrecentApps({ sectionDescriptors, context, onlyActivityApps, includeAuthorizedAppsAndFetch }) { let c18717_4, memo, sortApplicationsViaFrecency, stateFromStores2; c18717_4 = void 0; memo = void 0; sortApplicationsViaFrecency = void 0; stateFromStores2 = void 0; const stateFromStores = useStateFromStores([AuthorizedAppsStore], () => AuthorizedAppsStore.getFetchState()); useEffect(() => { let r1 = includeAuthorizedAppsAndFetch; if (includeAuthorizedAppsAndFetch) { r1 = stateFromStores === FetchState.NOT_FETCHED; } if (r1) { AuthorizedAppsActionCreators.fetch(); } }, [includeAuthorizedAppsAndFetch, stateFromStores]); const stateFromStoresArray = useStateFromStoresArray([AuthorizedAppsStore], () => includeAuthorizedAppsAndFetch ? AuthorizedAppsStore.getNewestTokens().filter((item) => item.scopes.includes(OAuth2Scopes.APPLICATIONS_COMMANDS)) : []); const r31 = sectionDescriptors.filter((sectionDescriptor) => sectionDescriptor.id !== BuiltInSectionId.FRECENCY && sectionDescriptor.id !== BuiltInSectionId.BUILT_IN); const r1 = context.type === "contextless"; c18717_4 = r1; memo = useMemo(() => { const r1 = []; if (c18717_4) { r1.push(WATCH_YOUTUBE_PROD_APP_ID); } return r1; }, [r1]); sortApplicationsViaFrecency = useSortApplicationsViaFrecency(r31, stateFromStoresArray); stateFromStores2 = useStateFromStores([UserStore], () => UserStore.getCurrentUser()?.nsfwAllowed); return useMemo(() => { const hideAgeRestricted = function hideAgeRestricted(a0) { return !(stateFromStores2 === false && isApplicationAgeRestricted(a0.id)); }; return onlyActivityApps ? sortApplicationsViaFrecency.filter((item) => item.application != null && isEmbeddedApp(item.application) && queryForPrimaryAppCommand(context, item.id) != null).filter((item) => !memo.includes(item.id)).filter(hideAgeRestricted) : sortApplicationsViaFrecency.filter((item) => !memo.includes(item.id)).filter(hideAgeRestricted); }, [onlyActivityApps, sortApplicationsViaFrecency, context, memo, stateFromStores2]); }; filters = { commandTypes: [ApplicationCommandType.CHAT, ApplicationCommandType.PRIMARY_ENTRY_POINT] }; options = { placeholderCount: 0, limit: DISCOVERY_COMMANDS_QUERY_LIMIT, includeFrecency: true }; export default function useAppLauncherFrecentCommandsAndApps({ context: context2, onlyActivityApps: onlyActivityApps2 }) { let stateFromStores3; stateFromStores3 = void 0; const discovery = useDiscovery({ context: context2, filters, options, allowFetch: true }); const { commands, commandsByActiveSection, sectionDescriptors, filterSection, loading } = discovery; useEffect(() => { filterSection(BuiltInSectionId.FRECENCY); }, [filterSection]); stateFromStores3 = useStateFromStores([AppLauncherLastUsedCommandStore], () => AppLauncherLastUsedCommandStore.getLastUsedCommandId()); return { loading, frecencyCommands: useMemo(() => { if (onlyActivityApps2) { return []; } let r7 = commandsByActiveSection[0]?.data; if (r7 == null) { r7 = []; } const r14 = commands.find((command) => command.id === stateFromStores3); return r14 != null ? [r14, ...r7.filter((item) => item.id !== stateFromStores3)] : r7; }, [commands, commandsByActiveSection, stateFromStores3, onlyActivityApps2]), frecentApps: useFrecentApps({ sectionDescriptors, context: context2, onlyActivityApps: onlyActivityApps2, includeAuthorizedAppsAndFetch: true }), sectionDescriptors }; }; export function useAppLauncherFrecentApps({ context: context2, onlyActivityApps: onlyActivityApps3, allowCommandFetch, includeAuthorizedAppsAndFetch: includeAuthorizedAppsAndFetch2 }) { const discovery = useDiscovery({ context: context2, filters, options, allowFetch: allowCommandFetch }); return { loading: discovery.loading, frecentApps: useFrecentApps({ sectionDescriptors: discovery.sectionDescriptors, context: context2, onlyActivityApps: onlyActivityApps3, includeAuthorizedAppsAndFetch: includeAuthorizedAppsAndFetch2 }) }; }