// Metro module 10105 (f10106). import ChannelStore from "../../stores/ChannelStore"; import GuildMemberStore from "../../stores/GuildMemberStore"; import GuildStore from "../../stores/GuildStore"; import SelectedChannelStore from "../../stores/SelectedChannelStore"; import StreamerModeStore from "../../stores/StreamerModeStore"; import UserStore from "../../stores/UserStore"; import { ME, SearchPopoutModes, SearchTokenTypes } from "../../Constants"; import { AutocompleterResultTypes } from "../autocompleter/AutocompleterConstants"; import { getSearchContextId, isGuildLikeSearchContext, clearTokenCache, getQueryFromTokens, getAutocompleteMode, getGuildIdFromSearchContext } from "./SearchUtils"; import UserSearchManager from "../autocompleter/UserSearchManager"; import UserUtils from "../../utils/UserUtils"; import isEqual from "../../_bundle/isEqual_4349"; import GuildUtils from "../../utils/GuildUtils"; import { getBoosterMap } from "../../utils/AutocompleteUtils"; import * as _SearchTokens from "./tokens/SearchTokens"; import SearchTokens from "./tokens/SearchTokens"; import Module589 from "../../_bundle/Module589"; import Dispatcher from "../../Dispatcher"; let searchContext, c6725_14, c6725_15, c6725_16, c6725_17, getAutocompleteList, rebuildAutocompleteResults, c6725_21; const handleUserSearchResults = function handleUserSearchResults(a0, { results }) { const searchContextId = getSearchContextId(a0); const r13 = c6725_16.get(searchContextId); const r29 = c6725_15.get(searchContextId); if (r13 != null && r29 != null) { const mode = r29.mode; let r2 = mode.type === SearchPopoutModes.FILTER; if (r2) { const filter = mode.filter; r2 = filter != null && (filter === SearchTokenTypes.FILTER_FROM || filter === SearchTokenTypes.FILTER_MENTIONS); } if (r2) { r13.results = (function fixUserResults(a0, r5) { const r0 = []; for (const item of a0) { if (!(r0.length >= r5)) { const user = UserStore.getUser(item.id); const user2 = user; if (user == null) { continue; } const userTag = UserUtils.getUserTag(user2); const text = userTag; if (userTag == null) { continue; } r0.push({ text, user: user2 }); continue; } break; } return r0; })(results, r29.mode.type === SearchPopoutModes.FILTER ? 10 : 3); const { query, mode: mode2, tokens, cursorScope } = r29; const autocompleteList = getAutocompleteList(a0, mode2, tokens); const searchContextId2 = getSearchContextId(a0); let r51 = c6725_16.get(searchContextId2); if (r51 == null) { r51 = { results: [], context: UserSearchManager.getUserSearchContext(handleUserSearchResults.bind(null, a0)) }; } c6725_16.set(searchContextId2, r51); c6725_15.set(searchContextId, { searchContext: a0, query, mode: mode2, tokens, cursorScope, autocompletes: autocompleteList }); c6725_21.emitChange(); } } }; getAutocompleteList = function getAutocompleteList(searchContext2, a1, a2) { let results; const type = a1.type; if (SearchPopoutModes.FILTER === type) { const { filter, token } = a1; let maxResults = c6725_17; if (c6725_17 === void 0) { maxResults = 10; } let currentUser; currentUser = void 0; const r1 = filter == null; let r29 = null; if (!r1) { const r30 = token == null; let query = void 0; if (!r30) { const fullMatch = token.getFullMatch(); query = fullMatch == null ? void 0 : fullMatch.trim(); } if (query == null) { query = ""; } const length = query.length; if (isGuildLikeSearchContext(searchContext2) && (filter != null && (filter === SearchTokenTypes.FILTER_FROM || filter === SearchTokenTypes.FILTER_MENTIONS) && length !== 0)) { const searchContextId = getSearchContextId(searchContext2); let r48 = c6725_16.get(searchContextId); if (r48 == null) { r48 = { results: [], context: UserSearchManager.getUserSearchContext(handleUserSearchResults.bind(null, searchContext2)) }; } c6725_16.set(searchContextId, r48); results = r48.results; } else { const getAutocompletions = SearchTokens[filter]?.getAutocompletions; results = getAutocompletions != null ? getAutocompletions({ query, searchContext: searchContext2, maxResults, tokens: a2 }) : []; } let results2 = results; if (results2 != null) { const r68 = filter != null && (filter === SearchTokenTypes.FILTER_FROM || filter === SearchTokenTypes.FILTER_MENTIONS); results2 = results; if (r68) { const isMeAutcompleteAnswer = _SearchTokens.isMeAutcompleteAnswer(query); results2 = results; if (isMeAutcompleteAnswer) { currentUser = UserStore.getCurrentUser(); results2 = results; if (currentUser != null) { const r82 = results.filter((result) => result.user?.id !== currentUser.id); r82.unshift({ text: ME, user: currentUser }); results2 = r82; } } } } r29 = results2 == null ? null : results2.length !== 0 ? { group: filter, results: results2 } : null; } return r29 != null ? [r29] : c6725_14; } if (SearchPopoutModes.FILTER_ALL !== type && SearchPopoutModes.EMPTY !== type) { return void 0; } return c6725_14; }; const handleChannelCreateOrDelete = function handleChannelCreateOrDelete() { clearTokenCache(); }; rebuildAutocompleteResults = function rebuildAutocompleteResults(a0) { const searchContextId = getSearchContextId(a0); const r21 = c6725_15.get(searchContextId); if (r21 == null) { return false; } const { query, mode, tokens, cursorScope } = r21; const autocompleteList = getAutocompleteList(a0, mode, tokens); const searchContextId2 = getSearchContextId(a0); let r28 = c6725_16.get(searchContextId2); if (r28 == null) { r28 = { results: [], context: UserSearchManager.getUserSearchContext(handleUserSearchResults.bind(null, a0)) }; } c6725_16.set(searchContextId2, r28); c6725_15.set(searchContextId, { searchContext: a0, query, mode, tokens, cursorScope, autocompletes: autocompleteList }); }; searchContext = null; c6725_14 = []; c6725_15 = new Map(); c6725_16 = new Map(); c6725_17 = 10; new Set([SearchTokenTypes.FILTER_FROM, SearchTokenTypes.FILTER_IN, SearchTokenTypes.FILTER_MENTIONS]); class SearchAutocompleteStoreClass extends Module589.Store { static displayName = "SearchAutocompleteStore"; initialize() { this.waitFor(ChannelStore, GuildMemberStore, GuildStore, SelectedChannelStore, StreamerModeStore, UserStore); } getState(a0) { let r11 = c6725_15.get(getSearchContextId(a0)); if (r11 == null) { r11 = { searchContext: a0, query: "", mode: { type: SearchPopoutModes.EMPTY, filter: null, token: null }, tokens: [], cursorScope: null, autocompletes: [] }; } return r11; } getSelectedSearchContext() { return searchContext; } } c6725_21 = new SearchAutocompleteStoreClass(Dispatcher, { SEARCH_AUTOCOMPLETE_INITIALIZE: function handleSearchAutocompleteInitialize({ searchContext: searchContext2 }) { if (!isEqual(searchContext, searchContext2)) { searchContext = searchContext2; clearTokenCache(); } rebuildAutocompleteResults(searchContext2); }, SEARCH_AUTOCOMPLETE_QUERY_UPDATE: function handleSearchAutocompleteQueryUpdate({ searchContext: searchContext2, tokens, cursorScope }) { let r46, r66, autocompleteMode, autocompletes, queryFromTokens, searchContextId; if (!isEqual(searchContext, searchContext2)) { searchContext = searchContext2; clearTokenCache(); } L34: { L6: { queryFromTokens = getQueryFromTokens(tokens); autocompleteMode = getAutocompleteMode(cursorScope, tokens); searchContextId = getSearchContextId(searchContext2); r46 = c6725_15.get(searchContextId); if (r46 != null && queryFromTokens === r46.query) { if (r46.mode != null && r46.mode.filter !== autocompleteMode.filter) { break L6; } autocompletes = r46.autocompletes; r66 = false; break L34; } } let r1 = autocompleteMode.type === SearchPopoutModes.FILTER; if (r1) { const filter = autocompleteMode.filter; r1 = filter != null && (filter === SearchTokenTypes.FILTER_FROM || filter === SearchTokenTypes.FILTER_MENTIONS); } if (r1) { const searchContextId2 = getSearchContextId(searchContext2); let r71 = c6725_16.get(searchContextId2); if (r71 == null) { r71 = { results: [], context: UserSearchManager.getUserSearchContext(handleUserSearchResults.bind(null, searchContext2)) }; } c6725_16.set(searchContextId2, r71); const token = autocompleteMode.token; const r80 = token == null; let query = void 0; if (!r80) { const fullMatch = token.getFullMatch(); query = fullMatch == null ? void 0 : fullMatch.trim(); } if (query != null && query.length > 0) { const guildIdFromSearchContext = getGuildIdFromSearchContext(searchContext2); if (guildIdFromSearchContext != null) { GuildUtils.requestMembers(guildIdFromSearchContext, query, c6725_17); } const context = r71.context; let guild = guildIdFromSearchContext; if (guild == null) { guild = void 0; } context.setQuery({ query, filters: { guild }, boosters: getBoosterMap(AutocompleterResultTypes.USER) }); let r115 = r46?.autocompletes; if (r115 == null) { r115 = []; } r66 = false; autocompletes = r115; break L34; } r71.context.clearQuery(); autocompletes = getAutocompleteList(searchContext2, autocompleteMode, tokens); r66 = true; } else { const r59 = c6725_16.get(searchContextId); if (r59 != null) { r59.context.clearQuery(); r59.results = []; } autocompletes = getAutocompleteList(searchContext2, autocompleteMode, tokens); r66 = true; } } const searchContextId3 = getSearchContextId(searchContext2); let r122 = c6725_16.get(searchContextId3); if (r122 == null) { r122 = { results: [], context: UserSearchManager.getUserSearchContext(handleUserSearchResults.bind(null, searchContext2)) }; } c6725_16.set(searchContextId3, r122); c6725_15.set(searchContextId, { searchContext: searchContext2, query: queryFromTokens, mode: autocompleteMode, tokens, cursorScope, autocompletes }); return r66; }, SEARCH_QUERY_TEXT_CLEAR: function handleSearchQueryTextClear({ id }) { const r5 = c6725_16.get(id); if (r5 != null) { r5.context.destroy(); r5.results = []; c6725_16.delete(id); } c6725_15.delete(id); searchContext = null; }, CHANNEL_CREATE: handleChannelCreateOrDelete, CHANNEL_DELETE: handleChannelCreateOrDelete, STREAMER_MODE_UPDATE: function handleStreamerModeUpdate() { return searchContext != null && rebuildAutocompleteResults(searchContext); }, CHANNEL_SELECT: function handleChannelSelect() { return searchContext != null && rebuildAutocompleteResults(searchContext); } }); export default c6725_21;