/* Metro module 6946; source: utils/GuildDiscoveryUtils.tsx; dependencies: [5, 3785, 4111, 1867, 661, 1230, 6947, 6837, 6593, 6912, 6914, 683, 507, 1468, 2] */ function _fun55237(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#55237, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:6, offset: 0x01379581, size: 502 bytes, params: 8, frame: 20 const env0_0 = require; const closure = makeDiscoverableGuild; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(5) /* metro dependency 5 */; const lurkingStore = importDefault(3785) /* metro dependency 3785: LurkingStore */; const guildMemberCountStore = importDefault(4111) /* metro dependency 4111: GuildMemberCountStore */; const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */; const constantsModule = require(661) /* metro dependency 661: Constants */; const env0_7 = constantsModule.AnalyticEvents; const env0_8 = constantsModule.SearchTypes; const env0_9 = constantsModule.Endpoints; const env0_10 = constantsModule.Routes; (require(2) /* metro dependency 2 */).fileFinishedImporting('utils/GuildDiscoveryUtils.tsx'); exports.AnalyticsContexts = {SEARCH: 'Search', RECOMMENDED: 'Recommended', POPULAR: 'Popular', RECOMMENDED_E3: 'Recommended - E3', HEADER: 'Header', GLOBAL_DISCOVERY: 'Global Discovery', FORWARD_BREADCRUMB: 'Forward Breadcrumb'}; exports.IOS_MINIMUM_MEMBER_COUNT = '>1000'; exports.MINIMUM_MEMBER_COUNT = '>200'; exports.startLurking = function() { return _startLurking.apply(this, arguments); }; exports.makeDiscoverableGuild = closure; exports.trackDiscoveryExited = trackDiscoveryExited; exports.trackSearchClosed = function(a0) { var defaultImport = importDefault(dependencyMap[11]); var SEARCH_CLOSED = AnalyticEvents.SEARCH_CLOSED; defaultImport.track(SEARCH_CLOSED, {load_id: a0}); }; exports.trackSearchStarted = trackSearchStarted; exports.trackGuildDiscoverySearchStart = function({withCounts, offset}) { var defaultImport = importDefault(dependencyMap[11]); var GUILD_DISCOVERY_SEARCH_START = AnalyticEvents.GUILD_DISCOVERY_SEARCH_START; defaultImport.track(GUILD_DISCOVERY_SEARCH_START, {with_counts: withCounts, offset: offset}); }; exports.trackSearchFailed = function({categoryId, error, willRequestRetry, isRequestRetry}) { var defaultImport = importDefault(dependencyMap[11]); var GUILD_DISCOVERY_SEARCH_FAILED = AnalyticEvents.GUILD_DISCOVERY_SEARCH_FAILED; defaultImport.track(GUILD_DISCOVERY_SEARCH_FAILED, {category_id: categoryId, request_status: error.status, request_error_code: error.code, will_request_retry: willRequestRetry, is_request_retry: isRequestRetry}); }; exports.trackGuildDiscoveryGetFeaturedGuildsFailed = function({categoryId}) { var defaultImport = importDefault(dependencyMap[11]); var GUILD_DISCOVERY_GET_FEATURED_GUILDS_FAILED = AnalyticEvents.GUILD_DISCOVERY_GET_FEATURED_GUILDS_FAILED; defaultImport.track(GUILD_DISCOVERY_GET_FEATURED_GUILDS_FAILED, {category_id: categoryId}); }; exports.trackSearchResultsViewed = trackSearchResultsViewed; exports.trackGuildJoinClicked = function(a0) { var value2 = LurkingStore.getLoadId(a0); var defaultImport = importDefault(dependencyMap[11]); var GUILD_DISCOVERY_GUILD_JOIN_CLICKED = AnalyticEvents.GUILD_DISCOVERY_GUILD_JOIN_CLICKED; var object = {guild_id: a0, load_id: value2}; object.guild_size = GuildMemberCountStore.getMemberCount(a0); defaultImport.track(GUILD_DISCOVERY_GUILD_JOIN_CLICKED, object); }; exports.getDiscoverableGuild = function() { return _getDiscoverableGuild.apply(this, arguments); }; exports.fetchPublicDiscoveryGuild = function() { return _fetchPublicDiscoveryGuild.apply(this, arguments); }; } function _startLurking() { // fn#55238, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:436, offset: 0x01379777, size: 48 bytes, params: 1, frame: 14 return env0_3(_fun55240).apply(this, arguments); } function makeDiscoverableGuild({id, name, description, splash, banner, icon, features, approximate_presence_count, approximate_member_count, premium_subscription_count, preferred_locale, discovery_splash, emojis, emoji_count, stickers, sticker_count, keywords}) { // fn#55241, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:1477, offset: 0x01379ad2, size: 218 bytes, params: 2, frame: 13 const object2 = {}; object2.id = id; object2.name = name; object2.description = description; object2.splash = splash; object2.banner = banner; object2.icon = icon; const Set = global.Set; object2.features = new Set(features); object2.presenceCount = approximate_presence_count; object2.memberCount = approximate_member_count; object2.premiumSubscriptionCount = premium_subscription_count; object2.preferredLocale = preferred_locale; object2.discoverySplash = discovery_splash; object2.emojis = emojis; object2.emojiCount = emoji_count; object2.stickers = stickers; object2.stickerCount = sticker_count; object2.keywords = keywords; return object2; } function _getDiscoverableGuild() { // fn#55242, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:1954, offset: 0x01379bac, size: 48 bytes, params: 1, frame: 14 return env0_3(_fun55244).apply(this, arguments); } function _fetchPublicDiscoveryGuild() { // fn#55245, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:2308, offset: 0x01379cc3, size: 48 bytes, params: 1, frame: 14 return env0_3(_fun55247).apply(this, arguments); } function trackDiscoveryExited(a0, a1) { // fn#55249, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:2973, offset: 0x01379dd4, size: 84 bytes, params: 3, frame: 16 const value = a2; const r5 = value !== undefined ? value : null; const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; const track = defaultImport.track; const GUILD_DISCOVERY_EXITED = AnalyticEvents.GUILD_DISCOVERY_EXITED; Reflect.apply(track, defaultImport, [GUILD_DISCOVERY_EXITED, {load_id: a0, guild_ids_viewed: a1, recommendations_source: r5}]); } function trackSearchStarted(a0, a1) { // fn#55251, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:3231, offset: 0x01379e62, size: 99 bytes, params: 3, frame: 16 const value = a2; const r5 = value !== undefined ? value : {}; const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; const track = defaultImport.track; const SEARCH_STARTED = AnalyticEvents.SEARCH_STARTED; const GUILD_DISCOVERY = SearchTypes.GUILD_DISCOVERY; Reflect.apply(track, defaultImport, [SEARCH_STARTED, {search_type: GUILD_DISCOVERY, load_id: a0, location: r5.location, category_id: a1}]); } function trackSearchResultsViewed({loadId, searchId, query, guildResults, analyticsContext, categoryId, isTagSearch}) { // fn#55255, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:4034, offset: 0x01379fcb, size: 202 bytes, params: 2, frame: 23 const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; const track = defaultImport.track; const SEARCH_RESULT_VIEWED = AnalyticEvents.SEARCH_RESULT_VIEWED; const object2 = {}; object2.search_type = isTagSearch ? SearchTypes.GUILD_DISCOVERY_TAG : SearchTypes.GUILD_DISCOVERY; object2.load_id = loadId; object2.search_id = searchId; const value = guildResults !== undefined; object2.total_results = value ? guildResults.length : null; object2.guild_ids = value ? guildResults.map(function(a0) { return a0.id; }) : null; object2.query = query; object2.location = analyticsContext.location; object2.category_id = categoryId; Reflect.apply(track, defaultImport, [SEARCH_RESULT_VIEWED, object2]); } async function _fun55240(a0, a1) { // fn#55240, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:485, offset: 0x013797b9, size: 793 bytes, params: 3, frame: 31 var r16; var value9; var value11; var transitionToGuildSync; var object2; var object3; var value16; var object7; let value = a2; if (false) { return undefined; } const value4 = undefined; const r6 = value !== value4 ? value : {}; await value4; if (false) { return undefined; } const channelId = r6.channelId; const onSuccess = r6.onSuccess; const joinSource = r6.joinSource; const loadId = r6.loadId; const shouldNavigate = r6.shouldNavigate; const r9 = value4 === shouldNavigate || shouldNavigate; value = environment.__proto__.__proto__; let binding = env2_0; const history = binding(env2_2[5]).getHistory(); const guild = env2_6.getGuild(a0); const object8 = {sourceLocationStack: a3}; object8.state = {analyticsSource: a1}; if (guild == null) { if (guild == null) { r16 = a3 == null ? value4 : a3[a3.length - 1]; r16 = r16 ?? (a1 == null ? value4 : a1.page); binding = env2_0; value9 = binding(env2_2[9]); if (value9.getMobileLurkerServerPreview('startLurking').enabled) { env2_0(env2_2[10]).trackLurkStarted(a0, joinSource, r16); } binding = env2_1; value11 = binding(env2_2[8]); await value11.joinGuild(a0, {lurker: true, source: joinSource, loadId: loadId, lurkLocation: r16}); if (false) { return undefined; } if (r9) { value = env2_1(env2_2[8]); transitionToGuildSync = value.transitionToGuildSync; object2 = {}; copyDataProperties(object2, object8, undefined); object2['welcomeModalChannelId'] = channelId; object2['navigationReplace'] = channelId != null; object2['openChannel'] = channelId != null; object2['search'] = history.location.search; await Reflect.apply(transitionToGuildSync, value, [a0, object2, channelId, r6.messageId]); value = undefined; if (false) { return value; } if (onSuccess != null) { onSuccess(); } return value4; } if (onSuccess != null) { onSuccess(); } return value4; } binding = env2_4; if (binding.isLurking(a0)) { if (r9) { value = env2_1(env2_2[8]); transitionToGuildSync = value.transitionToGuildSync; object3 = {}; copyDataProperties(object3, object8, undefined); object3['welcomeModalChannelId'] = channelId; object3['navigationReplace'] = channelId != null; object3['openChannel'] = channelId != null; object3['search'] = history.location.search; await Reflect.apply(transitionToGuildSync, value, [a0, object3, channelId, r6.messageId]); value = undefined; if (false) { return value; } if (onSuccess != null) { onSuccess(); } return value4; } if (onSuccess != null) { onSuccess(); } return value4; } r16 = a3 == null ? value4 : a3[a3.length - 1]; r16 = r16 ?? (a1 == null ? value4 : a1.page); binding = env2_0; value9 = binding(env2_2[9]); if (value9.getMobileLurkerServerPreview('startLurking').enabled) { env2_0(env2_2[10]).trackLurkStarted(a0, joinSource, r16); } binding = env2_1; value11 = binding(env2_2[8]); } else { if (guild.joinedAt != null) { if (r9) { if (channelId == null) { env2_0(env2_2[6]).transitionToGuild(a0, object8); } else { binding = env2_1; value16 = binding(env2_2[7]); binding = env2_10; value = binding.CHANNEL(a0, channelId, r6.messageId); object7 = {}; copyDataProperties(object7, object8, undefined); object7['navigationReplace'] = true; object7['openChannel'] = true; value16(value, object7); } } if (onSuccess != null) { onSuccess(); } return value4; } if (guild == null) { r16 = a3 == null ? value4 : a3[a3.length - 1]; r16 = r16 ?? (a1 == null ? value4 : a1.page); binding = env2_0; value9 = binding(env2_2[9]); if (value9.getMobileLurkerServerPreview('startLurking').enabled) { env2_0(env2_2[10]).trackLurkStarted(a0, joinSource, r16); } binding = env2_1; value11 = binding(env2_2[8]); await value11.joinGuild(a0, {lurker: true, source: joinSource, loadId: loadId, lurkLocation: r16}); if (false) { return undefined; } if (r9) { value = env2_1(env2_2[8]); transitionToGuildSync = value.transitionToGuildSync; object2 = {}; copyDataProperties(object2, object8, undefined); object2['welcomeModalChannelId'] = channelId; object2['navigationReplace'] = channelId != null; object2['openChannel'] = channelId != null; object2['search'] = history.location.search; await Reflect.apply(transitionToGuildSync, value, [a0, object2, channelId, r6.messageId]); value = undefined; if (false) { return value; } if (onSuccess != null) { onSuccess(); } return value4; } if (onSuccess != null) { onSuccess(); } return value4; } binding = env2_4; if (binding.isLurking(a0)) { if (r9) { value = env2_1(env2_2[8]); transitionToGuildSync = value.transitionToGuildSync; object3 = {}; copyDataProperties(object3, object8, undefined); object3['welcomeModalChannelId'] = channelId; object3['navigationReplace'] = channelId != null; object3['openChannel'] = channelId != null; object3['search'] = history.location.search; await Reflect.apply(transitionToGuildSync, value, [a0, object3, channelId, r6.messageId]); value = undefined; if (false) { return value; } if (onSuccess != null) { onSuccess(); } return value4; } if (onSuccess != null) { onSuccess(); } return value4; } r16 = a3 == null ? value4 : a3[a3.length - 1]; r16 = r16 ?? (a1 == null ? value4 : a1.page); value9 = env2_0(env2_2[9]); if (value9.getMobileLurkerServerPreview('startLurking').enabled) { env2_0(env2_2[10]).trackLurkStarted(a0, joinSource, r16); } value11 = env2_1(env2_2[8]); } await value11.joinGuild(a0, {lurker: true, source: joinSource, loadId: loadId, lurkLocation: r16}); if (false) { return undefined; } if (r9) { value = env2_1(env2_2[8]); transitionToGuildSync = value.transitionToGuildSync; object2 = {}; copyDataProperties(object2, object8, undefined); object2['welcomeModalChannelId'] = channelId; object2['navigationReplace'] = channelId != null; object2['openChannel'] = channelId != null; object2['search'] = history.location.search; await Reflect.apply(transitionToGuildSync, value, [a0, object2, channelId, r6.messageId]); value = undefined; if (false) { return value; } } if (onSuccess != null) { onSuccess(); } return value4; } function* _fun55244(a0) { // fn#55244, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:2019, offset: 0x01379be5, size: 222 bytes, params: 2, frame: 20 var r4; var r2; var binding; var binding2; var property; var value4; var HTTP; var get; var object3; var GUILD_DISCOVERY; var value5; var stringify; var object4; var value6; var value7; var value8; var value9; var body; var value10; var guilds; var value11; var value12; var error; if (false) { return undefined; } value = undefined; try { binding = env2_0; } catch (error) { return null; } try { binding2 = env2_2; } catch (error) { return null; } try { property = binding2[12]; } catch (error) { return null; } try { value4 = binding(property); } catch (error) { return null; } try { HTTP = value4.HTTP; } catch (error) { return null; } try { get = HTTP.get; } catch (error) { return null; } try { object3 = {}; } catch (error) { return null; } try { binding = env2_9; } catch (error) { return null; } try { GUILD_DISCOVERY = binding.GUILD_DISCOVERY; } catch (error) { return null; } try { object3.url = GUILD_DISCOVERY; } catch (error) { return null; } try { binding = env2_1; } catch (error) { return null; } try { property = binding2[13]; } catch (error) { return null; } try { value5 = binding(property); } catch (error) { return null; } try { stringify = value5.stringify; } catch (error) { return null; } try { object4 = {}; } catch (error) { return null; } try { object4.guild_ids = a0; } catch (error) { return null; } try { value6 = Reflect.apply(stringify, value5, [object4]); } catch (error) { return null; } try { object3.query = value6; } catch (error) { return null; } try { object3.oldFormErrors = true; } catch (error) { return null; } try { object3.rejectWithError = true; } catch (error) { return null; } try { value7 = Reflect.apply(get, HTTP, [object3]); } catch (error) { return null; } yield value7; try { value8 = undefined; value9 = false; } catch (error) { return null; } if (value9) { return value8; } try { body = value8.body; } catch (error) { return null; } try { value10 = body == null; } catch (error) { return null; } if (value10) { r4 = value; } else { try { guilds = body.guilds; } catch (error) { return null; } try { value11 = guilds == null; } catch (error) { return null; } if (value11) { r4 = value; } else { try { property = guilds[0]; } catch (error) { return null; } r4 = property; } } try { value12 = r4 == null; } catch (error) { return null; } if (value12) { r2 = r4; } else { try { binding = env2_12; } catch (error) { return null; } try { value = binding(r4); } catch (error) { return null; } r2 = value; } return r2; } function* _fun55247(a0) { // fn#55247, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:2383, offset: 0x01379cfc, size: 216 bytes, params: 2, frame: 18 var guild; var slug; var r2; var binding; var binding2; var property; var value4; var HTTP; var get; var object2; var GUILD_DISCOVERY_SLUG; var String; var value5; var value6; var value7; var value8; var value9; var body; var value11; var value12; var value13; var error; if (false) { return undefined; } value = undefined; try { binding = env2_0; } catch (error) { return null; } try { binding2 = env2_2; } catch (error) { return null; } try { property = binding2[12]; } catch (error) { return null; } try { value4 = binding(property); } catch (error) { return null; } try { HTTP = value4.HTTP; } catch (error) { return null; } try { get = HTTP.get; } catch (error) { return null; } try { object2 = {'url': null, 'oldFormErrors': true, 'rejectWithError': true}; } catch (error) { return null; } try { binding = env2_9; } catch (error) { return null; } try { GUILD_DISCOVERY_SLUG = binding.GUILD_DISCOVERY_SLUG; } catch (error) { return null; } try { String = global.String; } catch (error) { return null; } try { value5 = String(a0); } catch (error) { return null; } try { value6 = Reflect.apply(GUILD_DISCOVERY_SLUG, binding, [value5]); } catch (error) { return null; } try { object2.url = value6; } catch (error) { return null; } try { value7 = Reflect.apply(get, HTTP, [object2]); } catch (error) { return null; } yield value7; try { value8 = undefined; value9 = false; } catch (error) { return null; } if (value9) { return value8; } try { body = value8.body; } catch (error) { return null; } const value10 = null; try { value11 = value10 == body; } catch (error) { return null; } if (value11) { guild = value; try { value12 = value10 == guild; } catch (error) { return null; } if (value12) { return value10; } try { value13 = value10 == body; } catch (error) { return null; } if (value13) { slug = value; try { value = value10 == slug; } catch (error) { return null; } if (value) { return value10; } try { object2 = {}; } catch (error) { return null; } try { guild = body.guild; } catch (error) { return null; } try { object2.guild = guild; } catch (error) { return null; } try { slug = body.slug; } catch (error) { return null; } try { object2.slug = slug; r2 = object2; } catch (error) { return null; } return r2; } try { slug = body.slug; } catch (error) { return null; } try { value = value10 == slug; } catch (error) { return null; } if (value) { return value10; } try { object2 = {}; } catch (error) { return null; } try { guild = body.guild; } catch (error) { return null; } try { object2.guild = guild; } catch (error) { return null; } try { slug = body.slug; } catch (error) { return null; } try { object2.slug = slug; r2 = object2; } catch (error) { return null; } } else { try { guild = body.guild; } catch (error) { return null; } try { value12 = value10 == guild; } catch (error) { return null; } if (value12) { return value10; } try { value13 = value10 == body; } catch (error) { return null; } if (value13) { slug = value; try { value = value10 == slug; } catch (error) { return null; } if (value) { return value10; } try { object2 = {}; } catch (error) { return null; } try { guild = body.guild; } catch (error) { return null; } try { object2.guild = guild; } catch (error) { return null; } try { slug = body.slug; } catch (error) { return null; } try { object2.slug = slug; r2 = object2; } catch (error) { return null; } return r2; } try { slug = body.slug; } catch (error) { return null; } try { value = value10 == slug; } catch (error) { return null; } if (value) { return value10; } try { object2 = {}; } catch (error) { return null; } try { guild = body.guild; } catch (error) { return null; } try { object2.guild = guild; } catch (error) { return null; } try { slug = body.slug; } catch (error) { return null; } try { object2.slug = slug; r2 = object2; } catch (error) { return null; } } return r2; }