// Metro module 11452 (f11453). import SearchMessageStore from "../SearchMessageStore"; import SearchQueryStore from "./stores/SearchQueryStore"; import { SEARCH_TABS_TO_SEARCH_QUERY_LIMITS, MAX_SEARCH_RESULTS_LIMIT, SEARCH_INITIAL_MESSAGE_TABS, CHANNEL_SEARCH_INITIAL_MESSAGE_TABS, MESSAGE_SEARCH_RESULT_TABS, SearchMediaTypes, SearchFileTypes, SearchLinkTypes } from "../SearchConstants"; import { SEARCH_TEXT_INPUT_DEBOUNCE_TIME, PLATFORM_REGEX_ICON_PAIRS } from "./SearchPlatformConstants"; import { SearchTypes, SearchModes, MessageFlags } from "../../../Constants"; import { getSearchTabFetchId, tokenizeQuery, getSelectionScope, getGuildIdFromSearchContext } from "../SearchUtils"; import { isThumbnailAttachment, isValidImageAttachment, isValidVideoAttachment, extractMediaFromAttachment, isValidImageEmbed, isValidVideoEmbed, extractMediaFromEmbed, extractMediaFromMessageComponents } from "../../media_viewer/native/MediaSourceUtil"; import * as _Module1384 from "../../../_bundle/Module1384"; import { getKeyboardIsOpen } from "../../keyboard/native/useKeyboardIsOpen"; import { isIOS } from "../../../utils/PlatformUtils"; import { dismissGlobalKeyboard } from "../../../utils/native/KeyboardManagerUtils"; import { LinkIcon } from "../../../design/components/Icon/native/redesign/generated/LinkIcon"; import URLUtils from "../../../utils/URLUtils"; import { ClydeIcon } from "../../../design/components/Icon/native/redesign/generated/ClydeIcon"; import Module712 from "../../../_bundle/Module712"; import { SearchResultExactCountEnabled } from "../../user_settings/UserSettings"; import Tracking from "./tracking/Tracking"; import SearchPlatformActionCreators from "./SearchPlatformActionCreators"; import SearchActionCreators from "../SearchActionCreators"; import Module12 from "../../../_bundle/Module12"; import { HermesBuiltin } from "../../../_hermes/prelude"; function $mk87255($env) { return function callback() { const r2 = $env; const r3 = $env.$parent; const r9 = (0, r2[1])(r3[4].getManager(r2[0])); if (!(r2[3] != null && (0, r3[1])(r3[2][20])(r2[3], r9))) { const r17 = r2[3]; r2[3] = r9; (0, r2[2])(r9, r17); } }; } function $mk87256($env) { return () => $env.$parent[4].removeChangeListener($env[4]); } let getGridItemBorderStyles, getInitialFetchLimit, getNextFetchLimit, onInitialFetchMessagesSuccess, onFetchMessagesStart, fetchInitialMessages; let env7797 = {}; export function performKeyboardAwareNavigation(a0) { if (getKeyboardIsOpen() && isIOS()) { dismissGlobalKeyboard(); setTimeout(() => a0(), 100); } else { a0(); } } export function delayUntilNavigationComplete(c18852_0) { setTimeout(() => c18852_0(), 200); } export function getUrlIcon(a0) { if (a0 == null) { return LinkIcon; } if (URLUtils.safeParseWithQuery(a0) == null) { return LinkIcon; } if (URLUtils.isDiscordUrl(a0)) { return ClydeIcon; } const length = PLATFORM_REGEX_ICON_PAIRS.length; let r0 = 0; if (0 < length) { do { const r22 = PLATFORM_REGEX_ICON_PAIRS[r0]; const { REGEX, Icon } = r22; const r25 = REGEX.exec(a0); const r1 = r0; if (r25 != null) { return Icon; } r0 = r1 + 1; } while (r0 < PLATFORM_REGEX_ICON_PAIRS.length); } return LinkIcon; } getGridItemBorderStyles = function getGridItemBorderStyles(a0) { let r22; L12: { const { itemIndex, numItems, numColumns } = a0; const r14 = Math.ceil(numItems / numColumns); const r18 = Math.floor(itemIndex / numColumns); const r3 = r14 - 1; if (itemIndex === 0) { r22 = { borderTopLeftRadius: Module712.radii.lg }; } else if (itemIndex === numColumns - 1) { r22 = { borderTopRightRadius: Module712.radii.lg }; } else { if (itemIndex % numColumns == 0 && r18 === r3) { r22 = { borderBottomLeftRadius: Module712.radii.lg }; break L12; } r22 = itemIndex === r14 * numColumns - 1 ? { borderBottomRightRadius: Module712.radii.lg } : void 0; } } return r22; }; export function getMediaGridItemStyles({ itemIndex, numItems, numColumns, spacing }) { const r13 = { ...getGridItemBorderStyles({ itemIndex, numItems, numColumns }) }; const marginEnd = spacing * (numColumns - 1) / numColumns; const r18 = itemIndex % numColumns; HermesBuiltin.copyDataProperties(r13, r18 === 0 ? { marginEnd } : numColumns - 1 === r18 ? { marginStart: marginEnd } : { marginHorizontal: marginEnd / 2 }); return r13; } export function getGridItemSpacingStyles({ itemIndex, spacing, numColumns }) { const marginEnd = spacing * (numColumns - 1) / numColumns; const r9 = itemIndex % numColumns; if (r9 === 0) { return { marginEnd }; } if (numColumns - 1 === r9) { return { marginStart: marginEnd }; } return { marginHorizontal: marginEnd / 2 }; } export function toSearchBarTag(a0) { return { id: a0.text, text: a0.text }; } getInitialFetchLimit = function getInitialFetchLimit(a0) { return Math.min(SEARCH_TABS_TO_SEARCH_QUERY_LIMITS[a0], MAX_SEARCH_RESULTS_LIMIT); }; getNextFetchLimit = function getNextFetchLimit(a0) { return Math.min(2 * SEARCH_TABS_TO_SEARCH_QUERY_LIMITS[a0], MAX_SEARCH_RESULTS_LIMIT); }; onInitialFetchMessagesSuccess = function onInitialFetchMessagesSuccess(a0) { const searchContext = a0.searchContext; if (a0.tabEntries.every((tabEntry) => { const [, r14] = tabEntry; return r14.total_results === 0 || r14.total_results == null; })) { Tracking.trackSearchEmptyMessageResult({ searchContext }); } }; onFetchMessagesStart = function onFetchMessagesStart({ searchContext, searchQueryString }) { SearchPlatformActionCreators.updateSearchQuery(searchContext, (a0) => a0.setSearchResultsQuery(searchQueryString)); }; fetchInitialMessages = function fetchInitialMessages(a0) { let searchTabs; let c18854_0 = a0; const isInitialSearchQuery = SearchQueryStore.isInitialSearchQuery(a0); const queryString = SearchQueryStore.getQueryString(a0); if (isInitialSearchQuery) { const type = a0.type; searchTabs = SearchTypes.GUILD_CHANNEL !== type && SearchTypes.CHANNEL !== type ? SEARCH_INITIAL_MESSAGE_TABS : CHANNEL_SEARCH_INITIAL_MESSAGE_TABS; } else { searchTabs = MESSAGE_SEARCH_RESULT_TABS; } const searchTabFetchId = getSearchTabFetchId(a0, searchTabs[0], queryString); if (!SearchMessageStore.getIsFetching(searchTabFetchId)) { SearchActionCreators.clearAllSearchMesssages(); Tracking.trackSearchStarted({ searchContext: a0 }); let cursor = SearchMessageStore.getCursor(searchTabFetchId); if (cursor == null) { cursor = null; } SearchActionCreators.fetchTabMessages({ searchContext: a0, searchTabs, searchQueryString: queryString, getId: (a0) => getSearchTabFetchId(c18854_0, a0, queryString), getLimit: getInitialFetchLimit, onFetchStart: onFetchMessagesStart, onFetchSuccess: onInitialFetchMessagesSuccess, pagination: { cursor }, trackExactTotalHits: SearchResultExactCountEnabled.getSetting(), searchMode: SearchModes.NEWEST }); } }; const syncAutocomplete = function syncAutocomplete(a0) { const queryString3 = SearchQueryStore.getQueryString(a0, true); const tokens = tokenizeQuery(queryString3); SearchActionCreators.updateAutocompleteQuery({ searchContext: a0, tokens, cursorScope: getSelectionScope(tokens, queryString3.length - 1, queryString3.length - 1), queryString: queryString3 }); }; const r52 = { performKeyboardAwareNavigation, delayUntilNavigationComplete, getUrlIcon, getGridItemBorderStyles, getMediaGridItemStyles, getGridItemSpacingStyles, toSearchBarTag, fetchInitialMessages, fetchInitialMessagesDebounced: Module12.debounce(fetchInitialMessages, SEARCH_TEXT_INPUT_DEBOUNCE_TIME), fetchNextMessages: function fetchNextMessages(a0, a1, a2) { let r44, cursor, messages, totalCount; let c18856_0 = a0; const queryString2 = SearchQueryStore.getQueryString(a0); const searchTabFetchId2 = getSearchTabFetchId(a0, a1, queryString2); const r28 = Math.min(SEARCH_TABS_TO_SEARCH_QUERY_LIMITS[a1], MAX_SEARCH_RESULTS_LIMIT); const searchTabFetchId = getSearchTabFetchId(a0, a1, queryString2); const isInitialFetchComplete = SearchMessageStore.getIsInitialFetchComplete(searchTabFetchId); let r1 = true; if (isInitialFetchComplete) { L12: { L5: { cursor = SearchMessageStore.getCursor(searchTabFetchId); totalCount = SearchMessageStore.getTotalCount(searchTabFetchId); messages = SearchMessageStore.getMessages(searchTabFetchId); if (!SearchResultExactCountEnabled.getSetting()) { if (totalCount != null && totalCount < r28) { break L5; } r44 = cursor != null; break L12; } } r44 = cursor != null && totalCount != null && messages != null && messages.length < totalCount; } r1 = r44; } const isFetching = SearchMessageStore.getIsFetching(searchTabFetchId2); const isInitialFetchComplete2 = SearchMessageStore.getIsInitialFetchComplete(searchTabFetchId2); const r50 = (r1 ? !isInitialFetchComplete2 : !r1) || isFetching; let r51 = !r50; if (!r50) { let cursor2 = SearchMessageStore.getCursor(searchTabFetchId2); if (cursor2 == null) { cursor2 = null; } r51 = SearchActionCreators.fetchTabMessages({ searchContext: a0, searchTabs: [a1], searchQueryString: queryString2, getLimit: getNextFetchLimit, getId: (a0) => getSearchTabFetchId(c18856_0, a0, queryString2), onFetchStart: onFetchMessagesStart, onFetchSuccess: a2, pagination: { cursor: cursor2 }, trackExactTotalHits: SearchResultExactCountEnabled.getSetting(), searchMode: SearchModes.NEWEST }); } return r51; }, syncAutocomplete, syncAutocompleteDebounced: Module12.debounce(syncAutocomplete, SEARCH_TEXT_INPUT_DEBOUNCE_TIME), navigateToSearchWithPrefetch: function navigateToSearchWithPrefetch(a0, a1) { SearchActionCreators.initializeAutocomplete(a1); SearchPlatformActionCreators.initializeSearchQuery(a1); fetchInitialMessages(a1); a0.navigate("search", { searchContext: a1 }); }, subscribeSearchQueryState: function subscribeSearchQueryState(a0, a1, a2, a3) { let env18855; const r2 = env18855 = { $parent: env7797 }; env18855[0] = a0; env18855[1] = a1; env18855[2] = a2; let r3 = a3; const r5 = $mk87255(r2); env18855[4] = r5; const r12 = a1(SearchQueryStore.getManager(a0)); env18855[3] = r12; if (a3) { r3 = r12 != null; } if (r3) { a2(env18855[3], void 0); } SearchQueryStore.addChangeListener(r5); return $mk87256(r2); }, subscribeTextInputValue: function subscribeTextInputValue(a0, a1, a2) { let env18858; let c18857_0 = a1; let r6 = a2; const r2 = env18858 = { $parent: env7797 }; env18858[0] = a0; env18858[1] = (a0) => ({ textInputValue: a0.getTextInputValue(), textInputChangedFromInput: a0.getTextValueChangedFromInput() }); env18858[2] = (a0, a1) => { c18857_0(a0.textInputValue, a1?.textInputValue, a0.textInputChangedFromInput); }; const r5 = $mk87255(r2); env18858[4] = r5; const manager = SearchQueryStore.getManager(a0); const r16 = { textInputValue: manager.getTextInputValue(), textInputChangedFromInput: manager.getTextValueChangedFromInput() }; env18858[3] = r16; if (a2) { r6 = true; } if (r6) { a1(r16.textInputValue, void 0, r16.textInputChangedFromInput); } SearchQueryStore.addChangeListener(r5); return $mk87256(r2); } }; export default r52; export function getMedia(a0, a1) { let r10 = getGuildIdFromSearchContext(a0); if (r10 == null) { r10 = void 0; } let c18859_0 = r10; const r12 = []; let c18859_1 = r12; a1.forEach((a0) => { let c27068_0 = a0; let mediaIndex = 0; const contentMessage3 = a0.getContentMessage(); const attachments = contentMessage3.attachments; if (attachments != null) { attachments.forEach((a0, index) => { L5: { if (!isThumbnailAttachment(a0)) { if (!isValidImageAttachment(a0) && !isValidVideoAttachment(a0)) { break L5; } const sources = extractMediaFromAttachment(a0, c27068_0, index, c18859_0); if (sources != null) { c18859_1.push({ type: SearchMediaTypes.ATTACHMENT, attachment: a0, messageId: c27068_0.id, channelId: c27068_0.channel_id, author: c27068_0.author, mediaIndex, sources }); mediaIndex = mediaIndex + 1; } } } }); } const embeds = contentMessage3.embeds; if (embeds != null) { embeds.forEach((a0, index) => { if (!(!isValidImageEmbed(a0) && !isValidVideoEmbed(a0))) { const sources = extractMediaFromEmbed(a0, c27068_0, contentMessage3, index, c18859_0); if (sources != null) { c18859_1.push({ type: SearchMediaTypes.EMBED, embed: a0, messageId: c27068_0.id, channelId: c27068_0.channel_id, author: c27068_0.author, mediaIndex, sources }); mediaIndex = mediaIndex + 1; } } }); } for (const item of extractMediaFromMessageComponents(a0, contentMessage3, c18859_0)) { c18859_1.push({ type: SearchMediaTypes.COMPONENT, messageId: a0.id, channelId: a0.channel_id, author: a0.author, mediaIndex, sources: item.sources, unfurledMediaItem: item.unfurledMediaItem }); mediaIndex = mediaIndex + 1; } if (_Module1384.hasFlag(contentMessage3.flags, MessageFlags.IS_VOICE_MESSAGE)) { c18859_1.push({ type: SearchMediaTypes.AUDIO, messageId: a0.id, channelId: a0.channel_id, author: a0.author, mediaIndex }); mediaIndex = mediaIndex + 1; } }); return r12; } export function getFiles(a0) { let c18860_0 = a0; const r1 = []; let c18860_1 = r1; const contentMessage = a0.getContentMessage(); const attachments = contentMessage.attachments; if (attachments != null) { attachments.forEach((a0, index) => { L6: { if (!isValidImageAttachment(a0) && !isValidVideoAttachment(a0)) { const hasFlag = _Module1384.hasFlag(contentMessage.flags, MessageFlags.IS_VOICE_MESSAGE); const r26 = { type: null, messageId: null, channelId: null, author: null, fileIndex: null, attachment: null }; if (hasFlag) { r26.type = SearchFileTypes.AUDIO; r26.messageId = c18860_0.id; r26.channelId = c18860_0.channel_id; r26.author = c18860_0.author; r26.fileIndex = index; r26.attachment = a0; c18860_1.push(r26); break L6; } r26.type = SearchFileTypes.ATTACHMENT; r26.messageId = c18860_0.id; r26.channelId = c18860_0.channel_id; r26.author = c18860_0.author; r26.fileIndex = index; r26.attachment = a0; c18860_1.push(r26); } else { c18860_1.push({ type: SearchFileTypes.MEDIA_ATTACHMENT, messageId: c18860_0.id, channelId: c18860_0.channel_id, author: c18860_0.author, fileIndex: index, attachment: a0 }); } } }); } return r1; } export function getLinks(a0, a1) { let r12 = getGuildIdFromSearchContext(a0); if (r12 == null) { r12 = void 0; } let c18861_1 = r12; const r13 = []; let c18861_2 = r13; const contentMessage2 = a1.getContentMessage(); const linkIndex = 0; const embeds = contentMessage2.embeds; if (embeds != null) { embeds.forEach((a0, index) => { if (!(!isValidImageEmbed(a0) && !isValidVideoEmbed(a0))) { const sources = extractMediaFromEmbed(a0, a1, contentMessage2, index, c18861_1); if (sources != null) { c18861_2.push({ type: SearchLinkTypes.EMBED, messageId: a1.id, channelId: a1.channel_id, author: a1.author, linkIndex, sources, embed: a0 }); linkIndex = linkIndex + 1; } } }); } if (r13.length === 0) { r13.push({ type: SearchLinkTypes.TEXT, messageId: a1.id, channelId: a1.channel_id, author: a1.author, linkIndex: 0 }); } return r13; } export { getGridItemBorderStyles };