// Metro module 10111 (f10112). import _objectWithoutProperties from "../../../_bundle/_objectWithoutProperties"; import { SEARCH_FILTERS_BY_TAB, SEARCH_QUERY_BY_SEARCH_FILTER, SEARCH_QUERY_DEFAULT_FILTERS } from "../SearchConstants"; import { SearchTypes } from "../../../Constants"; import { AbstractSearchFetchManager } from "./AbstractSearchFetchManager"; import { SearchTabFetcherImpl } from "../SearchFetcher"; const _excluded = ["include_nsfw", "channel_id"]; class SearchTabsFetchManager extends AbstractSearchFetchManager { createRequestPayload({ searchQuery, searchTabs, getLimit, pagination, trackExactTotalHits }) { const { include_nsfw, channel_id } = searchQuery; let c17706_2 = _objectWithoutProperties(searchQuery, _excluded); const r14 = { include_nsfw, channel_ids: channel_id, tabs: {}, track_exact_total_hits: trackExactTotalHits }; let c17706_3 = r14; searchTabs.forEach((searchTab) => { const limit = getLimit(searchTab); const r3 = SEARCH_FILTERS_BY_TAB[searchTab]; c17706_3.tabs[searchTab] = { ...SEARCH_QUERY_DEFAULT_FILTERS, ...r3 != null ? SEARCH_QUERY_BY_SEARCH_FILTER[r3] : {}, ...c17706_2, ...pagination, limit }; }); return r14; } createWithPayload(a0) { const { searchContext, searchQuery } = a0; const requestPayload = this.createRequestPayload({ searchQuery, searchTabs: a0.searchTabs, getLimit: a0.getLimit, pagination: a0.pagination, trackExactTotalHits: a0.trackExactTotalHits }); const type = searchContext.type; if (SearchTypes.GUILD !== type && SearchTypes.GUILD_CHANNEL !== type && SearchTypes.THREAD !== type) { if (SearchTypes.CHANNEL === type) { return new SearchTabFetcherImpl(searchContext.channelId, searchContext.type, searchQuery, requestPayload); } if (SearchTypes.DMS === type) { return new SearchTabFetcherImpl(searchContext.type, searchContext.type, searchQuery, requestPayload); } throw new Error(`[SearchFetchManager] Unsupported search context type: ${searchContext.type}`); } return new SearchTabFetcherImpl(searchContext.guildId, searchContext.type, searchQuery, requestPayload); } create({ id, searchContext, searchQuery, searchTabs, getLimit: getLimit2, pagination: pagination2, trackExactTotalHits }) { this.cancel(id); const withPayload = this.createWithPayload({ searchContext, searchQuery, searchTabs, getLimit: getLimit2, pagination: pagination2, trackExactTotalHits }); this.set(id, withPayload); return withPayload; } } const searchTabsFetchManager = new SearchTabsFetchManager(); export default searchTabsFetchManager;