Files
discord-decomp/sources/stores/PresenceStore.tsx
T
2026-07-27 16:20:00 +03:00

1035 lines
43 KiB
TypeScript

/* Metro module 4396; source: stores/PresenceStore.tsx; dependencies: [6, 7, 15, 17, 18, 1226, 1878, 661, 4397, 22, 644, 21, 566, 694, 2] */
function _fun37253(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#37253, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6, offset: 0x0109fabd, size: 681 bytes, params: 8, frame: 21
const _arrayLikeToArray_37259 = function(a0, a1) {
var r0;
var r1;
var r2;
var value3;
var length;
var value5;
var value = undefined;
var value2 = value == null;
reducibleJoin2: while (true) {
if (value2) {
r0 = value2;
break reducibleJoin2;
}
value3 = value > a0.length;
r0 = value3;
break reducibleJoin2;
}
reducibleJoin4: while (true) {
if (r0) {
length = a0.length;
r1 = length;
break reducibleJoin4;
}
r1 = value;
break reducibleJoin4;
}
value = (0, global.Array)(r1);
var value4 = 0;
if (value4 < r1) {
r2 = value4;
reducibleLoop5: while (true) {
value[r2] = a0[r2];
value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value5 < r1) {
r2 = value5;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
return value;
};
const closure = sortActivity;
const dedupeHiddenActivities = function(a0) {
var r5;
if (a0.length === 0) {
return a0;
}
var items = [];
arraySpread(items, a0, 0, r5);
var value = items.reverse();
var Map = global.Map;
var value2 = value.map(_fun37271);
var value3 = Object.create(Map.prototype, {constructor: {value: Map}});
var value4 = new Map(value2);
var value6 = (value4 instanceof Object ? value4 : value3).values();
items = [];
arraySpread(items, value6, 0, value);
return items;
};
let Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importDefault(6) /* metro dependency 6 */;
const env0_3 = importDefault(7) /* metro dependency 7 */;
const env0_4 = importDefault(15) /* metro dependency 15 */;
const env0_5 = importDefault(17) /* metro dependency 17 */;
const env0_6 = importDefault(18) /* metro dependency 18 */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
let value = require(661) /* metro dependency 661: Constants */;
const env0_9 = value.StatusTypes;
const env0_10 = value.ActivityTypes;
const env0_11 = value.ClientTypes;
const env0_12 = value.ME;
const env0_13 = value.UserFlags;
Object = global.Object;
const env0_14 = Object.freeze([]);
let env0_15 = {};
let env0_16 = {};
let env0_17 = {};
const env0_18 = {};
let env0_19 = {};
const env0_20 = {};
let env0_21 = {};
const typeScore = function({type}) {
if (ActivityTypes.CUSTOM_STATUS === type) {
return 4;
}
if (ActivityTypes.COMPETING === type) {
return 3;
}
if (ActivityTypes.STREAMING === type) {
return 2;
}
if (ActivityTypes.PLAYING === type) {
return 1;
}
return 0;
};
const Store = (importDefault(566) /* metro dependency 566: flux */).Store;
_fun37280(Store).displayName = 'PresenceStore';
value = new value(importDefault(694) /* metro dependency 694: Dispatcher */, {CONNECTION_OPEN: function() {
return true;
}, CONNECTION_OPEN_SUPPLEMENTAL: CONNECTION_OPEN_SUPPLEMENTAL_37301, OVERLAY_INITIALIZE: function({presences}) {
env0_15 = presences.presencesForGuilds;
env0_16 = presences.statuses;
env0_17 = presences.activities;
env0_19 = presences.hiddenActivities;
env0_21 = presences.activityMetadata;
}, GUILD_CREATE: function({guild}) {
var env0_0 = guild;
guild = guild.presences;
guild.forEach(_fun37307);
}, GUILD_DELETE: function({guild}) {
clearPresences(guild.id);
}, GUILD_MEMBER_REMOVE: function({guildId, user}) {
return clearPresence(guildId, user.id);
}, PRESENCE_UPDATES: function({updates}) {
return updates.map(_fun37311).some(_fun37312);
}, PRESENCES_REPLACE: function({presences}) {
clearPresences(ME);
presences.forEach(_fun37314);
}, ACTIVITY_METADATA_UPDATE: ACTIVITY_METADATA_UPDATE, THREAD_MEMBER_LIST_UPDATE: function({guildId, members}) {
members.forEach(_fun37317);
}, THREAD_MEMBERS_UPDATE: function({guildId, addedMembers}) {
if (addedMembers != null) {
addedMembers.forEach(_fun37319);
}
}, SELF_PRESENCE_STORE_UPDATE: SELF_PRESENCE_STORE_UPDATE});
(require(2) /* metro dependency 2 */).fileFinishedImporting('stores/PresenceStore.tsx');
exports.default = value;
exports.sortActivity = closure;
}
function _isNativeReflectConstruct_37254() { // fn#37254, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:252, offset: 0x0109fd66, size: 94 bytes, params: 1, frame: 18
var Boolean;
var prototype;
var valueOf;
var call;
var Reflect;
var construct;
var closure;
var value;
var error;
try {
Boolean = global.Boolean;
prototype = Boolean.prototype;
valueOf = prototype.valueOf;
call = valueOf.call;
Reflect = global.Reflect;
construct = Reflect.construct;
Boolean = global.Boolean;
closure = function() {
};
value = Reflect.apply(construct, Reflect, [Boolean, [], closure]);
value = Reflect.apply(call, valueOf, [value]);
var result = !value;
} catch (error) {
}
return (_isNativeReflectConstruct_37254_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _createForOfIteratorHelperLoose_37257(a0, a1) { // fn#37257, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:445, offset: 0x0109fdc4, size: 370 bytes, params: 3, frame: 20
var r6;
var r9;
var r5;
var value3;
var regexp;
const env0_0 = a0;
const Symbol = global.Symbol;
let value = typeof Symbol !== 'undefined';
let r1 = value && a0[global.Symbol.iterator];
r1 = !r1 ? a0['@@iterator'] : r1;
if (r1) {
value = r1.call(a0);
return value.next.bind(value);
}
const Array = global.Array;
if (Array.isArray(a0)) {
if (r1) {
}
return _fun37258;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_37259(a0, value);
r5 = value;
} else {
value3 = ({}).toString.call(a0).slice(8, -1);
r6 = value3 === 'Object' && a0.constructor;
r9 = r6 ? a0.constructor.name : value3;
if (r9 === 'Map') {
r6 = global.Array.from(a0);
} else if (r9 === 'Set') {
r6 = global.Array.from(a0);
} else if (r9 === 'Arguments') {
value = _arrayLikeToArray_37259(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_37259(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun37258;
}
const TypeError = global.TypeError;
throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');
}
function getPresence(a0, a1) { // fn#37260, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:1414, offset: 0x0109ff36, size: 32 bytes, params: 3, frame: 3
const property = env0_15[a0];
const value = null;
return value != property ? property[a1] : value;
}
function sortActivity(a0, a1) { // fn#37261, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:1670, offset: 0x0109ff56, size: 105 bytes, params: 3, frame: 15
var r1;
var created_at;
var value;
let r0 = typeScore(a1) - typeScore(a0) || richnessScore(a1) - richnessScore(a0);
if (!r0) {
created_at = a1.created_at;
value = 0;
r1 = created_at ?? value;
created_at = a0.created_at;
value = r1 - (created_at ?? value);
r0 = value;
}
return r0;
}
function filterPlayingActivities(a0) { // fn#37262, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:1978, offset: 0x0109ffbf, size: 199 bytes, params: 2, frame: 21
var r10;
var r5;
var value4;
var type;
var PLAYING;
var value5;
if (a0.length === 0) {
return a0;
}
const items5 = [];
const items2 = [];
const value2 = _createForOfIteratorHelperLoose_37257(a0);
const value3 = value2();
let done = value3.done;
if (!done) {
r5 = value3;
while (true) {
value4 = r5.value;
type = value4.type;
PLAYING = ActivityTypes.PLAYING;
if (type === PLAYING) {
items2.push(value4);
} else {
items5.push(value4);
}
value5 = value2();
done = value5.done;
if (done) {
r10 = type;
break;
}
r5 = value5;
continue;
}
}
if (items2.length <= 1) {
return a0;
}
const items3 = [];
arraySpread(items3, items2, 0, r10);
const sort = items3.sort;
const sortActivityBinding = sortActivity;
const property = Reflect.apply(sort, items3, [sortActivityBinding])[0];
const items4 = [];
const value = arraySpread(items4, items5, 0, r10);
items4[value] = property;
value + 1;
return items4.sort(sortActivityBinding);
}
function setActivitiesForUser(a0, a1) { // fn#37263, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:2258, offset: 0x010a0086, size: 38 bytes, params: 3, frame: 13
env0_17[a0] = a1;
env0_18[a0] = filterPlayingActivities(a1);
}
function flattenPresence(a0) { // fn#37264, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:2332, offset: 0x010a00ac, size: 405 bytes, params: 2, frame: 22
var value2;
var value3;
var defaultImport;
var binding;
var dedupeHiddenActivitiesBinding;
var value4;
var value;
delete env0_16[a0];
delete env0_17[a0];
delete env0_18[a0];
delete env0_19[a0];
delete env0_20[a0];
if (env0_15[a0] != null) {
value2 = global.Object.values(env0_15[a0]);
value3 = value2.reduce(function(a0, a1) {
var value = a0;
var value2 = a1;
var processedAtTimestamp = value2.processedAtTimestamp;
var processedAtTimestamp2 = value.processedAtTimestamp;
var value3 = 0;
return processedAtTimestamp > processedAtTimestamp2 ? value2 : processedAtTimestamp !== processedAtTimestamp2 ? value : (value2.activities != null ? value2.activities.length : value3) > (value.activities != null ? value.activities.length : value3) ? value2 : value;
}, value2[0]);
if (value3.status !== StatusTypes.OFFLINE) {
binding = env0_16;
binding[a0] = value3.status;
setActivitiesForUser(a0, value3.activities);
binding = env0_19;
dedupeHiddenActivitiesBinding = dedupeHiddenActivities;
value4 = global.Object.values(value2);
binding[a0] = dedupeHiddenActivitiesBinding(value4.flatMap(_fun37266));
if (value3.clientStatus != null) {
env0_20[a0] = value3.clientStatus;
}
} else if (value3.hiddenActivities == null) {
defaultImport = importDefault(22) /* metro dependency 22 */;
if (defaultImport.every(env0_15[a0], _fun37267)) {
delete env0_15[a0];
} else if (value2.some(_fun37268)) {
binding = env0_19;
dedupeHiddenActivitiesBinding = dedupeHiddenActivities;
value = global.Object.values(value2);
binding[a0] = dedupeHiddenActivitiesBinding(value.flatMap(_fun37269));
}
} else if (value3.hiddenActivities.length > 0) {
binding = env0_16;
binding[a0] = value3.status;
setActivitiesForUser(a0, value3.activities);
binding = env0_19;
dedupeHiddenActivitiesBinding = dedupeHiddenActivities;
value4 = global.Object.values(value2);
binding[a0] = dedupeHiddenActivitiesBinding(value4.flatMap(_fun37266));
if (value3.clientStatus != null) {
env0_20[a0] = value3.clientStatus;
}
} else {
defaultImport = importDefault(22) /* metro dependency 22 */;
if (defaultImport.every(env0_15[a0], _fun37267)) {
delete env0_15[a0];
} else if (value2.some(_fun37268)) {
binding = env0_19;
dedupeHiddenActivitiesBinding = dedupeHiddenActivities;
value = global.Object.values(value2);
binding[a0] = dedupeHiddenActivitiesBinding(value.flatMap(_fun37269));
}
}
}
}
function dedupeHiddenActivities(a0) { // fn#37270, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3290, offset: 0x010a031b, size: 109 bytes, params: 2, frame: 16
if (a0.length === 0) {
return a0;
}
let items2 = [];
arraySpread(items2, a0, 0, undefined);
const value = items2.reverse();
const Map = global.Map;
let map = value.map;
const value2 = Reflect.apply(map, value, [function(a0) {
return ['' + a0.application_id + ':' + a0.party?.id, a0];
}]);
const value3 = Object.create(Map.prototype, {constructor: {value: Map}});
map = new Map(value2);
const value5 = (map instanceof Object ? map : value3).values();
items2 = [];
arraySpread(items2, value5, 0, value);
return items2;
}
function flattenPresenceInConnectionOpen(a0) { // fn#37272, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3487, offset: 0x010a03d1, size: 207 bytes, params: 2, frame: 18
var defaultImport;
var value3;
var binding;
const property = env0_15[a0];
if (property != null) {
defaultImport = importDefault(22) /* metro dependency 22 */;
value3 = defaultImport.maxBy(global.Object.values(property), function(a0) {
return a0.processedAtTimestamp;
});
if (value3.status !== StatusTypes.OFFLINE) {
binding = env0_16;
binding[a0] = value3.status;
setActivitiesForUser(a0, value3.activities);
binding = env0_19;
binding[a0] = value3.hiddenActivities ?? [];
if (value3.clientStatus != null) {
env0_20[a0] = value3.clientStatus;
}
} else if (value3.hiddenActivities != null) {
if (value3.hiddenActivities.length > 0) {
binding = env0_16;
binding[a0] = value3.status;
setActivitiesForUser(a0, value3.activities);
binding = env0_19;
binding[a0] = value3.hiddenActivities ?? [];
if (value3.clientStatus != null) {
env0_20[a0] = value3.clientStatus;
}
}
}
}
}
function updatePresence({guildId, userId, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37274, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3836, offset: 0x010a04ab, size: 366 bytes, params: 2, frame: 25
var r3;
var r11;
var object;
var value6;
const getId = AuthenticationStore.getId;
if (userId === Reflect.apply(getId, AuthenticationStore, [])) {
return false;
}
const OFFLINE = StatusTypes.OFFLINE;
const r1 = status === OFFLINE && (hiddenActivities == null || hiddenActivities.length === 0);
let property = env0_15[userId];
if (property != null) {
r3 = property;
if (r1) {
r3[guildId] = {status: status, clientStatus: clientStatus, activities: env0_14, hiddenActivities: env0_14,
processedAtTimestamp: processedAtTimestamp};
} else {
if (activities.length > 1) {
object = [];
arraySpread(object, activities, 0, undefined);
r11 = object.sort(sortActivity);
} else {
r11 = activities;
}
value6 = dedupeHiddenActivities(hiddenActivities ?? []);
property = r3[guildId];
r3[guildId] = {status: status, clientStatus: clientStatus,
activities: property == null ? r11 : (importDefault(644) /* metro dependency 644 */)(property.activities,
r11) ? property.activities : r11, hiddenActivities: value6, processedAtTimestamp: processedAtTimestamp};
}
delete env0_21[userId];
flattenPresence(userId);
} else {
if (r1) {
return false;
}
var binding = env0_15;
object = {};
binding[userId] = object;
r3 = object;
if (r1) {
r3[guildId] = {status: status, clientStatus: clientStatus, activities: env0_14, hiddenActivities: env0_14,
processedAtTimestamp: processedAtTimestamp};
} else {
if (activities.length > 1) {
object = [];
arraySpread(object, activities, 0, undefined);
r11 = object.sort(sortActivity);
} else {
r11 = activities;
}
value6 = dedupeHiddenActivities(hiddenActivities ?? []);
property = r3[guildId];
r3[guildId] = {status: status, clientStatus: clientStatus,
activities: property == null ? r11 : (importDefault(644) /* metro dependency 644 */)(property.activities,
r11) ? property.activities : r11, hiddenActivities: value6, processedAtTimestamp: processedAtTimestamp};
}
delete env0_21[userId];
flattenPresence(userId);
}
return true;
}
function updatePresenceInConnectionOpen({guildId, userId, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37275, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:4440, offset: 0x010a0619, size: 285 bytes, params: 2, frame: 23
var r7;
var r1;
var r8;
var object;
const getId = AuthenticationStore.getId;
if (userId !== Reflect.apply(getId, AuthenticationStore, [])) {
var OFFLINE = StatusTypes.OFFLINE;
r7 = status === OFFLINE && (hiddenActivities == null || hiddenActivities.length === 0);
var property = env0_15[userId];
if (property != null) {
r1 = property;
if (r7) {
r1[guildId] = {status: status, clientStatus: clientStatus, activities: env0_14,
hiddenActivities: env0_14,
processedAtTimestamp: processedAtTimestamp};
} else {
if (activities.length > 1) {
object = [];
arraySpread(object, activities, 0, userId);
r8 = object.sort(sortActivity);
} else {
r8 = activities;
}
object = {status: status, clientStatus: clientStatus, activities: r8,
hiddenActivities: dedupeHiddenActivities(hiddenActivities ?? []),
processedAtTimestamp: processedAtTimestamp};
r1[guildId] = object;
}
return undefined;
}
if (r7) {
return undefined;
}
var binding = env0_15;
object = {};
binding[userId] = object;
r1 = object;
if (r7) {
r1[guildId] = {status: status, clientStatus: clientStatus, activities: env0_14, hiddenActivities: env0_14,
processedAtTimestamp: processedAtTimestamp};
} else {
if (activities.length > 1) {
object = [];
arraySpread(object, activities, 0, userId);
r8 = object.sort(sortActivity);
} else {
r8 = activities;
}
object = {status: status, clientStatus: clientStatus, activities: r8,
hiddenActivities: dedupeHiddenActivities(hiddenActivities ?? []),
processedAtTimestamp: processedAtTimestamp};
r1[guildId] = object;
}
}
}
function clearPresence(a0, a1) { // fn#37276, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:4953, offset: 0x010a0736, size: 111 bytes, params: 3, frame: 14
const getId = AuthenticationStore.getId;
if (a1 === Reflect.apply(getId, AuthenticationStore, [])) {
return false;
}
const property = env0_15[a1];
if (property == null) {
return false;
}
if (property[a0] == null) {
return false;
}
delete property[a0];
const Object = global.Object;
if (Object.keys(property).length === 0) {
delete env0_15[a1];
}
flattenPresence(a1);
}
function clearPresences(a0) { // fn#37277, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:5120, offset: 0x010a07a5, size: 95 bytes, params: 2, frame: 16
var r2;
var clearPresenceBinding;
var value4;
var value5;
const _createForOfIteratorHelperLoose_37257Binding = _createForOfIteratorHelperLoose_37257;
const defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
const value2 = _createForOfIteratorHelperLoose_37257Binding(defaultImport.keys(env0_15));
const value3 = value2();
let done = value3.done;
if (!done) {
for (r2 = value3; true; r2 = value5) {
clearPresenceBinding = clearPresence;
value4 = r2.value;
clearPresenceBinding(a0, value4);
value5 = value2();
done = value5.done;
if (done) {
break;
}
}
}
}
function richnessScore(a0) { // fn#37279, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:1652, offset: 0x010a085f, size: 43 bytes, params: 2, frame: 11
let value = importDefault(4397) /* metro dependency 4397: hasRichActivity */;
value = value(a0);
return value ? 1 : 0;
}
function _fun37280(a0) { // fn#37280, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:5257, offset: 0x010a088a, size: 423 bytes, params: 2, frame: 16
const closure = PresenceStore;
env0_6(closure, a0);
return env0_3(closure, [{key: 'initialize', value: function() {
this.waitFor(AuthenticationStore, UserStore);
}}, {key: 'setCurrentUserOnConnectionOpen', value: value_37283}, {key: 'getStatus', value: value_37284},
{key: 'getActivities', value: value_37285}, {key: 'getUnfilteredActivities', value: value_37286},
{key: 'getHiddenActivities', value: value_37287}, {key: 'getPrimaryActivity', value: function(a0) {
var value = a1;
value = this.getActivities(a0, value !== undefined ? value : null);
value = value.filter(_fun37289);
return value[0];
}}, {key: 'getAllApplicationActivities', value: value_37290}, {key: 'getApplicationActivity', value: function(a0,
a1) {
var value = a2;
var env0_0 = a1;
return this.findActivity(a0, _fun37292, value !== undefined ? value : null, true);
}}, {key: 'findActivity', value: function(a0, a1) {
var r5;
var r1;
var r2;
var value = a2;
var value2 = a3;
r5 = value !== undefined ? value : null;
r1 = value2 !== undefined ? value2 : false;
var r0 = r1 != null && r1;
value = this.getActivities(a0, r5);
if (r0) {
value = value.concat(this.getHiddenActivities(a0, r5));
r2 = value;
} else {
r2 = value;
}
return r2.find(a1);
}}, {key: 'getActivityMetadata', value: value_37294}, {key: 'getUserIds', value: value_37295},
{key: 'isMobileOnline', value: value_37296}, {key: 'isVROnline', value: value_37297}, {key: 'getClientStatus',
value: value_37298}, {key: 'getState', value: value_37299}]);
}
function CONNECTION_OPEN_SUPPLEMENTAL_37301({guilds, presences}) { // fn#37301, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7895, offset: 0x010a0f4e, size: 225 bytes, params: 2, frame: 16
const id = AuthenticationStore.getId();
env0_15 = {};
env0_21 = {};
({})[id] = env0_16[id];
({})[id] = env0_17[id];
({})[id] = env0_18[id];
({})[id] = env0_19[id];
({})[id] = {};
const Set = global.Set;
const set = new Set();
guilds.forEach(function(a0) {
var env0_0 = a0;
a0.presences.forEach(_fun37303);
});
presences.forEach(_fun37304);
set.delete(id);
set.forEach(flattenPresenceInConnectionOpen);
}
function GUILD_CREATE_37306({guild}) { // fn#37306, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:8842, offset: 0x010a118f, size: 39 bytes, params: 2, frame: 11
guild.presences.forEach(function({user, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) {
updatePresence({guildId: guild.id, userId: user.id, status: status, clientStatus: clientStatus,
activities: activities, hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp});
});
}
function PRESENCE_UPDATES({updates}) { // fn#37310, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:9312, offset: 0x010a125e, size: 44 bytes, params: 2, frame: 12
return updates.map(function({guildId, user, status, clientStatus, activities, hiddenActivities,
processedAtTimestamp}) {
return updatePresence({guildId: guildId ?? ME, userId: user.id, status: status, clientStatus: clientStatus,
activities: activities, hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp});
}).some(function(a0) {
return a0;
});
}
function PRESENCES_REPLACE({presences}) { // fn#37313, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:9634, offset: 0x010a12f5, size: 46 bytes, params: 2, frame: 12
clearPresences(ME);
presences.forEach(_fun37314);
}
function ACTIVITY_METADATA_UPDATE({userId, metadata}) { // fn#37315, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:9958, offset: 0x010a138b, size: 29 bytes, params: 2, frame: 3
env0_21[userId] = metadata;
return false;
}
function THREAD_MEMBER_LIST_UPDATE_37316({guildId, members}) { // fn#37316, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:10063, offset: 0x010a13a8, size: 39 bytes, params: 2, frame: 11
members.forEach(_fun37317);
}
function THREAD_MEMBERS_UPDATE_37318({guildId, addedMembers}) { // fn#37318, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:10421, offset: 0x010a145a, size: 45 bytes, params: 2, frame: 11
if (addedMembers != null) {
addedMembers.forEach(_fun37319);
}
}
function SELF_PRESENCE_STORE_UPDATE(a0) { // fn#37320, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:10794, offset: 0x010a1511, size: 182 bytes, params: 2, frame: 18
var activities;
var hiddenActivities;
var binding;
var setActivitiesForUserBinding;
var items2;
var sort;
var sortActivityBinding;
const id = AuthenticationStore.getId();
let property = env0_16[id];
if (property !== a0.status) {
binding = env0_16;
binding[id] = a0.status;
setActivitiesForUserBinding = setActivitiesForUser;
activities = a0.activities;
items2 = [];
arraySpread(items2, activities, 0, undefined);
sort = items2.sort;
sortActivityBinding = sortActivity;
setActivitiesForUserBinding(id, Reflect.apply(sort, items2, [sortActivityBinding]));
binding = env0_19;
hiddenActivities = a0.hiddenActivities;
items2 = [];
arraySpread(items2, hiddenActivities, 0, undefined);
sort = items2.sort;
binding[id] = Reflect.apply(sort, items2, [sortActivityBinding]);
delete env0_21[id];
} else {
property = env0_17[id];
activities = a0.activities;
if (property !== activities) {
binding = env0_16;
binding[id] = a0.status;
setActivitiesForUserBinding = setActivitiesForUser;
activities = a0.activities;
items2 = [];
arraySpread(items2, activities, 0, undefined);
sort = items2.sort;
sortActivityBinding = sortActivity;
setActivitiesForUserBinding(id, Reflect.apply(sort, items2, [sortActivityBinding]));
binding = env0_19;
hiddenActivities = a0.hiddenActivities;
items2 = [];
arraySpread(items2, hiddenActivities, 0, undefined);
sort = items2.sort;
binding[id] = Reflect.apply(sort, items2, [sortActivityBinding]);
delete env0_21[id];
return undefined;
}
property = env0_19[id];
hiddenActivities = a0.hiddenActivities;
if (property === hiddenActivities) {
return false;
}
binding = env0_16;
binding[id] = a0.status;
setActivitiesForUserBinding = setActivitiesForUser;
activities = a0.activities;
items2 = [];
arraySpread(items2, activities, 0, undefined);
sort = items2.sort;
sortActivityBinding = sortActivity;
setActivitiesForUserBinding(id, Reflect.apply(sort, items2, [sortActivityBinding]));
binding = env0_19;
hiddenActivities = a0.hiddenActivities;
items2 = [];
arraySpread(items2, hiddenActivities, 0, undefined);
sort = items2.sort;
binding[id] = Reflect.apply(sort, items2, [sortActivityBinding]);
delete env0_21[id];
}
}
function _fun37266({hiddenActivities}) { // fn#37266, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:2880, offset: 0x010a02a0, size: 21 bytes, params: 2, frame: 2
return hiddenActivities ?? [];
}
function _fun37267(a0) { // fn#37267, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3007, offset: 0x010a02b5, size: 65 bytes, params: 2, frame: 4
const status = a0.status;
const value = environment.__proto__;
const OFFLINE = StatusTypes.OFFLINE;
return status === OFFLINE && (a0.hiddenActivities == null || a0.hiddenActivities.length === 0);
}
function _fun37268(a0) { // fn#37268, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3117, offset: 0x010a02f6, size: 37 bytes, params: 2, frame: 3
return a0.hiddenActivities != null && a0.hiddenActivities.length > 0;
}
function value_37283(a0, a1) { // fn#37283, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:5627, offset: 0x010a0aa2, size: 87 bytes, params: 3, frame: 16
const value = environment.__proto__;
env1_16[AuthenticationStore.getId()] = a0;
const setActivitiesForUserBinding = setActivitiesForUser;
const id = AuthenticationStore.getId();
const items2 = [];
arraySpread(items2, a1, 0, undefined);
setActivitiesForUserBinding(id, items2.sort(sortActivity));
}
function value_37284(a0) { // fn#37284, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:5739, offset: 0x010a0af9, size: 152 bytes, params: 2, frame: 19
let value = a1;
const value2 = a2;
const value3 = undefined;
const r6 = value !== value3 ? value : null;
let r0 = value2 !== value3 ? value2 : StatusTypes.OFFLINE;
value = environment.__proto__;
const user = UserStore.getUser(a0);
r0 = user != null && user.hasFlag(UserFlags.BOT_HTTP_INTERACTIONS) ? StatusTypes.UNKNOWN : r0;
if (r6 == null) {
r0 = env1_16[a0] ?? r0;
return r0;
}
value = getPresence(a0, r6);
return (value == null ? value3 : value.status) ?? r0;
}
function value_37285(a0) { // fn#37285, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:5986, offset: 0x010a0b91, size: 91 bytes, params: 2, frame: 15
let value = a1;
const r4 = value !== undefined ? value : null;
if (r4 == null) {
value = environment.__proto__;
return env1_18[a0] ?? env1_14;
}
value = environment.__proto__;
const presence = getPresence(a0, r4);
return presence == null || presence.activities == null ? env1_14 : filterPlayingActivities(presence.activities);
}
function value_37286(a0) { // fn#37286, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6185, offset: 0x010a0bec, size: 82 bytes, params: 2, frame: 15
let value = a1;
const r5 = value !== undefined ? value : null;
if (r5 == null) {
value = environment.__proto__;
return env1_17[a0] ?? env1_14;
}
value = environment.__proto__;
const presence = getPresence(a0, r5);
return presence == null || presence.activities == null ? env1_14 : presence.activities;
}
function value_37287(a0) { // fn#37287, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6355, offset: 0x010a0c3e, size: 82 bytes, params: 2, frame: 15
var r0;
var presence;
let value = a1;
const value2 = undefined;
const r5 = value !== value2 ? value : null;
if (r5 == null) {
value = environment.__proto__;
r0 = env1_19[a0] ?? env1_14;
} else {
value = environment.__proto__;
presence = getPresence(a0, r5);
r0 = (presence == null ? value2 : presence.hiddenActivities) ?? env1_14;
}
return r0;
}
function value_37288(a0) { // fn#37288, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6519, offset: 0x010a0c90, size: 54 bytes, params: 2, frame: 13
let value = a1;
value = this.getActivities(a0, value !== undefined ? value : null);
value = value.filter(function({type}) {
return type !== ActivityTypes.HANG_STATUS;
});
return value[0];
}
function value_37290(a0) { // fn#37290, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6651, offset: 0x010a0ce1, size: 177 bytes, params: 2, frame: 22
var r3;
var r8;
var value4;
var value5;
var value6;
var value7;
var application_id;
var value8;
var value9;
const items2 = [];
const _createForOfIteratorHelperLoose_37257Binding = _createForOfIteratorHelperLoose_37257;
const defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
const value2 = _createForOfIteratorHelperLoose_37257Binding(defaultImport.keys(env1_18));
const value3 = value2();
let done = value3.done;
if (!done) {
r3 = value3;
while (true) {
value4 = r3.value;
value5 = _createForOfIteratorHelperLoose_37257(env1_18[value4]);
value6 = value5();
done = value6.done;
if (!done) {
r8 = value6;
while (true) {
value7 = r8.value;
application_id = value7.application_id;
if (application_id === a0) {
items2.push({userId: value4, activity: value7});
}
value8 = value5();
done = value8.done;
if (done) {
break;
}
r8 = value8;
continue;
}
}
value9 = value2();
done = value9.done;
if (done) {
break;
}
r3 = value9;
continue;
}
}
return items2;
}
function value_37291(a0, a1) { // fn#37291, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6934, offset: 0x010a0d92, size: 51 bytes, params: 3, frame: 17
const value = a2;
const env0_0 = a1;
return this.findActivity(a0, function({application_id}) {
return application_id === require;
}, value !== undefined ? value : null, true);
}
function value_37295() { // fn#37295, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7260, offset: 0x010a0e23, size: 41 bytes, params: 1, frame: 12
return (importDefault(21) /* metro dependency 21: SnowflakeUtils */).keys(env1_17);
}
function value_37296(a0) { // fn#37296, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7325, offset: 0x010a0e4c, size: 115 bytes, params: 2, frame: 5
const value = environment.__proto__;
const property = env1_20[a0];
return property != null && property[ClientTypes.MOBILE] === StatusTypes.ONLINE && property[ClientTypes.DESKTOP] !== StatusTypes.ONLINE && property[ClientTypes.VR] !== StatusTypes.ONLINE;
}
function value_37297(a0) { // fn#37297, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7458, offset: 0x010a0ebf, size: 53 bytes, params: 2, frame: 4
const value = environment.__proto__;
const property = env1_20[a0];
return property != null && property[ClientTypes.VR] === StatusTypes.ONLINE;
}
function value_37299() { // fn#37299, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7595, offset: 0x010a0f04, size: 74 bytes, params: 1, frame: 3
return {presencesForGuilds: env1_15, statuses: env1_16, activities: env1_17, filteredActivities: env1_18,
hiddenActivities: env1_19, activityMetadata: env1_21, clientStatuses: env1_20};
}
function _fun37302(a0) { // fn#37302, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:8075, offset: 0x010a102f, size: 34 bytes, params: 2, frame: 11
const env0_0 = a0;
a0.presences.forEach(_fun37303);
}
function _fun37304({user, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37304, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:8359, offset: 0x010a10cf, size: 126 bytes, params: 2, frame: 17
var value;
var updatePresenceInConnectionOpenBinding;
var id;
var binding;
var add;
if (user != null) {
value = environment.__proto__;
updatePresenceInConnectionOpenBinding = updatePresenceInConnectionOpen;
id = user.id;
updatePresenceInConnectionOpenBinding({guildId: ME, userId: id, status: status, clientStatus: clientStatus,
activities: activities, hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp});
binding = env0_0;
add = binding.add;
id = user.id;
Reflect.apply(add, binding, [id]);
}
}
function _fun37314({user, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37314, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:9709, offset: 0x010a1323, size: 104 bytes, params: 2, frame: 17
var value;
if (user != null) {
value = environment.__proto__;
updatePresence({guildId: ME, userId: user.id, status: status, clientStatus: clientStatus,
activities: activities,
hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp});
}
}
function _fun37317(a0) { // fn#37317, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:10135, offset: 0x010a13cf, size: 139 bytes, params: 2, frame: 12
var value;
var updatePresenceBinding;
var object2;
let presence = a0.presence;
if (presence != null) {
value = environment.__proto__;
updatePresenceBinding = updatePresence;
object2 = {};
object2.guildId = guildId;
object2.userId = a0.user_id;
presence = a0.presence;
object2.status = presence.status;
presence = a0.presence;
object2.clientStatus = presence.clientStatus;
presence = a0.presence;
object2.activities = presence.activities;
presence = a0.presence;
object2.hiddenActivities = presence.hiddenActivities;
presence = a0.presence;
object2.processedAtTimestamp = presence.processedAtTimestamp;
updatePresenceBinding(object2);
}
}
function _fun37319(a0) { // fn#37319, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:10504, offset: 0x010a1487, size: 138 bytes, params: 2, frame: 12
var value;
var updatePresenceBinding;
var object2;
let presence = a0.presence;
if (presence != null) {
value = environment.__proto__;
updatePresenceBinding = updatePresence;
object2 = {};
object2.guildId = guildId;
object2.userId = a0.userId;
presence = a0.presence;
object2.status = presence.status;
presence = a0.presence;
object2.clientStatus = presence.clientStatus;
presence = a0.presence;
object2.activities = presence.activities;
presence = a0.presence;
object2.hiddenActivities = presence.hiddenActivities;
presence = a0.presence;
object2.processedAtTimestamp = presence.processedAtTimestamp;
updatePresenceBinding(object2);
}
}
function _fun37303({user, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37303, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:8100, offset: 0x010a1051, size: 126 bytes, params: 2, frame: 17
updatePresenceInConnectionOpen({guildId: env0_0.id, userId: user.id, status: status, clientStatus: clientStatus,
activities: activities, hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp});
const binding = env1_0;
binding.add(user.id);
}