69 lines
2.7 KiB
TypeScript
69 lines
2.7 KiB
TypeScript
// 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;
|