// Metro module 9906 (f9907). import { useMemo, useState, useCallback, useRef, useEffect, useLayoutEffect } from "react"; import GatewayConnectionStore from "../gateway/GatewayConnectionStore"; import AuthenticationStore from "../../stores/AuthenticationStore"; import FrecencyStore from "../../stores/FrecencyStore"; import { ALLOWED_TYPES } from "./ShareConstants"; import { getQuickSwitcherOptions } from "../quickswitcher/QuickSwitcherActionCreators"; import { useStateFromStores } from "../../_bundle/Module589"; import useAutocompleter from "./useAutocompleter"; import { useFrecencySettings } from "../user_settings/FrecencyUserSettingsHooks"; import formatResults from "./formatResults"; export function makeAutocompleterSearchParams(a0) { const quickSwitcherOptions = getQuickSwitcherOptions(a0); const { query: query2, queryMode: queryMode2 } = quickSwitcherOptions; let resultTypes = ALLOWED_TYPES; const r14 = queryMode2 != null && ALLOWED_TYPES.includes(queryMode2); let queryMode3 = null; if (r14) { const r16 = [queryMode2]; queryMode3 = queryMode2; resultTypes = r16; } return { query: query2, queryMode: queryMode3, resultTypes }; } export function useShareSearchResults({ targetDestination, selectedDestinations, originDestination, channelFilter, includeMissingDMs: includeMissingDMs2 = false }) { let search, query, results, state, setState, queryMode, ref, ref2, current, stateFromStores2, stateFromStores3, hasQuery; const includeMissingDMs = includeMissingDMs2; search = void 0; query = void 0; results = void 0; state = void 0; setState = void 0; queryMode = void 0; ref = void 0; ref2 = void 0; current = void 0; stateFromStores2 = void 0; stateFromStores3 = void 0; hasQuery = void 0; const stateFromStores = useStateFromStores([AuthenticationStore], () => AuthenticationStore.getId()); const autocompleter = useAutocompleter(useMemo(() => ({ searchOptions: { blacklist: new Set([`user:${stateFromStores}`]), frecencyBoosters: true, userFilters: null } }), [stateFromStores])); search = autocompleter.search; query = autocompleter.query; results = autocompleter.results; const quickSwitcherOptions = getQuickSwitcherOptions(""); const { query: query2, queryMode: queryMode2 } = quickSwitcherOptions; let resultTypes = ALLOWED_TYPES; const r43 = queryMode2 != null && ALLOWED_TYPES.includes(queryMode2); let queryMode3 = null; if (r43) { const r45 = [queryMode2]; queryMode3 = queryMode2; resultTypes = r45; } [state, setState] = useState({ query: query2, queryMode: queryMode3, resultTypes }); const callback = useCallback((a0) => { const quickSwitcherOptions = getQuickSwitcherOptions(a0); const { query: query2, queryMode: queryMode2 } = quickSwitcherOptions; let resultTypes = ALLOWED_TYPES; const r16 = queryMode2 != null && ALLOWED_TYPES.includes(queryMode2); let queryMode3 = null; if (r16) { const r18 = [queryMode2]; queryMode3 = queryMode2; resultTypes = r18; } return setState({ query: query2, queryMode: queryMode3, resultTypes }); }, [setState]); queryMode = state.queryMode; ref = useRef(null); ref2 = useRef(selectedDestinations); current = query === ref.current ? ref2.current : selectedDestinations; useEffect(() => { if (query !== ref.current) { ref2.current = selectedDestinations; } ref.current = query; }, [query, selectedDestinations]); useLayoutEffect(() => { search({ query: state.query, resultTypes: state.resultTypes }); }, [search, state]); useFrecencySettings(); stateFromStores2 = useStateFromStores([FrecencyStore], () => FrecencyStore.getFrequentlyWithoutFetchingLatest()); stateFromStores3 = useStateFromStores([GatewayConnectionStore], () => GatewayConnectionStore.isConnected()); hasQuery = query !== ""; return { results: useMemo(() => formatResults({ results, hasQuery, queryMode, targetDestination, frequentChannels: stateFromStores2, selectedDestinations, pinnedDestinations: current, originDestination, channelFilter, includeMissingDMs, isConnected: stateFromStores3 }), [results, hasQuery, queryMode, targetDestination, stateFromStores2, selectedDestinations, current, originDestination, channelFilter, includeMissingDMs, stateFromStores3]), updateSearchText: callback }; }