// Metro module 11294 (f11295). import { useEffect, useMemo } from "react"; import ApplicationFrecencyStore from "./ApplicationFrecencyStore"; import { UserSettingsTypes } from "../user_settings/UserSettingsConstants"; import { FrecencyUserSettingsActionCreators } from "../user_settings/UserSettingsProtoActionCreators"; import { useStateFromStores } from "../../_bundle/Module589"; import SnowflakeUtils from "../../utils/SnowflakeUtils"; import { getApplicationCommandSection } from "../application_commands/ApplicationCommandUtils"; export function useSortApplicationsViaFrecency(a0, a1) { let stateFromStores, memo, memo2, memo3; let c18719_0 = a0; useEffect(() => { FrecencyUserSettingsActionCreators.loadIfUncached(UserSettingsTypes.FRECENCY_AND_FAVORITES_SETTINGS); }, []); stateFromStores = useStateFromStores([ApplicationFrecencyStore], () => ApplicationFrecencyStore.getApplicationFrecencyWithoutLoadingLatest()); memo = useMemo(() => a1 != null && a1.length !== 0 ? c18719_0.map((a0) => { let isUserApp = a1 == null ? void 0 : a1.some((item) => item.application.id === a0.id); if (isUserApp == null) { isUserApp = false; } return { ...a0, isUserApp }; }) : c18719_0, [a0, a1]); memo2 = useMemo(() => a1 == null ? void 0 : a1.filter((c30387_0) => !c18719_0.some((item) => item.id === c30387_0.application.id)), [a0, a1]); memo3 = useMemo(() => { if (memo2 != null) { memo2.forEach((item) => { const timestamp = SnowflakeUtils.extractTimestamp(item.id); if (stateFromStores.getEntry(item.application.id) == null) { stateFromStores.track(item.application.id, { timestamp }); } }); } stateFromStores.compute(); let r8 = memo2 == null ? void 0 : memo2.map((item) => getApplicationCommandSection(item.application, true)); if (r8 == null) { r8 = []; } const r19 = [...memo]; r19.push.apply(r19, [...r8]); r19.sort((a, b) => { let r5 = stateFromStores.getScore(b.id); if (r5 == null) { r5 = 0; } let r11 = stateFromStores.getScore(a.id); if (r11 == null) { r11 = 0; } let r12 = r5 - r11; if (r12 === 0) { r12 = a.name.localeCompare(b.name); } return r12; }); return r19; }, [memo, stateFromStores, memo2]); return useMemo(() => { let c27014_0, c27014_1, c27014_2; if (a1 != null) { a1.forEach((item) => { const r12 = SnowflakeUtils.extractTimestamp(item.id); if (c27014_1 == null || r12 > c27014_1) { c27014_0 = item; c27014_1 = r12; } }); } memo.forEach((item) => { const r8 = Math; const max = r8.max; let r16 = stateFromStores.getEntry(item.id)?.recentUses; if (r16 == null) { r16 = []; } const r22 = max.apply(r8, [...r16]); if (c27014_1 == null || r22 > c27014_1) { c27014_0 = item; c27014_1 = r22; } }); let r18 = c27014_0 == null ? void 0 : c27014_0.application?.id; if (r18 == null) { r18 = ""; } c27014_2 = r18; return [...memo3.filter((item) => item.id === c27014_2), ...memo3.filter((item) => item.id !== c27014_2)]; }, [memo3, memo, stateFromStores, a1]); }