347 lines
12 KiB
TypeScript
347 lines
12 KiB
TypeScript
// 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;
|