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

4969 lines
211 KiB
TypeScript

/* Metro module 4605; source: stores/ReadStateStore.tsx; dependencies: [15, 17, 18, 5, 57, 6, 7, 1378, 4606, 1936, 4107, 4117, 4621, 4622, 4623, 4790, 3786, 1348, 1383, 1226, 4791, 1379, 4794, 4646, 1867, 4795, 4814, 3784, 3793, 1934, 4864, 1878, 12367, 661, 8044, 1386, 1385, 4865, 1243, 3, 12368, 12369, 21, 672, 694, 4639, 12370, 507, 4041, 9493, 10915, 3792, 12371, 5102, 5214, 12372, 1962, 1391, 3738, 22, 1360, 4819, 4008, 10914, 3791, 1392, 7030, 8876, 566, 2] */
function _fun39147(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#39147, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:6, offset: 0x010d9339, size: 2313 bytes, params: 8, frame: 36
var object2;
var isOverlayChannelVisible;
const env0_0 = require;
const _arrayLikeToArray_39153 = 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 = DECAY_READ_STATES;
const parseTimestamp = function(a0) {
if (a0 == null) {
return 0;
}
var Date = global.Date;
var value = Date.parse(a0);
return (0, global.isNaN)(value) ? 0 : value;
};
const closure2 = shouldBadgeMessage;
const processBulkAckQueue = function() {
return _processBulkAckQueue.apply(this, arguments);
};
const mergeChannels = function(a0) {
a0.forEach(_fun39169);
};
const mergeServerChannels = function(a0) {
a0.forEach(_fun39171);
};
const mergeRelationships = function(a0) {
_fun39178(a0);
};
const closure3 = LOGOUT_39186;
const closure4 = MESSAGE_DELETE;
const closure5 = function({threads}) {
mergeServerChannels(threads);
};
const closure6 = function({data}) {
data.forEach(_fun39191);
};
const closure7 = CHANNEL_DELETE_39195;
const closure8 = MESSAGE_ACK_39199;
const closure9 = function({id, ackType, ackedId, local}) {
return handleNonChannelAck(id, ackType, ackedId, local);
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(15) /* metro dependency 15 */;
const env0_4 = importDefault(17) /* metro dependency 17 */;
const env0_5 = importDefault(18) /* metro dependency 18 */;
const env0_6 = importDefault(5) /* metro dependency 5 */;
const env0_7 = importDefault(57) /* metro dependency 57 */;
const env0_8 = importDefault(6) /* metro dependency 6 */;
const env0_9 = importDefault(7) /* metro dependency 7 */;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const gatedChannelStore = importDefault(1936) /* metro dependency 1936: GatedChannelStore */;
const experimentStore = importDefault(4107) /* metro dependency 4107: ExperimentStore */;
const guildScheduledEventStore = importDefault(4117) /* metro dependency 4117: GuildScheduledEventStore */;
const env0_15 = (require(4117) /* metro dependency 4117: GuildScheduledEventStore */).isEventUpcoming;
const messageRequestStore = importDefault(4621) /* metro dependency 4621: MessageRequestStore */;
const spamMessageRequestStore = importDefault(4622) /* metro dependency 4622: SpamMessageRequestStore */;
const notificationCenterItemsStore = importDefault(4623) /* metro dependency 4623: NotificationCenterItemsStore */;
const activeThreadsStore = importDefault(4790) /* metro dependency 4790: ActiveThreadsStore */;
const joinedThreadsStore = importDefault(3786) /* metro dependency 3786: JoinedThreadsStore */;
const userSettingsProtoStore = importDefault(1348) /* metro dependency 1348: UserSettingsProtoStore */;
let value = require(1383) /* metro dependency 1383: ChannelRecord */;
const env0_22 = value.isReadableType;
const env0_23 = value.isThread;
const env0_24 = value.isPrivate;
const env0_25 = value.ALL_CHANNEL_TYPES;
const env0_26 = value.THREAD_CHANNEL_TYPES;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const channelSectionStore = importDefault(4791) /* metro dependency 4791: ChannelSectionStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const dimensionStore = importDefault(4794) /* metro dependency 4794: DimensionStore */;
const guildAvailabilityStore = importDefault(4646) /* metro dependency 4646: GuildAvailabilityStore */;
const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */;
const idleStore = importDefault(4795) /* metro dependency 4795: IdleStore */;
const messageStore = importDefault(4814) /* metro dependency 4814: MessageStore */;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const relationshipStore = importDefault(3793) /* metro dependency 3793: RelationshipStore */;
value = importDefault(1934) /* metro dependency 1934: SelectedChannelStore */;
const userGuildSettingsStore = importDefault(4864) /* metro dependency 4864: UserGuildSettingsStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const windowStore = importDefault(12367) /* metro dependency 12367: WindowStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_41 = constantsModule.AnalyticsObjectTypes;
const env0_42 = constantsModule.AnalyticsObjects;
const env0_43 = constantsModule.AnalyticsSections;
const env0_44 = constantsModule.Endpoints;
const env0_45 = constantsModule.ChannelLayouts;
constantsModule.OverlayWidgets;
const env0_46 = constantsModule.CURRENT_APP_CONTEXT;
const env0_47 = constantsModule.ChannelTypes;
const BasicPermissions = constantsModule.BasicPermissions;
const env0_49 = constantsModule.Permissions;
const env0_50 = constantsModule.MessageTypes;
const env0_51 = constantsModule.RelationshipTypes;
const env0_52 = constantsModule.ChannelTypesSets;
const env0_53 = constantsModule.UserNotificationSettings;
const env0_54 = constantsModule.MessageTypesSets;
const env0_55 = constantsModule.AppStates;
const activityPanelConstantsModule = require(8044) /* metro dependency 8044: ActivityPanelConstants */;
const env0_56 = activityPanelConstantsModule.ActivityPanelModes;
const env0_57 = activityPanelConstantsModule.FocusedActivityLayouts;
const channelConstantsModule = require(1386) /* metro dependency 1386: ChannelConstants */;
const env0_58 = channelConstantsModule.ChannelFlags;
const env0_59 = channelConstantsModule.isStaticChannelRoute;
const env0_60 = (require(1385) /* metro dependency 1385: GuildScheduledEventsConstants */).GuildScheduledEventStatus;
const env0_61 = (require(4865) /* metro dependency 4865: ReadStateConstants */).ReadStateTypes;
const env0_62 = (require(1243) /* metro dependency 1243: ThreadConstants */).ThreadMemberFlags;
const value7 = new (importDefault(3) /* metro dependency 3: Logger */)('ReadStateStore');
const env0_64 = function() {
return false;
};
if ((require(12368) /* metro dependency 12368: OverlaySupported */).OVERLAY_SUPPORTED) {
isOverlayChannelVisible = (require(12369) /* metro dependency 12369: OverlayVisibilityNative */).isOverlayChannelVisible;
}
const VIEW_CHANNEL = BasicPermissions.VIEW_CHANNEL;
const READ_MESSAGE_HISTORY = BasicPermissions.READ_MESSAGE_HISTORY;
const env0_65 = VIEW_CHANNEL | READ_MESSAGE_HISTORY;
const env0_66 = value.getChannelId();
const env0_70 = [];
value = _fun39203();
value = new value();
const Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const DAY = Millis.DAY;
const env0_74 = 30 * DAY;
object2 = {IS_GUILD_CHANNEL: 1};
object2[1] = 'IS_GUILD_CHANNEL';
object2.IS_THREAD = 2;
object2[2] = 'IS_THREAD';
object2.IS_MENTION_LOW_IMPORTANCE = 4;
object2[4] = 'IS_MENTION_LOW_IMPORTANCE';
value = _fun39213();
value._guildReadStateSentinels = {};
const Map = global.Map;
const value10 = Object.create(Map.prototype, {constructor: {value: Map}});
const map = new Map();
value._readStates = map instanceof Object ? map : value10;
const Set = global.Set;
const value12 = Object.create(Set.prototype, {constructor: {value: Set}});
const set = new Set();
value._mentionChannels = set instanceof Object ? set : value12;
const env0_80 = (require(22) /* metro dependency 22 */).throttle(function(a0) {
a0.delete();
}, 100);
const Store = (importDefault(566) /* metro dependency 566: flux */).Store;
const value15 = _fun39279(Store);
value15.displayName = 'ReadStateStore';
const value18 = new value15(importDefault(694) /* metro dependency 694: Dispatcher */,
{BACKGROUND_SYNC_CHANNEL_MESSAGES: BACKGROUND_SYNC_CHANNEL_MESSAGES, CONNECTION_OPEN: CONNECTION_OPEN_39332,
CONNECTION_OPEN_SUPPLEMENTAL: function({lazyPrivateChannels}) {
mergeChannels(lazyPrivateChannels);
}, LOGOUT: closure3, OVERLAY_INITIALIZE: OVERLAY_INITIALIZE_39336, CACHE_LOADED: function({readStates}) {
env0_69 = true;
DECAY_READ_STATES();
readStates.forEach(_fun39339);
}, GUILD_CREATE: GUILD_CREATE_39340, LOAD_MESSAGES_SUCCESS: LOAD_MESSAGES_SUCCESS_39342,
LOCAL_MESSAGES_LOADED: LOCAL_MESSAGES_LOADED_39344, MESSAGE_CREATE: MESSAGE_CREATE_39345,
MESSAGE_DELETE: closure4, MESSAGE_DELETE_BULK: closure4, MESSAGE_ACK: closure8, CHANNEL_ACK: CHANNEL_ACK_39346,
CHANNEL_LOCAL_ACK: CHANNEL_LOCAL_ACK, CHANNEL_PINS_ACK: CHANNEL_PINS_ACK,
CHANNEL_PINS_UPDATE: CHANNEL_PINS_UPDATE, CHANNEL_SELECT: CHANNEL_SELECT_39350,
OVERLAY_TEXT_CHAT_ACK_CHANNEL: OVERLAY_TEXT_CHAT_ACK_CHANNEL, VOICE_CHANNEL_SELECT: VOICE_CHANNEL_SELECT_39352,
CHANNEL_CREATE: CHANNEL_CREATE_39353, THREAD_CREATE: THREAD_CREATE_39354, THREAD_UPDATE: THREAD_UPDATE,
THREAD_LIST_SYNC: function({threads}) {
threads.forEach(_fun39357);
}, LOAD_THREADS_SUCCESS: closure5, LOAD_ARCHIVED_THREADS_SUCCESS: closure5, SEARCH_MESSAGES_SUCCESS: closure6,
MOD_VIEW_SEARCH_MESSAGES_SUCCESS: closure6, THREAD_MEMBER_UPDATE: THREAD_MEMBER_UPDATE_39358,
THREAD_MEMBERS_UPDATE: THREAD_MEMBERS_UPDATE_39359, CHANNEL_DELETE: closure7, THREAD_DELETE: closure7,
WINDOW_FOCUS: WINDOW_FOCUS, UPDATE_CHANNEL_DIMENSIONS: function({channelId, timestamp}) {
return tryAck({section: AnalyticsSections.CHANNEL, object: AnalyticsObjects.ACK_CHANNEL_SCROLL,
objectType: AnalyticsObjectTypes.ACK_AUTOMATIC}, channelId, timestamp);
}, CURRENT_USER_UPDATE: function() {
env0_68 = null;
}, BULK_ACK: function({channels, context, onFinished}) {
_fun39365(channels.filter(_fun39368), context, onFinished);
}, ENABLE_AUTOMATIC_ACK: function(a0) {
a0.channelId;
a0.windowId;
return false;
}, DISABLE_AUTOMATIC_ACK: function(a0) {
a0.channelId;
a0.windowId;
return false;
}, GUILD_FEATURE_ACK: closure9, GUILD_SCHEDULED_EVENT_CREATE: GUILD_SCHEDULED_EVENT_CREATE_39371,
GUILD_SCHEDULED_EVENT_UPDATE: GUILD_SCHEDULED_EVENT_UPDATE,
GUILD_SCHEDULED_EVENT_DELETE: GUILD_SCHEDULED_EVENT_DELETE_39373, GUILD_DELETE: GUILD_DELETE_39374,
GUILD_UPDATE: GUILD_UPDATE_39375, RESORT_THREADS: function({channelId}) {
return tryAck({section: AnalyticsSections.CHANNEL, object: AnalyticsObjects.ACK_RESORT_THREADS,
objectType: AnalyticsObjectTypes.ACK_AUTOMATIC}, channelId);
}, CHANNEL_RTC_UPDATE_CHAT_OPEN: CHANNEL_RTC_UPDATE_CHAT_OPEN, DECAY_READ_STATES: closure,
NOTIFICATION_CENTER_ITEM_CREATE: NOTIFICATION_CENTER_ITEM_CREATE, RELATIONSHIP_ADD: RELATIONSHIP_ADD_39379,
RELATIONSHIP_REMOVE: RELATIONSHIP_REMOVE_39380, NOTIFICATION_CENTER_ITEMS_ACK: NOTIFICATION_CENTER_ITEMS_ACK,
USER_NON_CHANNEL_ACK: USER_NON_CHANNEL_ACK_39383, PASSIVE_UPDATE_V2: PASSIVE_UPDATE_V2_39384,
CLEAR_OLDEST_UNREAD_MESSAGE: function({channelId}) {
return clearOldestUnreadMessageId(channelId);
}, TRY_ACK: function({channelId, location}) {
return tryAck(location, channelId);
}, MESSAGE_REQUEST_ACK: MESSAGE_REQUEST_ACK, MESSAGE_REQUEST_CLEAR_ACK: MESSAGE_REQUEST_CLEAR_ACK,
APP_STATE_UPDATE: APP_STATE_UPDATE_39389});
(require(2) /* metro dependency 2 */).fileFinishedImporting('stores/ReadStateStore.tsx');
exports.default = value18;
exports.shouldBadgeMessage = closure2;
exports.ReadState = value;
}
function _isNativeReflectConstruct_39148() { // fn#39148, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:1138, offset: 0x010d9c42, 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_39148_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _createForOfIteratorHelperLoose_39151(a0, a1) { // fn#39151, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:1331, offset: 0x010d9ca0, 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 _fun39152;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_39153(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_39153(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_39153(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun39152;
}
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 generateOldThreadCutoff() { // fn#39154, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:3974, offset: 0x010d9e12, size: 63 bytes, params: 1, frame: 13
const defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
const fromTimestamp = defaultImport.fromTimestamp;
const Date = global.Date;
return Reflect.apply(fromTimestamp, defaultImport, [Date.now() - env0_74]);
}
function DECAY_READ_STATES() { // fn#39155, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:4076, offset: 0x010d9e51, size: 188 bytes, params: 1, frame: 18
let Date = global.Date;
let value = Date.now();
let Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
let DAY = Millis.DAY;
env0_75 = value - 7 * DAY;
Date = global.Date;
value = Date.now();
Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
DAY = Millis.DAY;
env0_76 = value - 3 * DAY;
global.clearTimeout(env0_77);
const setTimeout = global.setTimeout;
Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const HOUR = Millis.HOUR;
env0_77 = setTimeout(_fun39156, 1 * HOUR);
}
function shouldBadgeMessage(a0, a1) { // fn#39158, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:4380, offset: 0x010d9f73, size: 188 bytes, params: 3, frame: 18
var r1;
var r0;
var isBlockedOrIgnoredForMessage2;
var defaultImport;
var object2;
var isSuppressEveryoneEnabled;
var guild_id;
var isSuppressRolesEnabled;
var value5;
const channel = ChannelStore.getChannel(a0.channel_id);
const value3 = channel != null;
if (value3) {
isBlockedOrIgnoredForMessage2 = RelationshipStore.isBlockedOrIgnoredForMessage(a0);
if (isBlockedOrIgnoredForMessage2) {
r1 = !isBlockedOrIgnoredForMessage2;
} else {
defaultImport = importDefault(4639) /* metro dependency 4639: isMessageMentioned */;
object2 = {message: a0};
object2.userId = a1.id;
isSuppressEveryoneEnabled = UserGuildSettingsStore.isSuppressEveryoneEnabled;
guild_id = channel.guild_id;
object2.suppressEveryone = Reflect.apply(isSuppressEveryoneEnabled, UserGuildSettingsStore, [guild_id]);
isSuppressRolesEnabled = UserGuildSettingsStore.isSuppressRolesEnabled;
guild_id = channel.guild_id;
object2.suppressRoles = Reflect.apply(isSuppressRolesEnabled, UserGuildSettingsStore, [guild_id]);
value5 = defaultImport(object2);
r1 = value5 ? !!value5 : !!isNonMutedPrivateMessage(channel);
}
r0 = r1;
} else {
r0 = value3;
}
return r0;
}
function isNonMutedPrivateMessage(a0) { // fn#39159, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:4677, offset: 0x010da02f, size: 59 bytes, params: 2, frame: 14
return a0 != null && a0.isPrivate() && !UserGuildSettingsStore.isGuildOrCategoryOrChannelMuted(a0.guild_id, a0.id);
}
function _processBulkAckQueue() { // fn#39161, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:4878, offset: 0x010da088, size: 48 bytes, params: 1, frame: 14
return env0_6(_fun39163).apply(this, arguments);
}
function isOverlayAckable(a0, a1) { // fn#39165, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:5278, offset: 0x010da203, size: 28 bytes, params: 3, frame: 12
return a1 != null && isOverlayChannelVisible(a1);
}
function staffLog(a0, a1) { // fn#39166, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:5352, offset: 0x010da21f, size: 76 bytes, params: 3, frame: 15
var binding;
const currentUser = UserStore.getCurrentUser();
if (currentUser != null && currentUser.hasAnyStaffLevel()) {
binding = env0_63;
binding.log('STAFF-ACK-LOG:', a1, a0.channelId);
}
}
function shouldAutomaticallyAck(a0, a1) { // fn#39167, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:5472, offset: 0x010da26b, size: 764 bytes, params: 3, frame: 19
var r1;
var r6;
var isForumPost;
var isForumPost2;
var getFocusedLayout;
var value6;
var NO_CHAT;
var isForumLikeChannel;
var isForumLikeChannel2;
var value7;
var isForumLikeChannel3;
var isAtBottom;
var getLayout;
var value9;
var getChatOpen;
var FULL_SCREEN;
var getMessages;
var value10;
var ready;
var loadingMore;
var moduleValue;
var isChannelFocusedForReadStateAck;
var isChannelFocusedForReadStateAck2;
let value = environment;
let staffLogBinding = staffLog;
const value2 = undefined;
staffLogBinding(a0, 'shouldAutomaticallyAck called');
const type = a0.type;
const CHANNEL = ReadStateTypes.CHANNEL;
if (type !== CHANNEL) {
staffLog(a0, 'not channel read state');
} else {
var getChannel = ChannelStore.getChannel;
var channelId = a0.channelId;
var value3 = Reflect.apply(getChannel, ChannelStore, [channelId]);
var value4 = value3 != null;
reducibleJoin3: while (true) {
if (value4) {
isForumPost = value3.isForumPost;
isForumPost2 = Reflect.apply(isForumPost, value3, []);
r1 = isForumPost2;
break reducibleJoin3;
}
r1 = value4;
break reducibleJoin3;
}
var getConnectedActivityLocation = EmbeddedActivitiesStore.getConnectedActivityLocation;
if (Reflect.apply(getConnectedActivityLocation, EmbeddedActivitiesStore, []) != null) {
reducibleJoin6: while (true) {
if (EmbeddedActivitiesStore.getActivityPanelMode() !== ActivityPanelModes.PANEL) {
break reducibleJoin6;
}
getFocusedLayout = EmbeddedActivitiesStore.getFocusedLayout;
value6 = Reflect.apply(getFocusedLayout, EmbeddedActivitiesStore, []);
NO_CHAT = FocusedActivityLayouts.NO_CHAT;
if (value6 === NO_CHAT) {
staffLog(a0, 'In activity');
return false;
}
break reducibleJoin6;
}
}
if (IdleStore.isIdle()) {
staffLog(a0, 'Is idle');
return false;
}
if (a0.canTrackUnreads()) {
reducibleJoin11: while (true) {
if (value3 == null) {
r6 = value2;
break reducibleJoin11;
}
isForumLikeChannel = value3.isForumLikeChannel;
isForumLikeChannel2 = Reflect.apply(isForumLikeChannel, value3, []);
r6 = isForumLikeChannel2;
break reducibleJoin11;
}
value7 = true;
if (value7 !== r6) {
reducibleJoin13: while (true) {
if ((importDefault(9493) /* metro dependency 9493: DiscordAppStateNative */).getState() !== AppStates.ACTIVE) {
staffLog(a0, 'App not active');
return false;
}
break reducibleJoin13;
}
}
if (r1) {
reducibleJoin16: while (true) {
if (!a0._persisted) {
staffLog(a0, 'unpersisted forum post');
return value7;
}
break reducibleJoin16;
}
}
if (a0.hasUnreadOrMentions()) {
reducibleJoin20: while (true) {
if (value3 == null) {
r6 = value2;
break reducibleJoin20;
}
isForumLikeChannel = value3.isForumLikeChannel;
isForumLikeChannel3 = Reflect.apply(isForumLikeChannel, value3, []);
r6 = isForumLikeChannel3;
break reducibleJoin20;
}
if (value7 === r6) {
staffLog(a0, 'Forum-like channel');
return false;
}
if (r1) {
reducibleJoin23: while (true) {
if (!a0._isJoinedThread) {
getLayout = ChannelRTCStore.getLayout;
channelId = a0.channelId;
value9 = Reflect.apply(getLayout, ChannelRTCStore, [channelId]);
getChatOpen = ChannelRTCStore.getChatOpen;
channelId = a0.channelId;
if (!Reflect.apply(getChatOpen, ChannelRTCStore, [channelId])) {
NO_CHAT = ChannelLayouts.NO_CHAT;
reducibleJoin29: while (true) {
reducibleJoin28: while (true) {
if (value9 === NO_CHAT) {
break reducibleJoin28;
}
FULL_SCREEN = ChannelLayouts.FULL_SCREEN;
if (value9 !== FULL_SCREEN) {
break reducibleJoin29;
}
break reducibleJoin28;
}
staffLog(a0, 'Fullscreen video');
return false;
}
}
getMessages = MessageStore.getMessages;
channelId = a0.channelId;
value10 = Reflect.apply(getMessages, MessageStore, [channelId]);
reducibleJoin37: while (true) {
reducibleJoin36: while (true) {
if (value10 == null) {
break reducibleJoin36;
}
ready = value10.ready;
if (ready) {
loadingMore = value10.loadingMore;
if (loadingMore) {
break reducibleJoin36;
}
moduleValue = require(10915) /* metro dependency 10915: isChannelFocusedNative */;
isChannelFocusedForReadStateAck = moduleValue.isChannelFocusedForReadStateAck;
channelId = a0.channelId;
isChannelFocusedForReadStateAck2 = Reflect.apply(isChannelFocusedForReadStateAck,
moduleValue,
[channelId,
a1]);
staffLogBinding = staffLog;
if (isChannelFocusedForReadStateAck2) {
staffLogBinding(a0, 'Acked');
r1 = value7;
} else {
staffLogBinding(a0, 'Chat not focused');
value = false;
r1 = value;
}
break reducibleJoin37;
}
break reducibleJoin36;
}
staffLog(a0, 'Still loading messages');
value = false;
r1 = value;
break reducibleJoin37;
}
return r1;
}
break reducibleJoin23;
}
}
isAtBottom = DimensionStore.isAtBottom;
channelId = a0.channelId;
if (Reflect.apply(isAtBottom, DimensionStore, [channelId])) {
getLayout = ChannelRTCStore.getLayout;
channelId = a0.channelId;
value9 = Reflect.apply(getLayout, ChannelRTCStore, [channelId]);
getChatOpen = ChannelRTCStore.getChatOpen;
channelId = a0.channelId;
if (!Reflect.apply(getChatOpen, ChannelRTCStore, [channelId])) {
reducibleJoin29: while (true) {
reducibleJoin28: while (true) {
if (value9 === ChannelLayouts.NO_CHAT) {
break reducibleJoin28;
}
FULL_SCREEN = ChannelLayouts.FULL_SCREEN;
if (value9 !== FULL_SCREEN) {
break reducibleJoin29;
}
break reducibleJoin28;
}
staffLog(a0, 'Fullscreen video');
return false;
}
}
getMessages = MessageStore.getMessages;
channelId = a0.channelId;
value10 = Reflect.apply(getMessages, MessageStore, [channelId]);
reducibleJoin37: while (true) {
reducibleJoin36: while (true) {
if (value10 == null) {
break reducibleJoin36;
}
ready = value10.ready;
if (ready) {
loadingMore = value10.loadingMore;
if (loadingMore) {
break reducibleJoin36;
}
moduleValue = require(10915) /* metro dependency 10915: isChannelFocusedNative */;
isChannelFocusedForReadStateAck = moduleValue.isChannelFocusedForReadStateAck;
channelId = a0.channelId;
isChannelFocusedForReadStateAck2 = Reflect.apply(isChannelFocusedForReadStateAck,
moduleValue,
[channelId,
a1]);
staffLogBinding = staffLog;
if (isChannelFocusedForReadStateAck2) {
staffLogBinding(a0, 'Acked');
r1 = value7;
} else {
staffLogBinding(a0, 'Chat not focused');
value = false;
r1 = value;
}
break reducibleJoin37;
}
break reducibleJoin36;
}
staffLog(a0, 'Still loading messages');
value = false;
r1 = value;
break reducibleJoin37;
}
return r1;
}
staffLog(a0, 'Not at bottom');
return false;
}
staffLog(a0, 'No unread or mentions');
return false;
}
staffLog(a0, 'Cannot track unreads');
}
return false;
}
function mergeChannels(a0) { // fn#39168, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:23586, offset: 0x010da567, size: 24 bytes, params: 2, frame: 11
a0.forEach(_fun39169);
}
function mergeServerChannels(a0) { // fn#39170, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:23871, offset: 0x010da617, size: 24 bytes, params: 2, frame: 11
a0.forEach(_fun39171);
}
function mergeForGuild(a0) { // fn#39172, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:24176, offset: 0x010da6e4, size: 253 bytes, params: 2, frame: 19
var latestOnboardingQuestionId;
var value7;
const value = undefined;
((a0) => {
var env0_0 = a0;
var threads = a0.threads;
if (threads != null) {
threads.forEach(_fun39174);
}
})(a0);
mergeGuildEvents(a0);
let binding = env0_79;
let get = binding.get;
let id = a0.id;
const GUILD_HOME = ReadStateTypes.GUILD_HOME;
const value3 = Reflect.apply(get, binding, [id, GUILD_HOME]);
const defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
const fromTimestamp = defaultImport.fromTimestamp;
const defaultImport2 = importDefault(3738) /* metro dependency 3738 */;
const Date = global.Date;
const value5 = defaultImport2(Date.now()).subtract(24, 'h');
value3.lastMessageId = Reflect.apply(fromTimestamp, defaultImport, [value5.valueOf()]);
const guild = GuildStore.getGuild(a0.id);
if (guild != null) {
latestOnboardingQuestionId = guild == null ? value : guild.latestOnboardingQuestionId;
if (latestOnboardingQuestionId != null) {
binding = env0_79;
get = binding.get;
id = guild.id;
value7 = Reflect.apply(get, binding, [id, ReadStateTypes.GUILD_ONBOARDING_QUESTION]);
id = guild.id;
value7._guildId = id;
value7.lastMessageId = latestOnboardingQuestionId;
}
}
return value;
}
function mergeRelationships(a0) { // fn#39177, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:25485, offset: 0x010daa55, size: 19 bytes, params: 2, frame: 11
mergeNotificationCenter(a0);
}
function getThreadAckMessageTimestamp(a0, a1) { // fn#39180, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:25876, offset: 0x010dab9a, size: 395 bytes, params: 3, frame: 20
var r4;
var r1;
var r6;
var r3;
var Date;
var value8;
var date;
let value = a0;
const channel = ChannelStore.getChannel(a1);
value = GuildStore.getGuild(value ?? channel?.guild_id);
if (channel == null) {
value = getGuildJoinedAtTime(value);
r4 = value;
} else if (channel.isForumPost()) {
r4 = 0;
} else {
value = getGuildJoinedAtTime(value);
r4 = value;
}
value = JoinedThreadsStore.joinTimestamp(a1);
const value5 = undefined;
if (value == null) {
r1 = value5;
} else {
value = value.getTime();
r1 = value;
}
value = 0;
let r8 = r1 ?? value;
const value6 = r8 - 5000;
const r9 = global.isNaN(value6) ? -5000 : value6;
const archiveTimestamp = channel == null || channel.threadMetadata == null ? value5 : channel.threadMetadata.archiveTimestamp;
if (archiveTimestamp != null) {
Date = global.Date;
value8 = Object.create(Date.prototype, {constructor: {value: Date}});
date = new Date(archiveTimestamp);
r6 = (date instanceof Object ? date : value8).getTime() - 1;
} else {
r6 = value;
}
r8 = global.isNaN(r6) ? value : r6;
const Math = global.Math;
const value12 = Math.max(r9, r8);
r3 = global.isNaN(value12 <= value ? (importDefault(21) /* metro dependency 21: SnowflakeUtils */).extractTimestamp(a1) - 1 : value12) || r3 <= value ? value : r3;
return global.isNaN(r4) ? r3 : global.Math.max(r4, r3);
}
function getGuildJoinedAtTime(a0) { // fn#39181, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:26376, offset: 0x010dad25, size: 217 bytes, params: 2, frame: 14
var date;
if (a0 == null) {
return global.Date.now();
}
let joinedAt = a0.joinedAt;
if (joinedAt == null) {
return global.Date.now();
}
joinedAt = a0.joinedAt;
const Date = global.Date;
let value = joinedAt instanceof Date;
if (value) {
value = a0.joinedAt.getTime();
if (global.isNaN(value)) {
return global.Date.now();
}
return value;
}
if (typeof joinedAt === 'string') {
date = new global.Date(a0.joinedAt);
date = date.getTime();
if (global.isNaN(date)) {
return global.Date.now();
}
return date;
}
if (typeof a0.joinedAt !== 'number') {
return global.Date.now();
}
if (global.isNaN(a0.joinedAt)) {
return global.Date.now();
}
return a0.joinedAt;
}
function isOldReadState(a0, a1) { // fn#39182, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:26706, offset: 0x010dadfe, size: 199 bytes, params: 3, frame: 22
var r3;
var r2;
var r1;
var r0;
var defaultImport;
var value2;
var value4;
var defaultImport2;
var value7;
let value = a0.mentionCount > 0;
if (value) {
r0 = value;
} else {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value2 = defaultImport.compare(a0.channelId, a1) > 0;
if (value2) {
r1 = !value2;
} else {
value4 = a0._ackMessageId != null;
if (value4) {
defaultImport2 = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
r3 = defaultImport2.compare(a0._ackMessageId, a1) > 0;
} else {
r3 = value4;
}
if (r3) {
r2 = !r3;
} else {
value7 = a0._lastMessageId != null;
if (value7) {
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.compare(a0._lastMessageId, a1) > 0;
r3 = value;
} else {
r3 = value7;
}
value = !r3;
r2 = value;
}
r1 = r2;
}
r0 = r1;
}
return r0;
}
function tryAck(a0, a1, a2) { // fn#39183, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:26931, offset: 0x010daec5, size: 83 bytes, params: 4, frame: 14
if (a1 == null) {
return false;
}
const value2 = env0_79.get(a1);
const shouldAutomaticallyAck2 = shouldAutomaticallyAck(value2, a2);
return shouldAutomaticallyAck2 ? value2.ack({trackAnalytics: true, location: a0}) : !!shouldAutomaticallyAck2;
}
function tryAckParentForumChannel(a0) { // fn#39184, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:27065, offset: 0x010daf18, size: 302 bytes, params: 2, frame: 19
var r0;
var value2;
var value3;
var parent_id;
var value4;
var hasLoaded2;
var defaultImport;
if (a0 != null) {
value2 = env0_79.get(a0);
if (value2.type === ReadStateTypes.CHANNEL) {
value3 = ChannelStore.getChannel(value2.channelId);
if (value3 != null) {
if (value3.isForumPost()) {
parent_id = value3.parent_id;
if (parent_id != null) {
parent_id = value3.parent_id;
value4 = env0_79.get(parent_id);
hasLoaded2 = ActiveThreadsStore.hasLoaded(value3.guild_id);
if (hasLoaded2) {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
r0 = defaultImport.keys(ActiveThreadsStore.getThreadsForParent(value3.guild_id,
parent_id)).every(_fun39185);
} else {
r0 = hasLoaded2;
}
if (r0) {
value4.ack({trackAnalytics: true, location: {section: AnalyticsSections.CHANNEL,
object: AnalyticsObjects.ACK_FORUM_CHANNEL_NO_UNREAD_POSTS,
objectType: AnalyticsObjectTypes.ACK_AUTOMATIC}});
}
}
}
}
}
}
}
function LOGOUT_39186() { // fn#39186, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:27542, offset: 0x010db095, size: 36 bytes, params: 1, frame: 11
if (env0_72 != null) {
global.clearTimeout(env0_72);
}
}
function mergeChannelTimestampUpdates(a0) { // fn#39187, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:27741, offset: 0x010db0b9, size: 125 bytes, params: 2, frame: 17
var r2;
var value4;
var binding;
var get;
var id;
var value5;
var last_message_id;
var last_pin_timestamp;
var parseTimestampBinding;
var value6;
const value2 = _createForOfIteratorHelperLoose_39151(a0);
const value3 = value2();
let done = value3.done;
if (!done) {
r2 = value3;
while (true) {
value4 = r2.value;
binding = env0_79;
get = binding.get;
id = value4.id;
value5 = Reflect.apply(get, binding, [id]);
last_message_id = value4.last_message_id;
if (last_message_id != null) {
last_message_id = value4.last_message_id;
value5.lastMessageId = last_message_id;
}
last_pin_timestamp = value4.last_pin_timestamp;
if (last_pin_timestamp == null) {
continue;
}
parseTimestampBinding = parseTimestamp;
last_pin_timestamp = value4.last_pin_timestamp;
value5.lastPinTimestamp = parseTimestampBinding(last_pin_timestamp);
value6 = value2();
done = value6.done;
if (done) {
break;
}
r2 = value6;
continue;
}
}
}
function MESSAGE_DELETE({channelId}) { // fn#39188, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:28022, offset: 0x010db136, size: 39 bytes, params: 2, frame: 11
env0_79.get(channelId).rebuildChannelState();
}
function MOD_VIEW_SEARCH_MESSAGES_SUCCESS_39190({data}) { // fn#39190, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:28176, offset: 0x010db176, size: 29 bytes, params: 2, frame: 11
data.forEach(function({messages, threads}) {
messages.forEach(_fun39192);
mergeServerChannels(threads);
});
}
function currentUserIsEventCreator(a0) { // fn#39194, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:28382, offset: 0x010db216, size: 58 bytes, params: 2, frame: 12
const currentUser = UserStore.getCurrentUser();
return a0.creator_id != null && currentUser != null && a0.creator_id === currentUser.id;
}
function CHANNEL_DELETE_39195({channel}) { // fn#39195, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:28501, offset: 0x010db250, size: 33 bytes, params: 2, frame: 11
const binding = env0_79;
return binding.clear(channel.id);
}
function handleChannelSectionStoreUpdate() { // fn#39196, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:28565, offset: 0x010db271, size: 117 bytes, params: 1, frame: 15
const currentSidebarChannelId = ChannelSectionStore.getCurrentSidebarChannelId(env0_66);
return env0_67 !== currentSidebarChannelId ? clearOldestUnreadMessageId(env0_67) : tryAck({section: AnalyticsSections.CHANNEL,
object: AnalyticsObjects.ACK_CHANNEL_SECTION_STORE_UPDATE, objectType: AnalyticsObjectTypes.ACK_AUTOMATIC},
currentSidebarChannelId) || false;
}
function clearManualAck(a0) { // fn#39197, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:28812, offset: 0x010db2e6, size: 38 bytes, params: 2, frame: 11
if (a0 != null) {
env0_79.get(a0).isManualAck = false;
}
}
function clearOldestUnreadMessageId(a0) { // fn#39198, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:28875, offset: 0x010db30c, size: 56 bytes, params: 2, frame: 12
var r0;
if (a0 == null) {
return false;
}
var value;
const hasUnread2 = env0_79.get(a0).hasUnread();
if (hasUnread2) {
r0 = !hasUnread2;
} else {
value.oldestUnreadMessageId = null;
value = true;
r0 = value;
}
return r0;
}
function MESSAGE_ACK_39199({channelId, messageId, manual, newMentionCount}) { // fn#39199, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:29006, offset: 0x010db344, size: 120 bytes, params: 2, frame: 17
var r0;
var value3;
const value = env0_79.get(channelId);
if (manual) {
value3 = true;
value.rebuildChannelState(messageId, value3, newMentionCount);
value.clearOutgoingAck();
r0 = value3;
} else {
r0 = messageId !== value._ackMessageId && value.ack({'messageId': null, 'local': true, 'trackAnalytics': false,
messageId: messageId});
}
return r0;
}
function handleNonChannelAck(a0, a1, a2, a3) { // fn#39201, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:29339, offset: 0x010db3e5, size: 196 bytes, params: 5, frame: 18
var r1;
var r7;
var ack;
let value = a2;
const value2 = a3;
const value4 = env0_79.get(a0, a1);
let r0 = value !== value4.ackMessageId && value4.lastMessageId !== value4.ackMessageId;
if (r0) {
r1 = value4.lastMessageId != null || value4.mentionCount !== 0;
if (r1) {
r7 = value ?? value4.lastMessageId;
if (r7 == null) {
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.fromTimestamp(value4.getAckTimestamp());
r7 = value;
}
ack = value4.ack;
value = value2 == null;
value = Reflect.apply(ack, value4, [{messageId: r7, local: value || value2, trackAnalytics: false}]);
r1 = value;
}
r0 = r1;
}
return r0;
}
function _fun39203() { // fn#39203, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:2525, offset: 0x010db4a9, size: 230 bytes, params: 1, frame: 15
return env0_9(AutoAckableChannelTracker, [{key: 'addWindowId', value: function(a0, a1) {
if (this.channelWindowIds[a0] == null) {
this.channelWindowIds[a0] = new global.Set();
}
this.channelWindowIds[a0].add(a1);
}}, {key: 'hasWindowId', value: function(a0, a1) {
return this.channelWindowIds[a0] != null && this.channelWindowIds[a0].has(a1);
}}, {key: 'isChannelAckable', value: function(a0) {
return this.channelWindowIds[a0] != null && this.channelWindowIds[a0].size > 0;
}}, {key: 'getAllWindowIds', value: function(a0) {
return this.channelWindowIds[a0] == null ? [] : global.Array.from(this.channelWindowIds[a0]);
}}, {key: 'getAllChannelIdsForWindowId', value: value_39209}, {key: 'isAnyWindowFocused', value: function(a0) {
var value4;
var property = this.channelWindowIds[a0];
if (property == null) {
return false;
}
var value2 = _createForOfIteratorHelperLoose_39151(property);
var value3 = value2();
if (value3.done) {
return false;
}
var r1 = value3;
loopExit2: while (true) {
property = r1.value;
if (WindowStore.isFocused(property)) {
break loopExit2;
}
value4 = value2();
if (value4.done) {
return false;
}
r1 = value4;
continue;
}
return true;
}}, {key: 'removeWindowId', value: function(a0, a1) {
if (this.channelWindowIds[a0] != null) {
this.channelWindowIds[a0].delete(a1);
if (this.channelWindowIds[a0].size === 0) {
delete this.channelWindowIds[a0];
}
}
}}, {key: 'forEachChannel', value: value_39212}]);
}
function _fun39213() { // fn#39213, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:6938, offset: 0x010db88c, size: 1209 bytes, params: 1, frame: 17
return env0_9(ReadState, [{key: 'serialize', value: value_39215}, {key: 'deserializeForOverlay',
value: value_39216}, {key: 'incrementGuildUnreadsSentinel', value: value_39217}, {key: 'oldestUnreadMessageId',
get: function() {
return this._oldestUnreadMessageId;
}, set: function(a0) {
this._oldestUnreadMessageId = a0;
this.oldestUnreadMessageIdStale = false;
}}, {key: 'lastMessageId', get: function() {
return this._lastMessageId;
}, set: set_39221}, {key: 'lastMessageTimestamp', get: function() {
return this._lastMessageTimestamp;
}}, {key: 'ackMessageId', get: function() {
return this._ackMessageId;
}, set: set_39224}, {key: 'unreadCount', get: function() {
return this._unreadCount ?? 0;
}, set: function(a0) {
if (!(this._unreadCount !== undefined && this._unreadCount !== 0 && a0 !== 0)) {
this.incrementGuildUnreadsSentinel();
}
this._unreadCount = a0;
}}, {key: 'mentionCount', get: function() {
return this._mentionCount;
}, set: set_39228}, {key: 'isMentionLowImportance', get: get_39229, set: set_39230}, {key: 'guessAckMessageId',
value: value_39231}, {key: 'guildId', get: function() {
var r1;
var value = null;
if (value != this._guildId) {
return this._guildId;
}
var value3 = ChannelStore.getChannel(this.channelId);
r1 = value != value3 ? value3.getGuildId() : value;
this._guildId = r1;
return r1;
}}, {key: 'isPrivate', value: value_39234}, {key: 'rebuildChannelState', value: value_39235},
{key: 'handleGuildEventRemoval', value: value_39237}, {key: 'canTrackUnreads', value: value_39239},
{key: 'canBeUnread', value: value_39240}, {key: 'canHaveMentions', value: value_39241},
{key: 'getGuildChannelUnreadState', value: value_39242}, {key: 'hasUnread', value: function() {
return this.getAckTimestamp() < this._lastMessageTimestamp;
}}, {key: 'hasRecentlyVisitedAndRead', value: value_39244}, {key: 'isForumPostUnread', value: function() {
var _isActiveThread = this._isActiveThread;
return _isActiveThread ? this.hasUnread() : !!_isActiveThread;
}}, {key: 'hasMentions', value: function() {
return this.getMentionCount() > 0;
}}, {key: 'getMentionCount', value: function() {
return this.mentionCount;
}}, {key: 'hasUnreadOrMentions', value: function() {
return this.hasMentions() || this.hasUnread();
}}, {key: 'ackPins', value: value_39249}, {key: 'ack', value: value_39251}, {key: 'takeSnapshot',
value: value_39253}, {key: 'clearOutgoingAck', value: function() {
this.outgoingAck = null;
if (this.outgoingAckTimer != null) {
global.clearTimeout(this.outgoingAckTimer);
this.outgoingAckTimer = null;
}
}}, {key: '_shouldAck', value: value_39255}, {key: '_ack', value: value_39256}, {key: 'recalculateFlags',
value: value_39260}, {key: '_nonChannelAck', value: value_39261}, {key: 'delete', value: value_39263},
{key: 'shouldDeleteReadState', value: value_39264}, {key: 'getAckTimestamp', value: value_39265},
{key: 'oldestUnreadTimestamp', get: get_39266}, {key: 'syncThreadSettings', value: value_39267},
{key: 'recordLastViewedTime', value: value_39268}], [{key: 'forEach', value: value_39269}, {key: 'get',
value: value_39270}, {key: 'getGuildSentinels', value: function(a0) {
if (this._guildReadStateSentinels[a0] == null) {
this._guildReadStateSentinels[a0] = {unreadsSentinel: 0};
}
return this._guildReadStateSentinels[a0];
}}, {key: 'resetGuildSentinels', value: function() {
this._guildReadStateSentinels = {};
}}, {key: 'getIfExists', value: value_39273}, {key: 'getMentionChannelIds', value: value_39274}, {key: 'getValue',
value: function(a0) {
var r0;
var value = a1;
var value2 = a3;
value = this.getIfExists(a0, value !== undefined ? value : ReadStateTypes.CHANNEL);
if (value == null) {
r0 = value2;
} else {
value = a2(value);
r0 = value;
}
return r0;
}}, {key: 'clear', value: value_39276}, {key: 'clearAll', value: function() {
ReadState._readStates.clear();
ReadState._mentionChannels.clear();
}}]);
}
function _fun39279(a0) { // fn#39279, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:29654, offset: 0x010ddf43, size: 757 bytes, params: 2, frame: 16
const closure = ReadStateStoreClass;
env0_5(closure, a0);
return env0_9(closure, [{key: 'initialize', value: value_39281}, {key: 'getReadStatesByChannel',
value: value_39282}, {key: 'getForDebugging', value: value_39283}, {key: 'getNotifCenterReadState',
value: value_39284}, {key: 'hasUnread', value: value_39285}, {key: 'hasUnreadOrMentions', value: value_39287},
{key: 'hasTrackedUnread', value: value_39289}, {key: 'isForumPostUnread', value: value_39291},
{key: 'getUnreadCount', value: value_39293}, {key: 'getMentionCount', value: value_39295},
{key: 'getIsMentionLowImportance', value: value_39297}, {key: 'getGuildChannelUnreadState', value: value_39299},
{key: 'hasRecentlyVisitedAndRead', value: value_39301}, {key: 'ackMessageId', value: value_39303},
{key: 'getTrackedAckMessageId', value: value_39305}, {key: 'lastMessageId', value: value_39307},
{key: 'lastMessageTimestamp', value: value_39309}, {key: 'lastPinTimestamp', value: value_39311},
{key: 'getOldestUnreadMessageId', value: value_39313}, {key: 'getOldestUnreadTimestamp', value: value_39315},
{key: 'isEstimated', value: value_39317}, {key: 'hasOpenedThread', value: value_39319}, {key: 'hasUnreadPins',
value: value_39321}, {key: 'isNewForumThread', value: value_39323}, {key: 'getAllReadStates',
value: value_39324}, {key: 'getGuildUnreadsSentinel', value: value_39326}, {key: 'getMentionChannelIds',
value: value_39327}, {key: 'getNonChannelAckId', value: value_39328}, {key: 'getSnapshot', value: value_39329},
{key: 'getChannelIdsForWindowId', value: value_39330}]);
}
function BACKGROUND_SYNC_CHANNEL_MESSAGES({changesByChannelId}) { // fn#39331, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:34242, offset: 0x010deda5, size: 309 bytes, params: 2, frame: 36
var r20;
var r3;
var r1;
var r2;
var propertyName;
var propertyName2;
var property;
var binding;
var ifExists;
var _createForOfIteratorHelperLoose_39151Binding;
var new_messages;
var property2;
var items2;
var concat;
var modified_messages;
var value4;
var filter;
var isNotNullish;
var value5;
var value6;
var done;
var value7;
var defaultImport;
var compare;
var id;
var lastMessageId;
var value8;
for (propertyName in changesByChannelId) {
property = changesByChannelId[propertyName];
binding = env0_79;
ifExists = binding.getIfExists(propertyName);
if (ifExists == null) {
r20 = propertyName2;
continue;
}
_createForOfIteratorHelperLoose_39151Binding = _createForOfIteratorHelperLoose_39151;
new_messages = property.new_messages;
if (new_messages == null) {
r3 = undefined;
continue;
}
property2 = new_messages[0];
r3 = property2;
items2 = [r3];
concat = items2.concat;
modified_messages = property.modified_messages;
if (modified_messages != null) {
r1 = modified_messages;
continue;
}
value4 = Reflect.apply(concat, items2, [[]]);
filter = value4.filter;
isNotNullish = (require(1360) /* metro dependency 1360: GlobalUtils */).isNotNullish;
value5 = _createForOfIteratorHelperLoose_39151Binding(Reflect.apply(filter, value4, [isNotNullish]));
value6 = value5();
done = value6.done;
if (done) {
r20 = propertyName2;
continue;
}
r2 = value6;
while (true) {
value7 = r2.value;
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
compare = defaultImport.compare;
id = value7.id;
lastMessageId = ifExists.lastMessageId;
if (Reflect.apply(compare, defaultImport, [id, lastMessageId]) === 1) {
id = value7.id;
ifExists.lastMessageId = id;
}
value8 = value5();
done = value8.done;
if (done) {
r20 = propertyName2;
break;
}
r2 = value8;
continue;
}
}
}
function CONNECTION_OPEN_39332({guilds, relationships, initialPrivateChannels, readState}) { // fn#39332, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:34632, offset: 0x010deeda, size: 456 bytes, params: 2, frame: 21
var r4;
var r3;
var value4;
var defaultImport;
var fromTimestamp;
var Date;
var value7;
var channels;
var op;
var writes;
var items2;
var channelTimestampUpdates;
var mergeChannelTimestampUpdatesBinding;
var value8;
DECAY_READ_STATES();
let binding = env0_69;
if (!(binding || readState.partial)) {
env0_79.clearAll();
}
readState.entries.forEach(_fun39333);
env0_79.resetGuildSentinels();
const id = UserStore.getCurrentUser()?.id;
if (id != null) {
binding = env0_79;
value4 = binding.get(id, ReadStateTypes.NOTIFICATION_CENTER);
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
fromTimestamp = defaultImport.fromTimestamp;
Date = global.Date;
value4.lastMessageId = Reflect.apply(fromTimestamp, defaultImport, [Date.now()]);
}
mergeRelationships(relationships);
mergeChannels(initialPrivateChannels);
const value5 = _createForOfIteratorHelperLoose_39151(guilds);
const value6 = value5();
let done = value6.done;
if (!done) {
r4 = value6;
while (true) {
value7 = r4.value;
mergeChannelsBinding = mergeChannels;
channels = value7.channels;
op = channels.op;
if (op === 'full_sync') {
channels = value7.channels;
items2 = channels.items;
r3 = items2;
} else {
channels = value7.channels;
writes = channels.writes;
r3 = writes;
}
mergeChannelsBinding(r3);
channelTimestampUpdates = value7.channelTimestampUpdates;
if (channelTimestampUpdates == null) {
continue;
}
mergeChannelTimestampUpdatesBinding = mergeChannelTimestampUpdates;
channelTimestampUpdates = value7.channelTimestampUpdates;
mergeChannelTimestampUpdatesBinding(channelTimestampUpdates);
mergeForGuild(value7);
value8 = value5();
done = value8.done;
if (done) {
break;
}
r4 = value8;
continue;
}
}
LOGOUT_39186();
const setTimeout = global.setTimeout;
const Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const SECOND = Millis.SECOND;
env0_72 = setTimeout(_fun39334, 10 * SECOND);
}
function OVERLAY_INITIALIZE_39336({readStates, selectedChannelId}) { // fn#39336, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:36668, offset: 0x010df331, size: 94 bytes, params: 2, frame: 14
DECAY_READ_STATES();
env0_67 = ChannelSectionStore.getCurrentSidebarChannelId(selectedChannelId);
env0_79.clearAll();
readStates.forEach(_fun39337);
}
function CACHE_LOADED_39338({readStates}) { // fn#39338, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:36957, offset: 0x010df3d6, size: 47 bytes, params: 2, frame: 12
DECAY_READ_STATES();
readStates.forEach(_fun39339);
}
function GUILD_CREATE_39340({guild}) { // fn#39340, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:37260, offset: 0x010df4c7, size: 144 bytes, params: 2, frame: 14
const env0_1 = generateOldThreadCutoff();
env0_79.forEach(_fun39341);
mergeChannels(guild.channels.op === 'full_sync' ? guild.channels.items : guild.channels.writes);
if (guild.channelTimestampUpdates != null) {
mergeChannelTimestampUpdates(guild.channelTimestampUpdates);
}
mergeForGuild(guild);
}
function LOAD_MESSAGES_SUCCESS_39342({channelId, isAfter, messages}) { // fn#39342, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:37615, offset: 0x010df594, size: 374 bytes, params: 2, frame: 21
var r1;
var defaultImport;
const value2 = env0_79.get(channelId);
value2.loadedMessages = true;
if (value2.lastMessageId == null && messages.length > 0) {
value2.lastMessageId = messages[0].id;
}
const messages2 = MessageStore.getMessages(channelId);
if (messages2 != null) {
if (messages.length > 0) {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
if (defaultImport.compare(messages[0].id, value2.ackMessageId) !== 1) {
if (messages2.hasPresent()) {
value2.rebuildChannelState();
} else if (messages2.jumpTargetId === value2.ackMessageId) {
value2.rebuildChannelState();
} else {
r1 = isAfter && value2.ackMessageId != null;
r1 = r1 && messages2.has(value2.ackMessageId, true);
if (r1) {
value2.unreadCount = value2.unreadCount + messages.length;
if (value2.oldestUnreadMessageId == null) {
value2.rebuildChannelState();
}
}
}
} else if (value2.unreadCount === 0) {
value2.rebuildChannelState();
} else if (messages2.hasPresent()) {
value2.rebuildChannelState();
} else if (messages2.jumpTargetId === value2.ackMessageId) {
value2.rebuildChannelState();
} else {
r1 = isAfter && value2.ackMessageId != null;
r1 = r1 && messages2.has(value2.ackMessageId, true);
if (r1) {
value2.unreadCount = value2.unreadCount + messages.length;
if (value2.oldestUnreadMessageId == null) {
value2.rebuildChannelState();
}
}
}
} else if (messages2.hasPresent()) {
value2.rebuildChannelState();
} else if (messages2.jumpTargetId === value2.ackMessageId) {
value2.rebuildChannelState();
} else {
r1 = isAfter && value2.ackMessageId != null;
r1 = r1 && messages2.has(value2.ackMessageId, true);
if (r1) {
value2.unreadCount = value2.unreadCount + messages.length;
if (value2.oldestUnreadMessageId == null) {
value2.rebuildChannelState();
}
}
}
}
const mergeServerChannelsBinding = mergeServerChannels;
const value9 = messages.map(function(a0) {
return a0.thread;
});
mergeServerChannelsBinding(value9.filter((require(1360) /* metro dependency 1360: GlobalUtils */).isNotNullish));
}
function LOCAL_MESSAGES_LOADED_39344({channelId, messages}) { // fn#39344, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:38187, offset: 0x010df70a, size: 172 bytes, params: 2, frame: 17
var r3;
var value2;
var id;
var value3;
var value;
const iosPushNotificationRawPayloadFixExperimentModule = require(4819) /* metro dependency 4819: IOSPushNotificationRawPayloadFixExperiment */;
if (iosPushNotificationRawPayloadFixExperimentModule.isIOSPushNotificationRawPayloadFixExperimentEnabled()) {
if (messages.length === 0) {
return false;
}
value2 = env0_79.get(channelId);
id = messages[0].id;
value3 = value2.lastMessageId == null;
if (value3) {
r3 = value3;
} else {
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.compare(id, value2.lastMessageId) > 0;
r3 = value;
}
if (r3) {
value2.lastMessageId = id;
value2.rebuildChannelState();
}
return undefined;
}
return false;
}
function MESSAGE_CREATE_39345({channelId, message, isPushNotification}) { // fn#39345, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:38500, offset: 0x010df7b6, size: 1371 bytes, params: 2, frame: 29
var r8;
var r12;
var name;
var r13;
var r14;
var r9;
var type;
var object2;
var id;
var value4;
var id2;
var SELF_MENTIONABLE_SYSTEM;
var has;
var outgoingAck;
var clearOutgoingAck;
var object3;
var isReady;
var isReady2;
var getChannelId;
var value9;
var getCurrentSidebarChannelId;
var value10;
var currentRoute;
var getChatOpen;
var params;
var value13;
var oldestUnreadMessageIdStale;
var moduleValue2;
var getFocusedChannelId;
var value14;
var unreadCount;
var RECIPIENT_REMOVE;
var GROUP_DM;
var moduleValue3;
var isRawMessageMentioned;
var isSuppressEveryoneEnabled;
var guildId;
var isSuppressRolesEnabled;
var getChannel;
var channel_id;
var value15;
var mentionOnAllMessages;
var isThread;
var isVocal;
var isChannelMuted;
var guild_id;
var resolvedMessageNotifications;
var value16;
var ALL_MESSAGES;
var moduleValue4;
var computeThreadNotificationSetting;
var threadNotificationSetting;
var shouldMention;
var isMentionLowImportance;
var mentionCount;
var NOTIFICATION_CENTER;
var value17;
var tabFocused;
var handleNonChannelAckBinding;
let binding = env0_79;
let get = binding.get;
const value2 = Reflect.apply(get, binding, [channelId]);
const hasUnread2 = value2.hasUnread();
let lastMessageId = value2.lastMessageId;
const value3 = lastMessageId != null;
reducibleJoin2: while (true) {
if (value3) {
lastMessageId = value2.lastMessageId;
id = message.id;
value4 = lastMessageId >= id;
r8 = value4;
break reducibleJoin2;
}
r8 = value3;
break reducibleJoin2;
}
value2.lastMessageId = message.id;
const currentUser = UserStore.getCurrentUser();
const basicChannel = ChannelStore.getBasicChannel(channelId);
let author = message.author;
if (author != null) {
reducibleJoin9: while (true) {
if (currentUser == null) {
break reducibleJoin9;
}
author = message.author;
id = author.id;
id2 = currentUser.id;
if (id !== id2) {
break reducibleJoin9;
}
SELF_MENTIONABLE_SYSTEM = MessageTypesSets.SELF_MENTIONABLE_SYSTEM;
has = SELF_MENTIONABLE_SYSTEM.has;
type = message.type;
if (!Reflect.apply(has, SELF_MENTIONABLE_SYSTEM, [type])) {
outgoingAck = value2.outgoingAck;
reducibleJoin8: while (true) {
if (outgoingAck == null) {
break reducibleJoin8;
}
clearOutgoingAck = value2.clearOutgoingAck;
Reflect.apply(clearOutgoingAck, value2, []);
break reducibleJoin8;
}
id = message.id;
return MESSAGE_ACK_39199({channelId: channelId, messageId: id, manual: false});
}
break reducibleJoin9;
}
}
const rootNavigationRef = (require(4008) /* metro dependency 4008: RootNavigationRefNative */).getRootNavigationRef();
reducibleJoin11: while (true) {
if (rootNavigationRef == null) {
r12 = undefined;
break reducibleJoin11;
}
isReady = rootNavigationRef.isReady;
isReady2 = Reflect.apply(isReady, rootNavigationRef, []);
r12 = isReady2;
break reducibleJoin11;
}
if (r12 === true) {
currentRoute = rootNavigationRef.getCurrentRoute();
getChatOpen = ChannelRTCStore.getChatOpen;
channelId = value2.channelId;
if (Reflect.apply(getChatOpen, ChannelRTCStore, [channelId])) {
channelId = value2.channelId;
r12 = channelId;
r13 = undefined;
} else {
reducibleJoin17: while (true) {
if (currentRoute == null) {
name = undefined;
break reducibleJoin17;
}
name = currentRoute.name;
break reducibleJoin17;
}
if (name === 'channel') {
channelId = currentRoute.params.channelId;
r12 = channelId;
r13 = undefined;
} else {
reducibleJoin20: while (true) {
if (currentRoute == null) {
name = undefined;
break reducibleJoin20;
}
name = currentRoute.name;
break reducibleJoin20;
}
reducibleJoin26: while (true) {
if (name !== 'guilds') {
r12 = undefined;
r13 = undefined;
break reducibleJoin26;
}
params = currentRoute.params;
reducibleJoin23: while (true) {
if (params == null) {
channelId = undefined;
break reducibleJoin23;
}
channelId = params.channelId;
break reducibleJoin23;
}
r12 = channelId;
r13 = undefined;
break reducibleJoin26;
}
}
}
} else {
reducibleJoin26: while (true) {
if (rootNavigationRef == null) {
getChannelId = SelectedChannelStore.getChannelId;
value9 = Reflect.apply(getChannelId, SelectedChannelStore, []);
getCurrentSidebarChannelId = ChannelSectionStore.getCurrentSidebarChannelId;
value10 = Reflect.apply(getCurrentSidebarChannelId, ChannelSectionStore, [value9]);
r12 = value9;
r13 = value10;
break reducibleJoin26;
}
r12 = undefined;
r13 = undefined;
break reducibleJoin26;
}
}
const value12 = r12 === channelId;
reducibleJoin28: while (true) {
if (value12) {
r12 = value12;
break reducibleJoin28;
}
value13 = r13 === channelId;
r12 = value13;
break reducibleJoin28;
}
if (r12) {
reducibleJoin35: while (true) {
if (shouldAutomaticallyAck(value2)) {
if (!isPushNotification) {
if (isOverlayAckable(undefined, value2.channelId)) {
r14 = AnalyticsSections.OVERLAY;
} else {
r14 = AnalyticsSections.CHANNEL;
}
return value2.ack({messageId: message.id, trackAnalytics: true, location: {section: r14,
object: AnalyticsObjects.ACK_INCOMING_MESSAGE,
objectType: AnalyticsObjectTypes.ACK_AUTOMATIC}});
}
break reducibleJoin35;
}
break reducibleJoin35;
}
}
if (isOverlayAckable(undefined, channelId)) {
return value2.ack({messageId: message.id, trackAnalytics: true, location: {section: AnalyticsSections.OVERLAY,
object: AnalyticsObjects.ACK_INCOMING_MESSAGE, objectType: AnalyticsObjectTypes.ACK_AUTOMATIC}});
}
reducibleJoin43: while (true) {
reducibleJoin42: while (true) {
if (value2.oldestUnreadMessageId == null) {
break reducibleJoin42;
}
oldestUnreadMessageIdStale = value2.oldestUnreadMessageIdStale;
if (oldestUnreadMessageIdStale) {
break reducibleJoin42;
}
reducibleJoin40: while (true) {
if (hasUnread2) {
r9 = hasUnread2;
break reducibleJoin40;
}
moduleValue2 = require(10915) /* metro dependency 10915: isChannelFocusedNative */;
getFocusedChannelId = moduleValue2.getFocusedChannelId;
value14 = Reflect.apply(getFocusedChannelId, moduleValue2, []) === channelId;
r9 = value14;
break reducibleJoin40;
}
if (r9) {
break reducibleJoin43;
}
id = message.id;
value2.oldestUnreadMessageId = id;
break reducibleJoin43;
}
id = message.id;
value2.oldestUnreadMessageId = id;
break reducibleJoin43;
}
reducibleJoin45: while (true) {
if (r8) {
break reducibleJoin45;
}
unreadCount = value2.unreadCount;
value2.unreadCount = typeof unreadCount === 'bigint' ? unreadCount + 1n : +unreadCount + 1;
break reducibleJoin45;
}
reducibleJoin69: while (true) {
if (RelationshipStore.isBlockedOrIgnoredForMessage(message)) {
break reducibleJoin69;
}
type = message.type;
RECIPIENT_REMOVE = MessageTypes.RECIPIENT_REMOVE;
if (type === RECIPIENT_REMOVE) {
reducibleJoin49: while (true) {
if (basicChannel == null) {
type = undefined;
break reducibleJoin49;
}
type = basicChannel.type;
break reducibleJoin49;
}
GROUP_DM = ChannelTypes.GROUP_DM;
if (type === GROUP_DM) {
break reducibleJoin69;
}
}
reducibleJoin65: while (true) {
reducibleJoin52: while (true) {
if (currentUser == null) {
break reducibleJoin52;
}
moduleValue3 = require(4639) /* metro dependency 4639: isMessageMentioned */;
isRawMessageMentioned = moduleValue3.isRawMessageMentioned;
object3 = {rawMessage: message};
id = currentUser.id;
object3.userId = id;
isSuppressEveryoneEnabled = UserGuildSettingsStore.isSuppressEveryoneEnabled;
guildId = value2.guildId;
object3.suppressEveryone = Reflect.apply(isSuppressEveryoneEnabled, UserGuildSettingsStore, [guildId]);
isSuppressRolesEnabled = UserGuildSettingsStore.isSuppressRolesEnabled;
guildId = value2.guildId;
object3.suppressRoles = Reflect.apply(isSuppressRolesEnabled, UserGuildSettingsStore, [guildId]);
if (Reflect.apply(isRawMessageMentioned, moduleValue3, [object3])) {
object2 = {'shouldMention': true, 'isMentionLowImportance': false};
break reducibleJoin65;
}
break reducibleJoin52;
}
getChannel = ChannelStore.getChannel;
channel_id = message.channel_id;
value15 = Reflect.apply(getChannel, ChannelStore, [channel_id]);
if (isNonMutedPrivateMessage(value15)) {
object2 = {'shouldMention': true, 'isMentionLowImportance': false};
break reducibleJoin65;
}
mentionOnAllMessages = UserGuildSettingsStore.mentionOnAllMessages;
if (mentionOnAllMessages) {
if (value15 != null) {
isThread = value15.isThread;
if (Reflect.apply(isThread, value15, [])) {
moduleValue4 = require(10914) /* metro dependency 10914: ThreadNotificationSettings */;
computeThreadNotificationSetting = moduleValue4.computeThreadNotificationSetting;
threadNotificationSetting = Reflect.apply(computeThreadNotificationSetting, moduleValue4,
[value15]);
ALL_MESSAGES = ThreadMemberFlags.ALL_MESSAGES;
if (threadNotificationSetting === ALL_MESSAGES) {
object2 = {'shouldMention': true, 'isMentionLowImportance': true};
break reducibleJoin65;
}
} else {
isVocal = value15.isVocal;
if (!Reflect.apply(isVocal, value15, [])) {
isChannelMuted = UserGuildSettingsStore.isChannelMuted;
guild_id = value15.guild_id;
id = value15.id;
if (!Reflect.apply(isChannelMuted, UserGuildSettingsStore, [guild_id, id])) {
resolvedMessageNotifications = UserGuildSettingsStore.resolvedMessageNotifications;
value16 = Reflect.apply(resolvedMessageNotifications, UserGuildSettingsStore,
[value15]);
ALL_MESSAGES = UserNotificationSettings.ALL_MESSAGES;
if (value16 === ALL_MESSAGES) {
object2 = {'shouldMention': true, 'isMentionLowImportance': true};
break reducibleJoin65;
}
}
}
}
}
}
object2 = {'shouldMention': false, 'isMentionLowImportance': false};
break reducibleJoin65;
}
shouldMention = object2.shouldMention;
isMentionLowImportance = object2.isMentionLowImportance;
if (shouldMention) {
value2.isMentionLowImportance = isMentionLowImportance;
mentionCount = value2.mentionCount;
value2.mentionCount = typeof mentionCount === 'bigint' ? mentionCount + 1n : +mentionCount + 1;
if (currentUser == null) {
break reducibleJoin69;
}
binding = env0_79;
get = binding.get;
id = currentUser.id;
NOTIFICATION_CENTER = ReadStateTypes.NOTIFICATION_CENTER;
value17 = Reflect.apply(get, binding, [id, NOTIFICATION_CENTER]);
id = message.id;
value17.lastMessageId = id;
tabFocused = NotificationCenterItemsStore.tabFocused;
if (tabFocused) {
handleNonChannelAckBinding = handleNonChannelAck;
id = currentUser.id;
NOTIFICATION_CENTER = ReadStateTypes.NOTIFICATION_CENTER;
handleNonChannelAckBinding(id, NOTIFICATION_CENTER, undefined, false);
break reducibleJoin69;
}
break reducibleJoin69;
}
break reducibleJoin69;
}
}
function CHANNEL_ACK_39346({channelId, messageId, immediate, force, context, location}) { // fn#39346, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:41118, offset: 0x010dfd11, size: 142 bytes, params: 2, frame: 18
var r0;
immediate = !(immediate === undefined) && immediate;
force = !(force === undefined) && force;
const value2 = env0_79.get(channelId);
const ack = value2.ack;
const object2 = {messageId: messageId};
object2.local = context !== CURRENT_APP_CONTEXT;
object2.immediate = immediate;
object2.force = force;
const value = true;
object2.isExplicitUserAction = value;
object2.location = location;
object2.trackAnalytics = value;
if (messageId == null) {
r0 = Reflect.apply(ack, value2, [object2]);
} else {
value2.rebuildChannelState();
r0 = value;
}
return r0;
}
function CHANNEL_LOCAL_ACK({channelId}) { // fn#39347, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:41407, offset: 0x010dfd9f, size: 72 bytes, params: 2, frame: 13
return env0_79.get(channelId).ack({'messageId': null, 'local': true, 'immediate': null, 'force': null,
'isExplicitUserAction': true, 'trackAnalytics': false, messageId: undefined, immediate: undefined,
force: undefined});
}
function CHANNEL_PINS_ACK({channelId, timestamp}) { // fn#39348, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:41593, offset: 0x010dfde7, size: 44 bytes, params: 2, frame: 12
return env0_79.get(channelId).ackPins(timestamp);
}
function CHANNEL_PINS_UPDATE({channelId, lastPinTimestamp}) { // fn#39349, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:41699, offset: 0x010dfe13, size: 65 bytes, params: 2, frame: 13
var r0;
const value2 = env0_79.get(channelId);
let value = parseTimestamp(lastPinTimestamp);
const value3 = value2.lastPinTimestamp !== value;
if (value3) {
value2.lastPinTimestamp = value;
value = true;
r0 = value;
} else {
r0 = value3;
}
return r0;
}
function CHANNEL_SELECT_39350({channelId}) { // fn#39350, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:41875, offset: 0x010dfe54, size: 427 bytes, params: 2, frame: 19
var r0;
var binding;
var value4;
var ackMessageId;
var defaultImport;
const currentSidebarChannelId = ChannelSectionStore.getCurrentSidebarChannelId(channelId);
const channel = ChannelStore.getChannel(channelId);
if (channel != null) {
binding = env0_79;
value4 = binding.get(channel.id);
ackMessageId = value4.ackMessageId;
if (ackMessageId != null) {
r0 = ackMessageId;
} else {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
r0 = defaultImport.fromTimestamp(value4.getAckTimestamp());
}
value4.ackMessageIdAtChannelSelect = r0;
value4.recordLastViewedTime();
}
const clearManualAckBinding = clearManualAck;
clearManualAckBinding(env0_66);
clearManualAckBinding(env0_67);
const r4 = !(env0_66 === channelId) && (clearOldestUnreadMessageId(env0_67) || (clearOldestUnreadMessageId(env0_66) || false));
const r5 = env0_66 === channelId || channel?.type != null && ChannelTypesSets.GUILD_THREADS_ONLY.has(channel.type) ? tryAck({section: AnalyticsSections.CHANNEL,
object: AnalyticsObjects.ACK_CHANNEL_SELECT_SAME_CHANNEL, objectType: AnalyticsObjectTypes.ACK_AUTOMATIC},
channelId) || r4 : r4;
return env0_66 !== channelId ? r5 : tryAck({section: AnalyticsSections.CHANNEL,
object: AnalyticsObjects.ACK_CHANNEL_SELECT_SAME_CHANNEL_SIDEBAR,
objectType: AnalyticsObjectTypes.ACK_AUTOMATIC}, currentSidebarChannelId) || r5;
}
function OVERLAY_TEXT_CHAT_ACK_CHANNEL({channelId}) { // fn#39351, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:42615, offset: 0x010dffff, size: 168 bytes, params: 2, frame: 17
var r0;
var defaultImport;
const ACK_CHANNEL_SELECT_SAME_CHANNEL_DISPATCH = AnalyticsObjects.ACK_CHANNEL_SELECT_SAME_CHANNEL_DISPATCH;
const value2 = env0_79.get(channelId);
const ackMessageId = value2.ackMessageId;
if (ackMessageId != null) {
r0 = ackMessageId;
} else {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
r0 = defaultImport.fromTimestamp(value2.getAckTimestamp());
}
value2.ackMessageIdAtChannelSelect = r0;
value2.recordLastViewedTime();
clearOldestUnreadMessageId(channelId);
const tryAckBinding = tryAck;
const OVERLAY = AnalyticsSections.OVERLAY;
const ACK_AUTOMATIC = AnalyticsObjectTypes.ACK_AUTOMATIC;
tryAckBinding({section: OVERLAY, object: ACK_CHANNEL_SELECT_SAME_CHANNEL_DISPATCH, objectType: ACK_AUTOMATIC},
channelId);
return true;
}
function VOICE_CHANNEL_SELECT_39352({channelId}) { // fn#39352, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:43034, offset: 0x010e00a7, size: 132 bytes, params: 2, frame: 14
if (channelId == null) {
return undefined;
}
const value2 = env0_79.get(channelId);
if (value2.hasMentions()) {
return undefined;
}
value2.oldestUnreadMessageId = null;
const ack = value2.ack;
const CHANNEL = AnalyticsSections.CHANNEL;
const ACK_VOICE_CHANNEL_SELECT = AnalyticsObjects.ACK_VOICE_CHANNEL_SELECT;
const ACK_SEMI_AUTOMATIC = AnalyticsObjectTypes.ACK_SEMI_AUTOMATIC;
return Reflect.apply(ack, value2, [{'isExplicitUserAction': true, 'trackAnalytics': true,
location: {section: CHANNEL, object: ACK_VOICE_CHANNEL_SELECT, objectType: ACK_SEMI_AUTOMATIC}}]);
}
function CHANNEL_CREATE_39353({channel}) { // fn#39353, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:43330, offset: 0x010e012b, size: 88 bytes, params: 2, frame: 14
var binding;
var value2;
if (isReadableType(channel.type)) {
binding = env0_79;
value2 = binding.get(channel.id);
value2.lastMessageId = channel.lastMessageId;
value2.lastPinTimestamp = parseTimestamp(channel.lastPinTimestamp);
return undefined;
}
return false;
}
function THREAD_CREATE_39354({channel}) { // fn#39354, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:43515, offset: 0x010e0183, size: 261 bytes, params: 2, frame: 16
var binding;
var get;
var value2;
if (ALL_CHANNEL_TYPES.has(channel.type)) {
binding = env0_79;
value2 = binding.get(channel.id);
value2.lastMessageId = channel.lastMessageId;
value2.lastPinTimestamp = parseTimestamp(channel.lastPinTimestamp);
value2.syncThreadSettings();
if (channel.ownerId === AuthenticationStore.getId()) {
value2.loadedMessages = true;
}
}
const parent_id = channel.parent_id;
env0_79.get(parent_id).lastMessageId = channel.id;
const currentUser = UserStore.getCurrentUser();
const ownerId = channel.ownerId;
let id = currentUser?.id;
if (ownerId === id) {
binding = env0_79;
get = binding.get;
id = channel.id;
Reflect.apply(get, binding, [id])._persisted = true;
id = channel.id;
MESSAGE_ACK_39199({channelId: parent_id, messageId: id, manual: false});
}
}
function THREAD_UPDATE({channel}) { // fn#39355, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:44056, offset: 0x010e0288, size: 70 bytes, params: 2, frame: 13
var r0;
var binding;
var value;
const value2 = ALL_CHANNEL_TYPES.has(channel.type);
if (value2) {
binding = env0_79;
value = binding.get(channel.id);
value = value.syncThreadSettings();
r0 = value;
} else {
r0 = !!value2;
}
return r0;
}
function THREAD_LIST_SYNC_39356({threads}) { // fn#39356, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:44172, offset: 0x010e02ce, size: 30 bytes, params: 2, frame: 11
threads.forEach(_fun39357);
}
function THREAD_MEMBER_UPDATE_39358({id}) { // fn#39358, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:44793, offset: 0x010e03ca, size: 37 bytes, params: 2, frame: 11
return env0_79.get(id).syncThreadSettings();
}
function THREAD_MEMBERS_UPDATE_39359(a0) { // fn#39359, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:44896, offset: 0x010e03ef, size: 73 bytes, params: 2, frame: 13
var r0;
var binding;
var value;
const value2 = (require(3791) /* metro dependency 3791: ThreadActionUtils */).doesThreadMembersActionAffectMe(a0);
if (value2) {
binding = env0_79;
value = binding.get(a0.id);
value = value.syncThreadSettings();
r0 = value;
} else {
r0 = value2;
}
return r0;
}
function WINDOW_FOCUS(a0) { // fn#39360, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:45104, offset: 0x010e0438, size: 44 bytes, params: 2, frame: 12
const env0_0 = a0;
const env0_1 = false;
env0_73.forEachChannel(_fun39361);
return env0_1;
}
function BULK_ACK({channels, context, onFinished}) { // fn#39364, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:45689, offset: 0x010e056b, size: 53 bytes, params: 2, frame: 16
_handleBulkAck(channels.filter(_fun39368), context, onFinished);
}
function GUILD_SCHEDULED_EVENT_CREATE_39371({guildScheduledEvent}) { // fn#39371, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:46441, offset: 0x010e06c9, size: 164 bytes, params: 2, frame: 16
var mentionCount;
const guild_id = guildScheduledEvent.guild_id;
const binding = env0_79;
const get = binding.get;
const guild_id2 = guildScheduledEvent.guild_id;
const GUILD_EVENT = ReadStateTypes.GUILD_EVENT;
const value2 = Reflect.apply(get, binding, [guild_id2, GUILD_EVENT]);
value2.lastMessageId = guildScheduledEvent.id;
if (currentUserIsEventCreator(guildScheduledEvent)) {
GUILD_FEATURE_ACK_39200({type: 'GUILD_FEATURE_ACK', id: guild_id, ackType: ReadStateTypes.GUILD_EVENT,
ackedId: guildScheduledEvent.id, local: false});
} else if (!UserGuildSettingsStore.isMuteScheduledEventsEnabled(guild_id)) {
mentionCount = value2.mentionCount;
value2.mentionCount = typeof mentionCount === 'bigint' ? mentionCount + 1n : +mentionCount + 1;
}
}
function GUILD_SCHEDULED_EVENT_UPDATE({guildScheduledEvent}) { // fn#39372, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:46792, offset: 0x010e076d, size: 135 bytes, params: 2, frame: 16
var r1;
var r0;
var items2;
var value5;
var binding;
const guild_id = guildScheduledEvent.guild_id;
var value;
const value3 = currentUserIsEventCreator(guildScheduledEvent);
if (value3) {
r0 = !value3;
} else {
items2 = [GuildScheduledEventStatus.CANCELED];
items2[1] = GuildScheduledEventStatus.COMPLETED;
value5 = items2.includes(guildScheduledEvent.status);
if (value5) {
binding = env0_79;
value = binding.get(guild_id, ReadStateTypes.GUILD_EVENT);
value.handleGuildEventRemoval(guild_id, guildScheduledEvent.id);
r1 = undefined;
} else {
r1 = !!value5;
}
r0 = r1;
}
return r0;
}
function GUILD_SCHEDULED_EVENT_DELETE_39373({guildScheduledEvent}) { // fn#39373, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:47055, offset: 0x010e07f4, size: 84 bytes, params: 2, frame: 16
const guild_id = guildScheduledEvent.guild_id;
if (currentUserIsEventCreator(guildScheduledEvent)) {
return false;
}
const binding = env0_79;
const get = binding.get;
const guild_id2 = guildScheduledEvent.guild_id;
const GUILD_EVENT = ReadStateTypes.GUILD_EVENT;
const value = Reflect.apply(get, binding, [guild_id2, GUILD_EVENT]);
value.handleGuildEventRemoval(guild_id, guildScheduledEvent.id);
}
function GUILD_DELETE_39374({guild}) { // fn#39374, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:47259, offset: 0x010e0848, size: 44 bytes, params: 2, frame: 13
const binding = env0_79;
const clear = binding.clear;
const id = guild.id;
const GUILD_EVENT = ReadStateTypes.GUILD_EVENT;
return Reflect.apply(clear, binding, [id, GUILD_EVENT]);
}
function GUILD_UPDATE_39375({guild}) { // fn#39375, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:47348, offset: 0x010e0874, size: 74 bytes, params: 2, frame: 15
var value;
var binding;
var get;
var id;
const latest_onboarding_question_id = guild.latest_onboarding_question_id;
if (latest_onboarding_question_id != null) {
binding = env0_79;
get = binding.get;
id = guild.id;
value = Reflect.apply(get, binding, [id, ReadStateTypes.GUILD_ONBOARDING_QUESTION]);
id = guild.id;
value._guildId = id;
value.lastMessageId = latest_onboarding_question_id;
}
}
function CHANNEL_RTC_UPDATE_CHAT_OPEN(a0) { // fn#39377, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:47701, offset: 0x010e0906, size: 85 bytes, params: 2, frame: 14
if (a0.chatOpen) {
return tryAck({section: AnalyticsSections.CHANNEL, object: AnalyticsObjects.ACK_CHANNEL_RTC_UPDATE_CHAT_OPEN,
objectType: AnalyticsObjectTypes.ACK_AUTOMATIC}, a0.channelId);
}
}
function NOTIFICATION_CENTER_ITEM_CREATE({item}) { // fn#39378, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:47944, offset: 0x010e095b, size: 148 bytes, params: 2, frame: 18
var mentionCount;
const id = UserStore.getCurrentUser()?.id;
if (id == null) {
return false;
}
const binding = env0_79;
const get = binding.get;
const NOTIFICATION_CENTER = ReadStateTypes.NOTIFICATION_CENTER;
const value4 = Reflect.apply(get, binding, [id, NOTIFICATION_CENTER]);
value4.lastMessageId = item.id;
if (NotificationCenterItemsStore.tabFocused) {
handleNonChannelAck(id, ReadStateTypes.NOTIFICATION_CENTER, item.id, false);
} else {
mentionCount = value4.mentionCount;
value4.mentionCount = typeof mentionCount === 'bigint' ? mentionCount + 1n : +mentionCount + 1;
}
}
function RELATIONSHIP_ADD_39379(a0) { // fn#39379, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:48229, offset: 0x010e09ef, size: 441 bytes, params: 2, frame: 20
var time;
var r2;
var FRIEND;
var binding;
var value3;
var value4;
var Date;
var value5;
var date;
var value8;
var value9;
var defaultImport;
var mentionCount;
const currentUser = UserStore.getCurrentUser();
if (currentUser == null) {
return false;
}
let relationship = a0.relationship;
let since = relationship.since;
if (since == null) {
return false;
}
let type = a0.relationship.type;
const PENDING_INCOMING = RelationshipTypes.PENDING_INCOMING;
if (type === PENDING_INCOMING) {
binding = env0_79;
value3 = binding.get(currentUser.id, ReadStateTypes.NOTIFICATION_CENTER);
value4 = a0.relationship.type === RelationshipTypes.FRIEND;
Date = global.Date;
if (value4) {
value8 = global.Date.now();
value9 = Object.create(Date.prototype, {constructor: {value: Date}});
date = new Date();
time = (date instanceof Object ? date : value9).getTime();
} else {
since = a0.relationship.since;
value5 = Object.create(Date.prototype, {constructor: {value: Date}});
date = new Date(since);
time = (date instanceof Object ? date : value5).getTime();
}
if (value3.ackMessageId != null) {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
r2 = defaultImport.extractTimestamp(value3.ackMessageId);
} else {
r2 = 0;
}
if (r2 < time) {
value3.lastMessageId = (importDefault(21) /* metro dependency 21: SnowflakeUtils */).fromTimestamp(time);
if (NotificationCenterItemsStore.tabFocused) {
handleNonChannelAck(currentUser.id, ReadStateTypes.NOTIFICATION_CENTER, undefined, false);
} else {
mentionCount = value3.mentionCount;
if (value4) {
value3.mentionCount = typeof mentionCount === 'bigint' ? mentionCount - 1n : +mentionCount - 1;
} else {
value3.mentionCount = typeof mentionCount === 'bigint' ? mentionCount + 1n : +mentionCount + 1;
}
}
}
} else {
relationship = a0.relationship;
type = relationship.type;
FRIEND = RelationshipTypes.FRIEND;
if (type !== FRIEND) {
return false;
}
binding = env0_79;
value3 = binding.get(currentUser.id, ReadStateTypes.NOTIFICATION_CENTER);
relationship = a0.relationship;
type = relationship.type;
FRIEND = RelationshipTypes.FRIEND;
value4 = type === FRIEND;
Date = global.Date;
if (value4) {
value8 = global.Date.now();
value9 = Object.create(Date.prototype, {constructor: {value: Date}});
date = new Date();
time = (date instanceof Object ? date : value9).getTime();
} else {
since = a0.relationship.since;
value5 = Object.create(Date.prototype, {constructor: {value: Date}});
date = new Date(since);
time = (date instanceof Object ? date : value5).getTime();
}
if (value3.ackMessageId != null) {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
r2 = defaultImport.extractTimestamp(value3.ackMessageId);
} else {
r2 = 0;
}
if (r2 < time) {
value3.lastMessageId = (importDefault(21) /* metro dependency 21: SnowflakeUtils */).fromTimestamp(time);
if (NotificationCenterItemsStore.tabFocused) {
handleNonChannelAck(currentUser.id, ReadStateTypes.NOTIFICATION_CENTER, undefined, false);
} else {
mentionCount = value3.mentionCount;
if (value4) {
value3.mentionCount = typeof mentionCount === 'bigint' ? mentionCount - 1n : +mentionCount - 1;
} else {
value3.mentionCount = typeof mentionCount === 'bigint' ? mentionCount + 1n : +mentionCount + 1;
}
}
}
}
}
function RELATIONSHIP_REMOVE_39380(a0) { // fn#39380, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:48829, offset: 0x010e0ba8, size: 267 bytes, params: 2, frame: 17
var r2;
var Math;
var value;
const currentUser = UserStore.getCurrentUser();
if (currentUser == null) {
return false;
}
let since = a0.relationship.since;
if (since == null) {
return false;
}
const type = a0.relationship.type;
const PENDING_INCOMING = RelationshipTypes.PENDING_INCOMING;
if (type !== PENDING_INCOMING) {
return false;
}
const binding = env0_79;
const get = binding.get;
const id = currentUser.id;
const NOTIFICATION_CENTER = ReadStateTypes.NOTIFICATION_CENTER;
const value3 = Reflect.apply(get, binding, [id, NOTIFICATION_CENTER]);
const Date = global.Date;
since = a0.relationship.since;
const value4 = Object.create(Date.prototype, {constructor: {value: Date}});
const date = new Date(since);
const time = (date instanceof Object ? date : value4).getTime();
const ackMessageId = value3.ackMessageId;
const value7 = 0;
if (ackMessageId != null) {
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.extractTimestamp(value3.ackMessageId);
r2 = value;
} else {
r2 = value7;
}
if (r2 <= time) {
Math = global.Math;
value3.mentionCount = Math.max(value7, value3.mentionCount - 1);
}
}
function NOTIFICATION_CENTER_ITEMS_ACK({ids, optimistic}) { // fn#39381, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:49237, offset: 0x010e0cb3, size: 129 bytes, params: 2, frame: 17
if (optimistic) {
return false;
}
if (NotificationCenterItemsStore.active) {
return false;
}
const id = UserStore.getCurrentUser()?.id;
if (id == null) {
return false;
}
const binding = env0_79;
const get = binding.get;
const NOTIFICATION_CENTER = ReadStateTypes.NOTIFICATION_CENTER;
const env0_0 = Reflect.apply(get, binding, [id, NOTIFICATION_CENTER]);
ids.forEach(_fun39382);
}
function USER_NON_CHANNEL_ACK_39383({ackType, ackedId, local}) { // fn#39383, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:49560, offset: 0x010e0d9f, size: 84 bytes, params: 2, frame: 20
const id = UserStore.getCurrentUser()?.id;
return id != null && handleNonChannelAck(id, ackType, ackedId, local);
}
function PASSIVE_UPDATE_V2_39384({channels}) { // fn#39384, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:49737, offset: 0x010e0df3, size: 153 bytes, params: 2, frame: 20
var r2;
var r3;
var r10;
var r0;
var value5;
var binding;
var get;
var id;
var value6;
var parseTimestampBinding;
var lastPinTimestamp;
var timestamp;
var lastMessageId;
var lastMessageId2;
var value7;
var value8;
var value9;
var value10;
const value2 = _createForOfIteratorHelperLoose_39151(channels);
const value3 = value2();
let done = value3.done;
if (done) {
r0 = false;
} else {
r2 = false;
r3 = value3;
while (true) {
value5 = r3.value;
binding = env0_79;
get = binding.get;
id = value5.id;
value6 = Reflect.apply(get, binding, [id]);
parseTimestampBinding = parseTimestamp;
lastPinTimestamp = value5.lastPinTimestamp;
timestamp = parseTimestampBinding(lastPinTimestamp);
lastMessageId = value6.lastMessageId;
lastMessageId2 = value5.lastMessageId;
value7 = lastMessageId === lastMessageId2;
if (value7) {
lastPinTimestamp = value6.lastPinTimestamp;
value8 = lastPinTimestamp === timestamp;
r10 = value8;
} else {
r10 = value7;
}
if (r10) {
continue;
}
lastMessageId = value5.lastMessageId;
value6.lastMessageId = lastMessageId;
value6.lastPinTimestamp = timestamp;
value9 = true;
r2 = value9;
value10 = value2();
done = value10.done;
if (done) {
r0 = r2;
break;
}
r3 = value10;
continue;
}
}
return r0;
}
function MESSAGE_REQUEST_ACK({ackedId}) { // fn#39387, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:50260, offset: 0x010e0ec2, size: 129 bytes, params: 2, frame: 16
const id = UserStore.getCurrentUser()?.id;
if (id == null) {
return false;
}
const binding = env0_79;
const get = binding.get;
const MESSAGE_REQUESTS = ReadStateTypes.MESSAGE_REQUESTS;
const value = Reflect.apply(get, binding, [id, MESSAGE_REQUESTS]);
if (ackedId === value.ackMessageId) {
return false;
}
value.ackMessageId = ackedId;
value.ack({'messageId': null, 'isExplicitUserAction': true, 'trackAnalytics': false, messageId: ackedId});
}
function MESSAGE_REQUEST_CLEAR_ACK() { // fn#39388, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:50549, offset: 0x010e0f43, size: 89 bytes, params: 1, frame: 15
const currentUser = UserStore.getCurrentUser();
const value3 = undefined;
const id = currentUser == null ? value3 : currentUser.id;
if (id == null) {
return false;
}
const binding = env0_79;
const get = binding.get;
const MESSAGE_REQUESTS = ReadStateTypes.MESSAGE_REQUESTS;
const value = Reflect.apply(get, binding, [id, MESSAGE_REQUESTS]);
if (value.ackMessageId == null) {
return false;
}
value.ackMessageId = value3;
return value3;
}
function APP_STATE_UPDATE_39389({state}) { // fn#39389, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:50767, offset: 0x010e0f9c, size: 103 bytes, params: 2, frame: 14
var r0;
var tryAckBinding;
var object2;
var value;
const ACTIVE = AppStates.ACTIVE;
const value2 = state === ACTIVE;
if (value2) {
tryAckBinding = tryAck;
object2 = {};
object2.section = AnalyticsSections.CHANNEL;
object2.object = AnalyticsObjects.ACK_APP_FOREGROUND;
object2.objectType = AnalyticsObjectTypes.ACK_AUTOMATIC;
value = SelectedChannelStore.getChannelId();
value = tryAckBinding(object2, value);
r0 = value;
} else {
r0 = value2;
}
return r0;
}
function _fun39156() { // fn#39156, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:4216, offset: 0x010d9f0d, size: 47 bytes, params: 1, frame: 13
const value = environment.__proto__;
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'DECAY_READ_STATES'});
}
function* _fun39163(a0) { // fn#39163, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:4941, offset: 0x010da0c1, size: 230 bytes, params: 2, frame: 18
var environment;
var binding2;
var property;
var value3;
var closure;
var value4;
var value5;
var value6;
var error;
if (true) {
var env0_0;
value = environment.__proto__.__proto__;
if (env2_70.length === 0) {
if (a0 != null) {
a0();
}
} else {
var binding = env2_70;
env0_0 = binding.splice(0, 100);
try {
binding = env2_1;
} catch (error) {
env2_70.length = 0;
env2_71 = false;
return undefined;
}
try {
binding2 = env2_2;
} catch (error) {
env2_70.length = 0;
env2_71 = false;
return undefined;
}
try {
property = binding2[46];
} catch (error) {
env2_70.length = 0;
env2_71 = false;
return undefined;
}
try {
value3 = binding(property);
} catch (error) {
env2_70.length = 0;
env2_71 = false;
return undefined;
}
try {
closure = _fun39164;
} catch (error) {
env2_70.length = 0;
env2_71 = false;
return undefined;
}
try {
value4 = value3(closure);
} catch (error) {
env2_70.length = 0;
env2_71 = false;
return undefined;
}
yield value4;
try {
value5 = undefined;
value6 = false;
} catch (error) {
env2_70.length = 0;
env2_71 = false;
return undefined;
}
if (value6) {
return value5;
}
binding = env2_0;
var value7 = binding(env2_2[48]);
yield value7.timeoutPromise(1000);
if (false) {
return undefined;
}
env2_90(a0);
}
}
}
function _fun39169(a0) { // fn#39169, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:23623, offset: 0x010da57f, size: 152 bytes, params: 2, frame: 14
var binding;
var value2;
if (isReadableType(a0.type)) {
binding = env1_79;
value2 = binding.get(a0.id);
value2._guildId = a0.guild_id;
value2.lastMessageId = a0.lastMessageId;
value2.lastPinTimestamp = parseTimestamp(a0.lastPinTimestamp);
value2._isResourceChannel = a0.hasFlag(ChannelFlags.IS_GUILD_RESOURCE_CHANNEL);
if (THREAD_CHANNEL_TYPES.has(a0.type)) {
value2.syncThreadSettings();
}
}
}
function _fun39171(a0) { // fn#39171, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:23914, offset: 0x010da62f, size: 181 bytes, params: 2, frame: 18
var binding;
var value2;
var moduleValue;
if (isReadableType(a0.type)) {
binding = env1_79;
value2 = binding.get(a0.id);
value2.lastMessageId = a0.last_message_id;
value2.lastPinTimestamp = parseTimestamp(a0.last_pin_timestamp);
moduleValue = require(1391) /* metro dependency 1391: FlagUtils */;
value2._isResourceChannel = moduleValue.hasFlag(a0.flags ?? 0, ChannelFlags.IS_GUILD_RESOURCE_CHANNEL);
if (THREAD_CHANNEL_TYPES.has(a0.type)) {
value2.syncThreadSettings();
}
}
}
function mergeActiveJoinedThreads(a0) { // fn#39173, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:24203, owner: mergeForGuild.mergeActiveJoinedThreads, offset: 0x010da7e1, size: 40 bytes, params: 2, frame: 11
const env0_0 = a0;
const threads = a0.threads;
if (threads != null) {
threads.forEach(_fun39174);
}
}
function mergeGuildEvents(a0) { // fn#39175, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:24670, owner: mergeForGuild.mergeGuildEvents, offset: 0x010da8f7, size: 228 bytes, params: 2, frame: 19
var environment;
var binding;
var id;
var GUILD_EVENT;
var value3;
var get;
var value4;
var defaultImport;
var value5;
const guild_scheduled_events = a0.guild_scheduled_events;
const value = undefined;
if ((guild_scheduled_events == null ? value : guild_scheduled_events.length) !== 0) {
value3 = environment.__proto__;
binding = env1_79;
get = binding.get;
id = a0.id;
value4 = Reflect.apply(get, binding, [id, ReadStateTypes.GUILD_EVENT]);
id = a0.id;
value4._guildId = id;
} else {
binding = env1_79;
var getIfExists = binding.getIfExists;
id = a0.id;
GUILD_EVENT = ReadStateTypes.GUILD_EVENT;
if (Reflect.apply(getIfExists, binding, [id, GUILD_EVENT]) == null) {
return value;
}
binding = env1_79;
get = binding.get;
id = a0.id;
GUILD_EVENT = ReadStateTypes.GUILD_EVENT;
value4 = Reflect.apply(get, binding, [id, GUILD_EVENT]);
value4._guildId = a0.id;
}
const env0_0 = 0;
const env0_1 = null;
if (value4._ackMessageId == null) {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value5 = defaultImport.fromTimestamp(value4.getAckTimestamp());
}
a0.guild_scheduled_events.forEach(_fun39176);
value4.lastMessageId = env0_1;
value4.mentionCount = env0_0;
return value;
}
function mergeNotificationCenter(a0) { // fn#39178, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:25517, owner: mergeRelationships.mergeNotificationCenter, offset: 0x010daa68, size: 84 bytes, params: 2, frame: 15
const currentUser = UserStore.getCurrentUser();
if (currentUser == null) {
return false;
}
const binding = env1_79;
const get = binding.get;
const id = currentUser.id;
const NOTIFICATION_CENTER = ReadStateTypes.NOTIFICATION_CENTER;
const env0_0 = Reflect.apply(get, binding, [id, NOTIFICATION_CENTER]);
a0.forEach(_fun39179);
}
function _fun39185(a0) { // fn#39185, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:27347, offset: 0x010db046, size: 79 bytes, params: 2, frame: 14
var r0;
let value = environment.__proto__;
const hasOpenedThread2 = env1_81.hasOpenedThread(a0);
if (hasOpenedThread2) {
r0 = hasOpenedThread2;
} else {
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.compare(a0, env0_0.ackMessageId);
value = value < 0;
r0 = value;
}
return r0;
}
function _fun39191({messages, threads}) { // fn#39191, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:28234, offset: 0x010db193, size: 48 bytes, params: 2, frame: 12
messages.forEach(function(a0) {
mergeServerChannels(a0.map(_fun39193).filter(require(dependencyMap[60]).isNotNullish));
});
mergeServerChannels(threads);
}
function AutoAckableChannelTracker() { // fn#39204, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:2546, offset: 0x010db58f, size: 35 bytes, params: 1, frame: 13
env1_8(this, AutoAckableChannelTracker);
this.channelWindowIds = {};
}
function value_39209(a0) { // fn#39209, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:3174, offset: 0x010db6a5, size: 184 bytes, params: 2, frame: 22
var r3;
var value5;
var value6;
var property;
var property2;
var has;
var value7;
const Set = global.Set;
const set = new Set();
const _createForOfIteratorHelperLoose_39151Binding = _createForOfIteratorHelperLoose_39151;
const defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
const value3 = _createForOfIteratorHelperLoose_39151Binding(defaultImport.entries(this.channelWindowIds));
const value4 = value3();
let done = value4.done;
if (!done) {
r3 = value4;
while (true) {
value5 = r3.value;
value6 = env1_7(value5, 2);
property = value6[0];
property2 = value6[1];
has = property2.has;
if (Reflect.apply(has, property2, [a0])) {
set.add(property);
}
value7 = value3();
done = value7.done;
if (done) {
break;
}
r3 = value7;
continue;
}
}
const Array = global.Array;
return Array.from(set);
}
function value_39212(a0) { // fn#39212, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:3790, offset: 0x010db811, size: 123 bytes, params: 2, frame: 19
var r2;
var value4;
var value5;
var property;
var value6;
const _createForOfIteratorHelperLoose_39151Binding = _createForOfIteratorHelperLoose_39151;
const defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
const value2 = _createForOfIteratorHelperLoose_39151Binding(defaultImport.entries(this.channelWindowIds));
const value3 = value2();
let done = value3.done;
if (!done) {
for (r2 = value3; true; r2 = value6) {
value4 = r2.value;
value5 = env1_7(value4, 2);
property = value5[0];
a0(property, value5[1]);
value6 = value2();
done = value6.done;
if (done) {
break;
}
}
}
}
function ReadState(a0) { // fn#39214, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:6949, offset: 0x010dbd45, size: 222 bytes, params: 2, frame: 15
let value = a1;
const r3 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
env1_8(this, ReadState);
const CHANNEL = ReadStateTypes.CHANNEL;
this.type = CHANNEL;
this.outgoingAckTimer = null;
this.ackMessageIdAtChannelSelect = null;
this.ackedWhileCached = undefined;
this.channelId = a0;
this.type = r3;
this._guildId = null;
this._isThread = false;
this._isActiveThread = false;
this._isJoinedThread = false;
this._isResourceChannel = false;
this._persisted = false;
this.loadedMessages = false;
this._lastMessageId = null;
this._lastMessageTimestamp = 0;
this._ackMessageId = null;
this._ackMessageTimestamp = 0;
this.isManualAck = false;
this.ackPinTimestamp = 0;
this.lastPinTimestamp = 0;
this._oldestUnreadMessageId = null;
this.oldestUnreadMessageIdStale = false;
this.estimated = false;
this._unreadCount = 0;
this._mentionCount = 0;
this.outgoingAck = null;
}
function value_39215(a0) { // fn#39215, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:7665, offset: 0x010dbe23, size: 344 bytes, params: 2, frame: 24
const channelId = this.channelId;
const type = this.type;
const _guildId = this._guildId;
const _isThread = this._isThread;
const _isActiveThread = this._isActiveThread;
const _isJoinedThread = this._isJoinedThread;
const _persisted = this._persisted;
const loadedMessages = this.loadedMessages;
const _lastMessageId = this._lastMessageId;
const _lastMessageTimestamp = this._lastMessageTimestamp;
const _ackMessageId = this._ackMessageId;
const _ackMessageTimestamp = this._ackMessageTimestamp;
const ackPinTimestamp = this.ackPinTimestamp;
const isManualAck = this.isManualAck;
const lastPinTimestamp = this.lastPinTimestamp;
const _oldestUnreadMessageId = this._oldestUnreadMessageId;
const oldestUnreadMessageIdStale = this.oldestUnreadMessageIdStale;
const estimated = this.estimated;
const _mentionCount = this._mentionCount;
const flags = this.flags;
const lastViewed = this.lastViewed;
if (a0) {
return {channelId: channelId, type: type, _guildId: _guildId, _isThread: _isThread,
_isActiveThread: _isActiveThread, _isJoinedThread: _isJoinedThread, _persisted: _persisted,
loadedMessages: loadedMessages, _lastMessageId: _lastMessageId,
_lastMessageTimestamp: _lastMessageTimestamp,
_ackMessageId: _ackMessageId, _ackMessageTimestamp: _ackMessageTimestamp, ackPinTimestamp: ackPinTimestamp,
isManualAck: isManualAck, lastPinTimestamp: lastPinTimestamp,
_oldestUnreadMessageId: _oldestUnreadMessageId,
oldestUnreadMessageIdStale: oldestUnreadMessageIdStale, estimated: estimated, _mentionCount: _mentionCount,
flags: flags, lastViewed: lastViewed};
}
const object2 = {channelId: channelId, type: type, _guildId: _guildId, _persisted: _persisted,
_lastMessageId: _lastMessageId, _lastMessageTimestamp: _lastMessageTimestamp, _ackMessageId: _ackMessageId,
_ackMessageTimestamp: _ackMessageTimestamp, ackPinTimestamp: ackPinTimestamp,
lastPinTimestamp: lastPinTimestamp, _mentionCount: _mentionCount, flags: flags};
if (lastViewed != null && lastViewed > 0) {
object2.lastViewed = lastViewed;
}
if (_isThread) {
object2._isThread = _isThread;
object2._isActiveThread = _isActiveThread;
object2._isJoinedThread = _isJoinedThread;
}
return object2;
}
function value_39216({channelId, type, _guildId, _isThread, _isActiveJoinedThread, _isActiveThread, _isJoinedThread, _persisted, loadedMessages, _lastMessageId, _lastMessageTimestamp, _ackMessageId, _ackMessageTimestamp, ackPinTimestamp, isManualAck, lastPinTimestamp, _oldestUnreadMessageId, oldestUnreadMessageIdStale, estimated, _unreadCount, _mentionCount, flags, lastViewed}) { // fn#39216, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:8811, offset: 0x010dbf7b, size: 485 bytes, params: 2, frame: 33
this.channelId = channelId;
this.type = type ?? ReadStateTypes.CHANNEL;
this._guildId = _guildId;
let value = _isThread != null;
let r19 = value && _isThread;
this._isThread = r19;
if (_isActiveJoinedThread != null) {
this._isActiveThread = _isActiveJoinedThread;
this._isJoinedThread = _isActiveJoinedThread;
} else {
value = _isActiveThread != null;
r19 = value && _isActiveThread;
this._isActiveThread = r19;
value = _isJoinedThread != null;
r19 = value && _isJoinedThread;
this._isJoinedThread = r19;
}
this._persisted = _persisted !== false;
this.loadedMessages = loadedMessages != null && loadedMessages;
this._lastMessageId = _lastMessageId;
this._lastMessageTimestamp = _lastMessageTimestamp;
this._ackMessageId = _ackMessageId;
this._ackMessageTimestamp = _ackMessageTimestamp;
this.ackPinTimestamp = ackPinTimestamp;
this.isManualAck = isManualAck != null && isManualAck;
this.lastPinTimestamp = lastPinTimestamp;
this._oldestUnreadMessageId = _oldestUnreadMessageId;
this.oldestUnreadMessageIdStale = oldestUnreadMessageIdStale != null && oldestUnreadMessageIdStale;
this.estimated = estimated != null && estimated;
this._unreadCount = _unreadCount ?? 0;
this._mentionCount = _mentionCount;
this.flags = flags;
this.lastViewed = lastViewed;
let _mentionChannels = ReadState._mentionChannels;
_mentionChannels.delete(this.channelId);
value = this._mentionCount > value;
if (value && this.canHaveMentions()) {
_mentionChannels = ReadState._mentionChannels;
_mentionChannels.add(this.channelId);
}
}
function value_39217() { // fn#39217, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:10014, offset: 0x010dc160, size: 58 bytes, params: 1, frame: 11
var value;
var unreadsSentinel;
if (this._guildId != null) {
value = ReadState.getGuildSentinels(this._guildId);
unreadsSentinel = value.unreadsSentinel;
value.unreadsSentinel = typeof unreadsSentinel === 'bigint' ? unreadsSentinel + 1n : +unreadsSentinel + 1;
}
}
function set_39221(a0) { // fn#39221, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:10340, offset: 0x010dc1c8, size: 69 bytes, params: 2, frame: 14
var r0;
this._lastMessageId = a0;
let value = 0;
if (a0 != null) {
value = environment.__proto__;
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.extractTimestamp(a0);
r0 = value;
} else {
r0 = value;
}
this._lastMessageTimestamp = r0;
}
function set_39224(a0) { // fn#39224, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:10587, offset: 0x010dc223, size: 69 bytes, params: 2, frame: 14
var r0;
this._ackMessageId = a0;
let value = 0;
if (a0 != null) {
value = environment.__proto__;
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.extractTimestamp(a0);
r0 = value;
} else {
r0 = value;
}
this._ackMessageTimestamp = r0;
}
function set_39228(a0) { // fn#39228, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:10966, offset: 0x010dc2cb, size: 140 bytes, params: 2, frame: 14
let r2 = this._mentionCount !== 0 && a0 !== 0;
r2 = !r2 ? this._mentionCount === a0 : r2;
if (!r2) {
this.incrementGuildUnreadsSentinel();
}
this._mentionCount = a0;
let _mentionChannels = ReadState._mentionChannels;
_mentionChannels.delete(this.channelId);
if (this._mentionCount > 0 && this.canHaveMentions()) {
_mentionChannels = ReadState._mentionChannels;
_mentionChannels.add(this.channelId);
}
}
function get_39229() { // fn#39229, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:11270, offset: 0x010dc357, size: 55 bytes, params: 1, frame: 4
var r0;
var IS_MENTION_LOW_IMPORTANCE;
var value2;
let flags = this.flags;
let value = flags != null;
if (value) {
flags = this.flags;
value = environment.__proto__;
IS_MENTION_LOW_IMPORTANCE = env1_78.IS_MENTION_LOW_IMPORTANCE;
value2 = flags & IS_MENTION_LOW_IMPORTANCE;
IS_MENTION_LOW_IMPORTANCE = env1_78.IS_MENTION_LOW_IMPORTANCE;
value = value2 === IS_MENTION_LOW_IMPORTANCE;
r0 = value;
} else {
r0 = value;
}
return r0;
}
function set_39230(a0) { // fn#39230, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:11384, offset: 0x010dc38e, size: 128 bytes, params: 2, frame: 4
var r2;
var flags;
var value;
var _mentionCount;
if (a0) {
_mentionCount = this._mentionCount;
value = 0;
if (value === _mentionCount) {
r2 = this.flags ?? value;
value = environment.__proto__;
this.flags = r2 | env1_78.IS_MENTION_LOW_IMPORTANCE;
}
} else {
flags = this.flags;
value = flags != null;
if (value && this.flags !== 0) {
flags = this.flags;
value = environment.__proto__;
this.flags = flags & ~env1_78.IS_MENTION_LOW_IMPORTANCE;
}
}
}
function value_39231() { // fn#39231, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:11618, offset: 0x010dc40e, size: 147 bytes, params: 1, frame: 16
var mentionCount;
const messages = MessageStore.getMessages(this.channelId);
if (this.ackMessageId == null) {
if (this.isPrivate()) {
if (messages.hasMoreAfter) {
return this.ackMessageId;
}
if (this.hasMentions()) {
var env0_0 = null;
mentionCount = this.mentionCount;
var env0_2 = UserStore.getCurrentUser();
messages.forEach(_fun39232, this, true);
return env0_0;
}
return this.lastMessageId;
}
}
return this.ackMessageId;
}
function value_39234() { // fn#39234, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:12152, offset: 0x010dc544, size: 69 bytes, params: 1, frame: 12
var r0;
const type = this.type;
let value = environment.__proto__;
const CHANNEL = ReadStateTypes.CHANNEL;
if (type !== CHANNEL) {
return false;
}
const getChannel = ChannelStore.getChannel;
const value2 = Reflect.apply(getChannel, ChannelStore, [this.channelId]) != null;
if (value2) {
value = value.isPrivate();
r0 = value;
} else {
r0 = value2;
}
return r0;
}
function value_39235(a0) { // fn#39235, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:12298, offset: 0x010dc589, size: 315 bytes, params: 2, frame: 17
var environment;
var r4;
var hasPresent2;
let value = a0;
const value2 = a1;
const r7 = value2 !== undefined ? value2 : false;
var env0_2;
var env0_3;
var env0_4;
var env0_5;
var env0_6;
let r6 = value ?? this._ackMessageId;
r6 = r6 ?? this.guessAckMessageId();
this.ackMessageId = r6;
this.isManualAck = value != null;
this.oldestUnreadMessageId = null;
this.estimated = false;
this.unreadCount = 0;
if (r7) {
this.mentionCount = 0;
}
if (this.hasUnread()) {
value = environment.__proto__;
env0_2 = UserStore.getCurrentUser();
env0_3 = this.getAckTimestamp();
env0_4 = false;
env0_5 = false;
env0_6 = null;
value = MessageStore.getMessages(this.channelId);
value.forAll(_fun39236);
hasPresent2 = value.hasPresent();
r4 = hasPresent2 ? !(env0_4 || env0_5) && value.length === this.unreadCount : !hasPresent2;
this.estimated = r4;
r4 = this._oldestUnreadMessageId ?? env0_6;
this.oldestUnreadMessageId = r4;
}
if (a2 != null) {
this.mentionCount = a2;
}
}
function value_39237(a0, a1) { // fn#39237, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:13106, offset: 0x010dc797, size: 193 bytes, params: 3, frame: 20
var environment;
var guildScheduledEventsForGuild;
var ackTimestamp;
let value = environment.__proto__;
const defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
if (!(defaultImport.compare(this.ackMessageId, a1) >= 0)) {
guildScheduledEventsForGuild = GuildScheduledEventStore.getGuildScheduledEventsForGuild(a0);
ackTimestamp = this.getAckTimestamp();
if (!global.isNaN(ackTimestamp)) {
if (this._ackMessageId == null) {
value = defaultImport;
value = value.fromTimestamp(ackTimestamp);
}
var env0_1 = null;
var env0_2 = 0;
guildScheduledEventsForGuild.forEach(_fun39238);
this.lastMessageId = env0_1;
this.mentionCount = env0_2;
}
}
}
function value_39239() { // fn#39239, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:13499, offset: 0x010dc8de, size: 227 bytes, params: 1, frame: 16
var r1;
var r0;
var value2;
var value3;
var isChannelGated2;
var defaultImport;
const type = this.type;
const value = environment.__proto__;
const CHANNEL = ReadStateTypes.CHANNEL;
if (type !== CHANNEL) {
return true;
}
if (this._isThread) {
if (this._isActiveThread) {
if (this._isResourceChannel) {
return false;
}
value2 = ChannelStore.getBasicChannel(this.channelId);
value3 = value2 != null;
if (value3) {
if ('basicPermissions' in value2) {
defaultImport = importDefault(3792) /* metro dependency 3792: BasicPermissionUtils */;
r1 = defaultImport.has(value2.basicPermissions, BasicPermissions.VIEW_CHANNEL);
} else {
isChannelGated2 = GatedChannelStore.isChannelGated(this.guildId, this.channelId);
r1 = isChannelGated2 ? PermissionStore.can(Permissions.VIEW_CHANNEL, value2) : !isChannelGated2;
}
r0 = r1;
} else {
r0 = value3;
}
return r0;
}
return false;
}
if (this._isResourceChannel) {
return false;
}
value2 = ChannelStore.getBasicChannel(this.channelId);
value3 = value2 != null;
if (value3) {
if ('basicPermissions' in value2) {
defaultImport = importDefault(3792) /* metro dependency 3792: BasicPermissionUtils */;
r1 = defaultImport.has(value2.basicPermissions, BasicPermissions.VIEW_CHANNEL);
} else {
isChannelGated2 = GatedChannelStore.isChannelGated(this.guildId, this.channelId);
r1 = isChannelGated2 ? PermissionStore.can(Permissions.VIEW_CHANNEL, value2) : !isChannelGated2;
}
r0 = r1;
} else {
r0 = value3;
}
return r0;
}
function value_39240() { // fn#39240, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:13859, offset: 0x010dc9c1, size: 236 bytes, params: 1, frame: 17
var value;
var moduleValue;
var isMessageRequestOrSpamRequest;
var channelId;
var items2;
var moduleValue2;
if (this._isThread) {
if (this._isJoinedThread) {
value = environment.__proto__;
moduleValue = require(12371) /* metro dependency 12371: MessageRequestUtils */;
isMessageRequestOrSpamRequest = moduleValue.isMessageRequestOrSpamRequest;
channelId = this.channelId;
items2 = [MessageRequestStore];
items2[1] = SpamMessageRequestStore;
if (Reflect.apply(isMessageRequestOrSpamRequest, moduleValue, [channelId, items2])) {
return false;
}
if (this._isThread) {
return this.canTrackUnreads();
}
moduleValue2 = require(5102) /* metro dependency 5102: isOptInEnabled */;
if (moduleValue2.isOptInEnabledForGuild(this._guildId)) {
if (this._lastMessageTimestamp < env1_75) {
return false;
}
if (UserGuildSettingsStore.isChannelOrParentOptedIn(this._guildId, this.channelId)) {
return this.canTrackUnreads();
}
if (this.hasRecentlyVisitedAndRead()) {
return this.canTrackUnreads();
}
if (this.hasMentions()) {
return this.canTrackUnreads();
}
return false;
}
return this.canTrackUnreads();
}
return false;
}
moduleValue = require(12371) /* metro dependency 12371: MessageRequestUtils */;
isMessageRequestOrSpamRequest = moduleValue.isMessageRequestOrSpamRequest;
channelId = this.channelId;
items2 = [MessageRequestStore];
items2[1] = SpamMessageRequestStore;
if (Reflect.apply(isMessageRequestOrSpamRequest, moduleValue, [channelId, items2])) {
return false;
}
if (!this._isThread) {
moduleValue2 = require(5102) /* metro dependency 5102: isOptInEnabled */;
if (moduleValue2.isOptInEnabledForGuild(this._guildId)) {
if (this._lastMessageTimestamp < env1_75) {
return false;
}
if (UserGuildSettingsStore.isChannelOrParentOptedIn(this._guildId, this.channelId)) {
return this.canTrackUnreads();
}
if (this.hasRecentlyVisitedAndRead()) {
return this.canTrackUnreads();
}
if (this.hasMentions()) {
return this.canTrackUnreads();
}
return false;
}
}
return this.canTrackUnreads();
}
function value_39241() { // fn#39241, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:14292, offset: 0x010dcaad, size: 197 bytes, params: 1, frame: 19
var r1;
var r3;
var r2;
var r0;
var moduleValue;
var isMessageRequestOrSpamRequest2;
var moduleValue2;
let value = this.mentionCount !== 0;
if (value) {
r1 = this._isThread && !this._isJoinedThread;
value = !r1;
if (r1) {
r1 = value;
} else {
value = environment.__proto__;
moduleValue = require(12371) /* metro dependency 12371: MessageRequestUtils */;
isMessageRequestOrSpamRequest2 = moduleValue.isMessageRequestOrSpamRequest(this.channelId,
[MessageRequestStore,
SpamMessageRequestStore]);
if (isMessageRequestOrSpamRequest2) {
r2 = !isMessageRequestOrSpamRequest2;
} else {
moduleValue2 = require(5102) /* metro dependency 5102: isOptInEnabled */;
r3 = moduleValue2.isOptInEnabledForGuild(this._guildId) && this._lastMessageTimestamp < env1_75;
r3 = !r3 && this.canTrackUnreads();
r2 = r3;
}
r1 = r2;
}
r0 = r1;
} else {
r0 = value;
}
return r0;
}
function value_39242(a0, a1, a2, a3, a4) { // fn#39242, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:14593, offset: 0x010dcb72, size: 362 bytes, params: 6, frame: 16
var r0;
var _lastMessageTimestamp;
var value;
var defaultImport;
var object2;
if (a1) {
_lastMessageTimestamp = this._lastMessageTimestamp;
value = environment.__proto__;
if (_lastMessageTimestamp < env1_75) {
return {'mentionCount': 0, 'unread': false, 'isMentionLowImportance': false};
}
if (UserGuildSettingsStore.isChannelRecordOrParentOptedIn(a0)) {
value = environment.__proto__;
if ('basicPermissions' in a0) {
defaultImport = importDefault(3792) /* metro dependency 3792: BasicPermissionUtils */;
if (defaultImport.has(a0.basicPermissions, BasicPermissions.VIEW_CHANNEL)) {
if (a3) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else if (a4) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else {
object2 = {};
object2.mentionCount = this.mentionCount;
object2.unread = this.getAckTimestamp() < this._lastMessageTimestamp;
object2.isMentionLowImportance = this.isMentionLowImportance;
r0 = object2;
}
return r0;
}
return {'mentionCount': 0, 'unread': false, 'isMentionLowImportance': false};
}
if (GatedChannelStore.isChannelGated(this.guildId, this.channelId)) {
if (PermissionStore.can(Permissions.VIEW_CHANNEL, a0)) {
if (a3) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else if (a4) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else {
object2 = {};
object2.mentionCount = this.mentionCount;
object2.unread = this.getAckTimestamp() < this._lastMessageTimestamp;
object2.isMentionLowImportance = this.isMentionLowImportance;
r0 = object2;
}
return r0;
}
return {'mentionCount': 0, 'unread': false, 'isMentionLowImportance': false};
}
if (a3) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else if (a4) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else {
object2 = {};
object2.mentionCount = this.mentionCount;
object2.unread = this.getAckTimestamp() < this._lastMessageTimestamp;
object2.isMentionLowImportance = this.isMentionLowImportance;
r0 = object2;
}
return r0;
}
if (this.hasRecentlyVisitedAndRead()) {
value = environment.__proto__;
if ('basicPermissions' in a0) {
defaultImport = importDefault(3792) /* metro dependency 3792: BasicPermissionUtils */;
if (defaultImport.has(a0.basicPermissions, BasicPermissions.VIEW_CHANNEL)) {
if (a3) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else if (a4) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else {
object2 = {};
object2.mentionCount = this.mentionCount;
object2.unread = this.getAckTimestamp() < this._lastMessageTimestamp;
object2.isMentionLowImportance = this.isMentionLowImportance;
r0 = object2;
}
return r0;
}
return {'mentionCount': 0, 'unread': false, 'isMentionLowImportance': false};
}
if (GatedChannelStore.isChannelGated(this.guildId, this.channelId)) {
if (PermissionStore.can(Permissions.VIEW_CHANNEL, a0)) {
if (a3) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else if (a4) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else {
object2 = {};
object2.mentionCount = this.mentionCount;
object2.unread = this.getAckTimestamp() < this._lastMessageTimestamp;
object2.isMentionLowImportance = this.isMentionLowImportance;
r0 = object2;
}
return r0;
}
return {'mentionCount': 0, 'unread': false, 'isMentionLowImportance': false};
}
if (a3) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else if (a4) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else {
object2 = {};
object2.mentionCount = this.mentionCount;
object2.unread = this.getAckTimestamp() < this._lastMessageTimestamp;
object2.isMentionLowImportance = this.isMentionLowImportance;
r0 = object2;
}
return r0;
}
if (this.mentionCount <= 0) {
return {'mentionCount': 0, 'unread': false, 'isMentionLowImportance': false};
}
}
value = environment.__proto__;
if ('basicPermissions' in a0) {
defaultImport = importDefault(3792) /* metro dependency 3792: BasicPermissionUtils */;
if (defaultImport.has(a0.basicPermissions, BasicPermissions.VIEW_CHANNEL)) {
if (a3) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else if (a4) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else {
object2 = {};
object2.mentionCount = this.mentionCount;
object2.unread = this.getAckTimestamp() < this._lastMessageTimestamp;
object2.isMentionLowImportance = this.isMentionLowImportance;
r0 = object2;
}
return r0;
}
return {'mentionCount': 0, 'unread': false, 'isMentionLowImportance': false};
}
if (GatedChannelStore.isChannelGated(this.guildId, this.channelId)) {
if (PermissionStore.can(Permissions.VIEW_CHANNEL, a0)) {
if (a3) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else if (a4) {
r0 = {mentionCount: this.mentionCount, unread: false,
isMentionLowImportance: this.isMentionLowImportance};
} else {
object2 = {};
object2.mentionCount = this.mentionCount;
object2.unread = this.getAckTimestamp() < this._lastMessageTimestamp;
object2.isMentionLowImportance = this.isMentionLowImportance;
r0 = object2;
}
return r0;
}
return {'mentionCount': 0, 'unread': false, 'isMentionLowImportance': false};
}
if (a3) {
r0 = {mentionCount: this.mentionCount, unread: false, isMentionLowImportance: this.isMentionLowImportance};
} else if (a4) {
r0 = {mentionCount: this.mentionCount, unread: false, isMentionLowImportance: this.isMentionLowImportance};
} else {
object2 = {};
object2.mentionCount = this.mentionCount;
object2.unread = this.getAckTimestamp() < this._lastMessageTimestamp;
object2.isMentionLowImportance = this.isMentionLowImportance;
r0 = object2;
}
return r0;
}
function value_39244() { // fn#39244, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:15525, offset: 0x010dccf5, size: 97 bytes, params: 1, frame: 13
var value2;
let value = this._lastMessageTimestamp > 0;
let r0 = value && this._ackMessageId != null;
if (r0) {
value = this.getAckTimestamp();
value2 = environment.__proto__;
value = value > env1_76;
r0 = value;
}
if (r0) {
value = environment.__proto__;
value = UserSettingsProtoStore.getGuildRecentsDismissedAt(this._guildId);
value = value < this.getAckTimestamp();
r0 = value;
}
return r0;
}
function value_39249() { // fn#39249, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:16034, offset: 0x010dcdb0, size: 158 bytes, params: 1, frame: 16
var environment;
let value = a0;
const r3 = value !== undefined ? value : null;
const type = this.type;
value = environment.__proto__;
const CHANNEL = ReadStateTypes.CHANNEL;
if (type === CHANNEL) {
if (this.canTrackUnreads()) {
if (r3 != null) {
value = parseTimestamp(r3);
this.ackPinTimestamp = value !== 0 ? value : this.lastPinTimestamp;
return true;
}
if (this.lastPinTimestamp === this.ackPinTimestamp) {
return false;
}
this._persisted = true;
(importDefault(12370) /* metro dependency 12370: networkAwareRetry */)(_fun39250);
value = parseTimestamp(r3);
this.ackPinTimestamp = value !== 0 ? value : this.lastPinTimestamp;
return true;
}
}
return false;
}
function value_39251({messageId, location, trackAnalytics, local, immediate, force, isExplicitUserAction}) { // fn#39251, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:16420, offset: 0x010dcea4, size: 329 bytes, params: 2, frame: 23
var environment;
var r0;
var r4;
var hasMentions;
var value2;
var value3;
var lastMessageId;
var value5;
var value6;
local = !(local === undefined) && local;
immediate = !(immediate === undefined) && immediate;
force = !(force === undefined) && force;
isExplicitUserAction = !(isExplicitUserAction === undefined) && isExplicitUserAction;
if (this._shouldAck(force, local, isExplicitUserAction)) {
if (force) {
hasMentions = this.hasMentions();
this.estimated = false;
this.snapshot = this.takeSnapshot();
value2 = 0;
this.unreadCount = value2;
this.mentionCount = value2;
this.isMentionLowImportance = false;
value3 = messageId != null;
if (value3) {
r0 = value3;
r4 = messageId;
} else {
lastMessageId = this.lastMessageId;
r0 = lastMessageId != null;
r4 = lastMessageId;
}
if (r0) {
this.ackMessageId = r4;
this.isManualAck = false;
value5 = true;
this._persisted = value5;
value6 = environment.__proto__;
if (env1_69) {
this.ackedWhileCached = value5;
}
tryAckParentForumChannel(this.channelId);
if (local) {
this.oldestUnreadMessageId = null;
r0 = value5;
} else {
if (this.outgoingAck == null) {
this.outgoingAckTimer = global.setTimeout(_fun39252, hasMentions || immediate ? value2 : 3000);
}
this.outgoingAck = r4;
r0 = value5;
}
}
return r0;
}
if (this.canTrackUnreads()) {
hasMentions = this.hasMentions();
this.estimated = false;
this.snapshot = this.takeSnapshot();
value2 = 0;
this.unreadCount = value2;
this.mentionCount = value2;
this.isMentionLowImportance = false;
value3 = messageId != null;
if (value3) {
r0 = value3;
r4 = messageId;
} else {
lastMessageId = this.lastMessageId;
r0 = lastMessageId != null;
r4 = lastMessageId;
}
if (r0) {
this.ackMessageId = r4;
this.isManualAck = false;
value5 = true;
this._persisted = value5;
value6 = environment.__proto__;
if (env1_69) {
this.ackedWhileCached = value5;
}
tryAckParentForumChannel(this.channelId);
if (local) {
this.oldestUnreadMessageId = null;
r0 = value5;
} else {
if (this.outgoingAck == null) {
this.outgoingAckTimer = global.setTimeout(_fun39252, hasMentions || immediate ? value2 : 3000);
}
this.outgoingAck = r4;
r0 = value5;
}
}
return r0;
}
}
return false;
}
function value_39253() { // fn#39253, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:17213, offset: 0x010dd04c, size: 142 bytes, params: 1, frame: 14
let value = environment.__proto__;
const property = (require(5214) /* metro dependency 5214: GuildReadStateStore */).default;
const guildId = this.guildId;
const object2 = {};
object2.unread = this.hasUnread();
object2.mentionCount = this.mentionCount;
value = null;
object2.guildUnread = value == guildId ? value : property.hasUnread(guildId);
object2.guildMentionCount = value == guildId ? value : property.getMentionCount(guildId);
const Date = global.Date;
object2.takenAt = Date.now();
return object2;
}
function value_39255(a0, a1, a2) { // fn#39255, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:17622, offset: 0x010dd10e, size: 146 bytes, params: 4, frame: 16
var r4;
var r5;
var r3;
var r2;
var r1;
var r0;
var isManualAck;
var type;
var value3;
let value = !!a0;
if (a0) {
r0 = value;
} else {
value = !!a2;
if (a2) {
r1 = value;
} else {
value = !!a1;
if (a1) {
r2 = value;
} else {
isManualAck = this.isManualAck;
value = !isManualAck;
if (isManualAck) {
r3 = value;
} else {
type = this.type;
value = environment.__proto__;
r4 = type !== ReadStateTypes.CHANNEL || this.loadedMessages;
if (!r4) {
value = ChannelStore.getChannel(this.channelId);
value3 = value != null;
if (value3) {
value = value.isForumLikeChannel();
r5 = value;
} else {
r5 = value3;
}
r4 = r5;
}
value = !!r4;
r3 = value;
}
r2 = r3;
}
r1 = r2;
}
r0 = r1;
}
return r0;
}
function value_39256(a0, a1) { // fn#39256, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:17820, offset: 0x010dd1a0, size: 157 bytes, params: 3, frame: 14
var environment;
var r2;
var value;
var value2;
const env0_1 = a0;
const env0_2 = a1;
if (this.outgoingAck != null) {
value = environment.__proto__;
var env0_4 = AuthenticationStore.getId();
this._persisted = true;
value2 = this.recalculateFlags();
r2 = value2 === this.flags ? undefined : value2;
value = importDefault(12370) /* metro dependency 12370: networkAwareRetry */;
value = value(_fun39257);
value.then(_fun39258);
}
}
function value_39260() { // fn#39260, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:18352, offset: 0x010dd3a2, size: 105 bytes, params: 1, frame: 12
const type = this.type;
const CHANNEL = ReadStateTypes.CHANNEL;
if (type === CHANNEL) {
var channel = ChannelStore.getChannel(this.channelId);
if (channel != null) {
return channel.isThread() ? env1_78.IS_THREAD : channel.guild_id != null ? env1_78.IS_GUILD_CHANNEL : 0;
}
}
}
function value_39261() { // fn#39261, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:18539, offset: 0x010dd40b, size: 194 bytes, params: 1, frame: 18
var environment;
const outgoingAck = this.outgoingAck;
const channelId = this.channelId;
const type = this.type;
if (outgoingAck != null) {
var value = environment.__proto__;
var GUILD_HOME = ReadStateTypes.GUILD_HOME;
if (GUILD_HOME === type) {
var env0_0 = Endpoints.GUILD_FEATURE_ACK(channelId, outgoingAck, type);
this._persisted = true;
(importDefault(12370) /* metro dependency 12370: networkAwareRetry */)(_fun39262);
return undefined;
}
var GUILD_EVENT = ReadStateTypes.GUILD_EVENT;
if (GUILD_EVENT === type) {
var env0_0 = Endpoints.GUILD_FEATURE_ACK(channelId, outgoingAck, type);
this._persisted = true;
(importDefault(12370) /* metro dependency 12370: networkAwareRetry */)(_fun39262);
return undefined;
}
var GUILD_ONBOARDING_QUESTION = ReadStateTypes.GUILD_ONBOARDING_QUESTION;
if (GUILD_ONBOARDING_QUESTION === type) {
var env0_0 = Endpoints.GUILD_FEATURE_ACK(channelId, outgoingAck, type);
this._persisted = true;
(importDefault(12370) /* metro dependency 12370: networkAwareRetry */)(_fun39262);
return undefined;
}
var NOTIFICATION_CENTER = ReadStateTypes.NOTIFICATION_CENTER;
if (NOTIFICATION_CENTER === type) {
env0_0 = Endpoints.USER_NON_CHANNEL_ACK(outgoingAck, type);
this._persisted = true;
(importDefault(12370) /* metro dependency 12370: networkAwareRetry */)(_fun39262);
return undefined;
}
var MESSAGE_REQUESTS = ReadStateTypes.MESSAGE_REQUESTS;
if (MESSAGE_REQUESTS === type) {
env0_0 = Endpoints.USER_NON_CHANNEL_ACK(outgoingAck, type);
this._persisted = true;
(importDefault(12370) /* metro dependency 12370: networkAwareRetry */)(_fun39262);
return undefined;
}
}
}
function value_39263() { // fn#39263, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:18973, offset: 0x010dd516, size: 436 bytes, params: 1, frame: 26
let value = a0;
let r2 = !(value !== undefined) || value;
value = environment.__proto__;
const getBasicChannel = ChannelStore.getBasicChannel;
let channelId = this.channelId;
const value2 = Reflect.apply(getBasicChannel, ChannelStore, [channelId]);
const binding = env1_63;
const log = binding.log;
channelId = this.channelId;
const type = this.type;
const object2 = {remote: r2};
object2.persisted = this._persisted;
object2.channelMissing = value2 == null;
object2.isOld = isOldReadState(this, generateOldThreadCutoff());
object2.validType = value2 != null && ALL_CHANNEL_TYPES.has(value2.type);
object2.readableType = value2 != null && isReadableType(value2.type);
object2.oldThreadCutoff = generateOldThreadCutoff();
object2.mentionCount = this.mentionCount;
object2.channelId = this.channelId;
object2.ackMessageId = this._ackMessageId;
object2.lastMessageId = this._lastMessageId;
Reflect.apply(log, binding, ['Deleting ReadState', channelId, type, object2]);
r2 = r2 && this._persisted;
if (r2) {
(require(507) /* metro dependency 507: HTTPUtils */).HTTP.del({url: Endpoints.CHANNEL_ACK(this.channelId),
body: {version: 2, read_state_type: this.type}, oldFormErrors: true, rejectWithError: true});
}
const value6 = ReadState._readStates.get(this.type);
if (value6 != null) {
value6.delete(this.channelId);
}
ReadState._mentionChannels.delete(this.channelId);
}
function value_39264(a0) { // fn#39264, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:19741, offset: 0x010dd6ca, size: 492 bytes, params: 2, frame: 27
var r7;
var r8;
var r5;
var r4;
var r0;
var value2;
var value3;
var isReadableType2;
var isPrivate2;
var value7;
var guildId;
var value15;
var defaultImport;
var cast;
let value = environment.__proto__;
if (GuildAvailabilityStore.totalUnavailableGuilds !== 0) {
return false;
}
let type = this.type;
if (type == null) {
value2 = ChannelStore.getBasicChannel(this.channelId);
} else {
type = this.type;
var CHANNEL = ReadStateTypes.CHANNEL;
if (type !== CHANNEL) {
type = this.type;
if (ReadStateTypes.GUILD_HOME === type) {
r0 = GuildStore.getGuild(this.channelId) != null;
} else if (ReadStateTypes.GUILD_EVENT === type) {
r0 = GuildStore.getGuild(this.channelId) != null;
} else if (ReadStateTypes.GUILD_ONBOARDING_QUESTION === type) {
r0 = GuildStore.getGuild(this.channelId) != null;
} else if (ReadStateTypes.NOTIFICATION_CENTER !== type) {
r0 = true;
} else {
value15 = undefined;
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
cast = defaultImport.cast;
value = UserStore.getCurrentUser();
value = Reflect.apply(cast, defaultImport, [value == null ? value15 : value.id]);
value = value === this.channelId;
r0 = value;
}
return !r0;
}
value2 = ChannelStore.getBasicChannel(this.channelId);
}
if (value2 == null) {
r0 = !!isOldReadState(this, a0);
} else {
value3 = ALL_CHANNEL_TYPES.has(value2.type);
if (value3) {
isReadableType2 = isReadableType(value2.type);
if (isReadableType2) {
isPrivate2 = isPrivate(value2.type);
if (isPrivate2) {
r5 = !isPrivate2;
} else {
value7 = THREAD_CHANNEL_TYPES.has(value2.type);
if (value7) {
guildId = this.guildId;
r7 = guildId != null && ActiveThreadsStore.isActive(guildId, value2.parent_id, this.channelId);
r7 = !r7 && isOldReadState(this, a0);
r8 = !r7;
} else {
r8 = !value7;
}
r7 = r8 ? this.mentionCount > 0 && !PermissionStore.canBasicChannel(env1_65, value2) : !r8;
r5 = r7;
}
r4 = r5;
} else {
r4 = !isReadableType2;
}
r0 = r4;
} else {
r0 = !!value3;
}
}
return r0;
}
function value_39265() { // fn#39265, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:20508, offset: 0x010dd8b6, size: 417 bytes, params: 1, frame: 16
var r4;
var r2;
var _isThread;
var value;
var guildJoinedAtTime;
if (this._ackMessageTimestamp === 0) {
_isThread = this._isThread;
value = environment.__proto__;
if (_isThread) {
this._ackMessageTimestamp = getThreadAckMessageTimestamp(this.guildId, this.channelId);
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
this._ackMessageId = value.fromTimestamp(this._ackMessageTimestamp);
return this._ackMessageTimestamp;
}
r4 = this.type === ReadStateTypes.GUILD_EVENT || this.type === ReadStateTypes.GUILD_ONBOARDING_QUESTION ? GuildStore.getGuild(this.channelId) : isStaticChannelRoute(this.channelId) ? GuildStore.getGuild(this.guildId) : ChannelStore.getChannel(this.channelId) != null ? GuildStore.getGuild(ChannelStore.getChannel(this.channelId).getGuildId()) : undefined;
if (r4 != null) {
guildJoinedAtTime = getGuildJoinedAtTime(r4);
if (global.isNaN(guildJoinedAtTime)) {
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.extractTimestamp(this.channelId);
r2 = value;
} else {
r2 = guildJoinedAtTime;
}
} else {
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.extractTimestamp(this.channelId);
r2 = value;
}
this._ackMessageTimestamp = r2;
return r2;
}
if (global.isNaN(this._ackMessageTimestamp)) {
_isThread = this._isThread;
value = environment.__proto__;
if (_isThread) {
this._ackMessageTimestamp = getThreadAckMessageTimestamp(this.guildId, this.channelId);
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
this._ackMessageId = value.fromTimestamp(this._ackMessageTimestamp);
return this._ackMessageTimestamp;
}
r4 = this.type === ReadStateTypes.GUILD_EVENT || this.type === ReadStateTypes.GUILD_ONBOARDING_QUESTION ? GuildStore.getGuild(this.channelId) : isStaticChannelRoute(this.channelId) ? GuildStore.getGuild(this.guildId) : ChannelStore.getChannel(this.channelId) != null ? GuildStore.getGuild(ChannelStore.getChannel(this.channelId).getGuildId()) : undefined;
if (r4 != null) {
guildJoinedAtTime = getGuildJoinedAtTime(r4);
if (global.isNaN(guildJoinedAtTime)) {
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.extractTimestamp(this.channelId);
r2 = value;
} else {
r2 = guildJoinedAtTime;
}
} else {
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.extractTimestamp(this.channelId);
r2 = value;
}
this._ackMessageTimestamp = r2;
return r2;
}
return this._ackMessageTimestamp;
}
function get_39266() { // fn#39266, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:21285, offset: 0x010dda57, size: 64 bytes, params: 1, frame: 13
var r0;
const oldestUnreadMessageId = this.oldestUnreadMessageId;
let value = 0;
if (oldestUnreadMessageId != null) {
value = environment.__proto__;
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.extractTimestamp(this.oldestUnreadMessageId);
r0 = value;
} else {
r0 = value;
}
return r0;
}
function value_39267() { // fn#39267, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:21426, offset: 0x010dda97, size: 188 bytes, params: 1, frame: 19
var binding;
const value = true;
this._isThread = value;
const channel = ChannelStore.getChannel(this.channelId);
if (channel == null) {
binding = env1_63;
binding.warn('syncThreadSettings called with channel not in memory ' + this.channelId);
return false;
}
const guildId = this.guildId;
const r5 = guildId != null && ActiveThreadsStore.isActive(guildId, channel.parent_id, this.channelId);
const hasJoined2 = JoinedThreadsStore.hasJoined(this.channelId);
let r2 = this._isActiveThread !== r5 || this._isJoinedThread !== hasJoined2;
if (r2) {
this._isActiveThread = r5;
this._isJoinedThread = hasJoined2;
r2 = value;
}
return r2;
}
function value_39268() { // fn#39268, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:21841, offset: 0x010ddb53, size: 176 bytes, params: 1, frame: 17
const Math = global.Math;
const ceil = Math.ceil;
const Date = global.Date;
let value = Date.now();
const DISCORD_EPOCH = (require(21) /* metro dependency 21: SnowflakeUtils */).DISCORD_EPOCH;
value -= DISCORD_EPOCH;
const Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const DAY = Millis.DAY;
value = Reflect.apply(ceil, Math, [value / DAY]);
if (value !== this.lastViewed) {
this.lastViewed = value;
value = this.canTrackUnreads();
if (value && !this.hasUnread()) {
this.ack({'force': true, 'trackAnalytics': false});
}
}
}
function value_39269(a0) { // fn#39269, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:22074, offset: 0x010ddc03, size: 134 bytes, params: 2, frame: 18
var r2;
var r7;
var value6;
var value7;
var value8;
var value9;
var value10;
var value11;
const value4 = _createForOfIteratorHelperLoose_39151(ReadState._readStates.values());
const value5 = value4();
let done = value5.done;
if (!done) {
r2 = value5;
while (true) {
_createForOfIteratorHelperLoose_39151Binding = _createForOfIteratorHelperLoose_39151;
value6 = r2.value;
value7 = _createForOfIteratorHelperLoose_39151Binding(value6.values());
value8 = value7();
done = value8.done;
if (!done) {
r7 = value8;
while (true) {
value9 = r7.value;
if (a0(value9) === false) {
break;
}
value10 = value7();
done = value10.done;
if (done) {
break;
}
r7 = value10;
continue;
}
}
value11 = value4();
done = value11.done;
if (done) {
break;
}
r2 = value11;
continue;
}
}
}
function value_39270(a0) { // fn#39270, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:22300, offset: 0x010ddc89, size: 217 bytes, params: 2, frame: 17
var r4;
var readState;
var value7;
var map;
const value = a1;
const value2 = undefined;
const r5 = value !== value2 ? value : ReadStateTypes.CHANNEL;
let _readStates = ReadState._readStates;
const value3 = _readStates.get(r5);
let r0 = value3 == null ? value2 : value3.get(a0);
if (r0 == null) {
readState = new ReadState(a0, r5);
_readStates = ReadState._readStates;
value7 = _readStates.get(r5);
if (value7 != null) {
r4 = value7;
} else {
map = new global.Map();
}
r4.set(a0, readState);
_readStates = ReadState._readStates;
if (_readStates.has(r5)) {
r0 = readState;
} else {
ReadState._readStates.set(r5, r4);
r0 = readState;
}
}
return r0;
}
function value_39273(a0) { // fn#39273, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:22849, offset: 0x010ddda6, size: 71 bytes, params: 2, frame: 12
var r0;
let value = a1;
const value2 = undefined;
value = ReadState._readStates.get(value !== value2 ? value : ReadStateTypes.CHANNEL);
if (value == null) {
r0 = value2;
} else {
value = value.get(a0);
r0 = value;
}
return r0;
}
function value_39274() { // fn#39274, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:22978, offset: 0x010ddded, size: 131 bytes, params: 1, frame: 17
var r2;
var value4;
var getIfExists;
var value5;
var canHaveMentions;
var push;
var value6;
const items2 = [];
const _createForOfIteratorHelperLoose_39151Binding = _createForOfIteratorHelperLoose_39151;
let _mentionChannels = ReadState._mentionChannels;
const value2 = _createForOfIteratorHelperLoose_39151Binding(_mentionChannels);
const value3 = value2();
let done = value3.done;
if (!done) {
r2 = value3;
reducibleLoop1: while (true) {
value4 = r2.value;
getIfExists = ReadState.getIfExists;
value5 = Reflect.apply(getIfExists, ReadState, [value4]);
reducibleJoin5: while (true) {
reducibleJoin3: while (true) {
if (value5 == null) {
break reducibleJoin3;
}
canHaveMentions = value5.canHaveMentions;
if (Reflect.apply(canHaveMentions, value5, [])) {
push = items2.push;
Reflect.apply(push, items2, [value4]);
break reducibleJoin5;
}
break reducibleJoin3;
}
_mentionChannels = ReadState._mentionChannels;
_mentionChannels.delete(value4);
break reducibleJoin5;
}
value6 = value2();
done = value6.done;
if (done) {
break reducibleLoop1;
}
r2 = value6;
continue reducibleLoop1;
}
}
return items2;
}
function value_39276(a0) { // fn#39276, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:23332, offset: 0x010ddeab, size: 93 bytes, params: 2, frame: 13
const value = a1;
const value2 = ReadState._readStates.get(value !== undefined ? value : ReadStateTypes.CHANNEL);
if (value2 == null) {
return false;
}
const value3 = value2.delete(a0);
if (value3) {
ReadState._mentionChannels.delete(a0);
}
return value3;
}
function ReadStateStoreClass() { // fn#39280, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:29666, offset: 0x010de238, size: 113 bytes, params: 1, frame: 20
const value = environment.__proto__;
env1_8(this, ReadStateStoreClass);
const value3 = env1_4(ReadStateStoreClass);
return env1_3(this, _isNativeReflectConstruct_39148() ? global.Reflect.construct(value3, arguments,
env1_4(this).constructor) : value3.apply(this, arguments));
}
function value_39281() { // fn#39281, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:29979, offset: 0x010de2a9, size: 338 bytes, params: 1, frame: 55
const property = (require(7030) /* metro dependency 7030: AppStateStore */).default;
const items2 = [DimensionStore];
items2[1] = UserStore;
items2[2] = GuildStore;
items2[3] = GuildAvailabilityStore;
items2[4] = ChannelStore;
items2[5] = SelectedChannelStore;
items2[6] = MessageStore;
items2[7] = PermissionStore;
items2[8] = ChannelRTCStore;
items2[9] = ActiveThreadsStore;
items2[10] = JoinedThreadsStore;
items2[11] = ChannelSectionStore;
items2[12] = GuildScheduledEventStore;
items2[13] = ExperimentStore;
items2[14] = GatedChannelStore;
items2[15] = UserGuildSettingsStore;
items2[16] = WindowStore;
items2[17] = NotificationCenterItemsStore;
items2[18] = MessageRequestStore;
items2[19] = UserSettingsProtoStore;
items2[20] = SpamMessageRequestStore;
items2.push(property);
this.waitFor(ActiveThreadsStore, AuthenticationStore, ChannelRTCStore, ChannelSectionStore, ChannelStore,
DimensionStore, EmbeddedActivitiesStore, GatedChannelStore, GuildAvailabilityStore, GuildScheduledEventStore,
GuildStore, IdleStore, JoinedThreadsStore, MessageStore, NotificationCenterItemsStore, PermissionStore,
RelationshipStore, SelectedChannelStore, UserGuildSettingsStore, UserSettingsProtoStore, UserStore, WindowStore);
this.syncWith([ChannelSectionStore], handleChannelSectionStoreUpdate);
}
function value_39282() { // fn#39282, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:30213, offset: 0x010de3fb, size: 69 bytes, params: 1, frame: 11
const value = environment.__proto__;
const _readStates = env1_79._readStates;
const get = _readStates.get;
const CHANNEL = ReadStateTypes.CHANNEL;
return Reflect.apply(get, _readStates, [CHANNEL]) ?? new global.Map();
}
function value_39283(a0) { // fn#39283, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:30319, offset: 0x010de440, size: 46 bytes, params: 2, frame: 13
let value = a1;
const r3 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getIfExists(a0, r3);
}
function value_39284(a0) { // fn#39284, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:30410, offset: 0x010de46e, size: 34 bytes, params: 2, frame: 13
const binding = env1_79;
const getIfExists = binding.getIfExists;
const NOTIFICATION_CENTER = ReadStateTypes.NOTIFICATION_CENTER;
return Reflect.apply(getIfExists, binding, [a0, NOTIFICATION_CENTER]);
}
function value_39285(a0) { // fn#39285, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:30495, offset: 0x010de490, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.canBeUnread() && a0.hasUnread();
}, false);
}
function value_39287(a0) { // fn#39287, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:30618, offset: 0x010de4e7, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.canBeUnread() && a0.hasUnreadOrMentions();
}, false);
}
function value_39289(a0) { // fn#39289, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:30748, offset: 0x010de53e, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.canTrackUnreads() && a0.hasUnread();
}, false);
}
function value_39291(a0) { // fn#39291, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:30873, offset: 0x010de595, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.isForumPostUnread();
}, false);
}
function value_39293(a0) { // fn#39293, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:30982, offset: 0x010de5df, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.canBeUnread() ? a0.unreadCount : 0;
}, 0);
}
function value_39295(a0) { // fn#39295, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:31101, offset: 0x010de634, size: 105 bytes, params: 2, frame: 19
var environment;
let value = a1;
const r7 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
const value2 = env1_79.getValue(a0, r7, function(a0) {
return a0.canHaveMentions() ? a0.getMentionCount() : 0;
}, 0);
return (importDefault(8876) /* metro dependency 8876: isChangelogChannel */)(a0) && value2 > 0 ? 1 : value2;
}
function value_39297(a0) { // fn#39297, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:31267, offset: 0x010de6bb, size: 76 bytes, params: 2, frame: 18
var environment;
let value = a1;
const r6 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
const CHANNEL = ReadStateTypes.CHANNEL;
return r6 === CHANNEL && env1_79.getValue(a0, r6, function(a0) {
return a0.isMentionLowImportance;
}, false);
}
function value_39299(a0, a1, a2, a3, a4) { // fn#39299, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:31407, offset: 0x010de712, size: 93 bytes, params: 6, frame: 17
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
const env0_3 = a3;
const env0_4 = a4;
const binding = env1_79;
const getValue = binding.getValue;
const id = a0.id;
const CHANNEL = ReadStateTypes.CHANNEL;
return Reflect.apply(getValue, binding, [id, CHANNEL, _fun39300, {'mentionCount': 0, 'unread': false,
'isMentionLowImportance': false}]);
}
function value_39301(a0) { // fn#39301, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:31602, offset: 0x010de798, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.hasRecentlyVisitedAndRead();
}, false);
}
function value_39303(a0) { // fn#39303, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:31717, offset: 0x010de7e2, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.canBeUnread() ? a0.ackMessageId : null;
}, null);
}
function value_39305(a0) { // fn#39305, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:31850, offset: 0x010de837, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.canTrackUnreads() ? a0._ackMessageId : null;
}, null);
}
function value_39307(a0) { // fn#39307, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:31979, offset: 0x010de88c, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.lastMessageId;
}, null);
}
function value_39309(a0) { // fn#39309, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:32090, offset: 0x010de8d2, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.lastMessageTimestamp;
}, 0);
}
function value_39311(a0) { // fn#39311, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:32201, offset: 0x010de918, size: 44 bytes, params: 2, frame: 17
const binding = env1_79;
const getValue = binding.getValue;
const CHANNEL = ReadStateTypes.CHANNEL;
return Reflect.apply(getValue, binding, [a0, CHANNEL, function(a0) {
return a0.lastPinTimestamp;
}, null]);
}
function value_39313(a0) { // fn#39313, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:32315, offset: 0x010de94f, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.canTrackUnreads() ? a0.oldestUnreadMessageId : null;
}, null);
}
function value_39315(a0) { // fn#39315, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:32463, offset: 0x010de9a4, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.canTrackUnreads() ? a0.oldestUnreadTimestamp : 0;
}, 0);
}
function value_39317(a0) { // fn#39317, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:32592, offset: 0x010de9f9, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0.estimated;
}, false);
}
function value_39319(a0) { // fn#39319, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:32692, offset: 0x010dea3f, size: 59 bytes, params: 2, frame: 17
var environment;
let value = a1;
const r5 = value !== undefined ? value : ReadStateTypes.CHANNEL;
value = environment.__proto__;
return env1_79.getValue(a0, r5, function(a0) {
return a0._persisted;
}, false);
}
function value_39321(a0) { // fn#39321, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:32791, offset: 0x010dea85, size: 44 bytes, params: 2, frame: 17
const binding = env1_79;
const getValue = binding.getValue;
const CHANNEL = ReadStateTypes.CHANNEL;
return Reflect.apply(getValue, binding, [a0, CHANNEL, function(a0) {
return a0.canBeUnread() && a0.lastPinTimestamp > a0.ackPinTimestamp;
}, false]);
}
function value_39323(a0, a1, a2) { // fn#39323, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:32930, offset: 0x010dead3, size: 157 bytes, params: 4, frame: 16
let value = environment.__proto__;
let binding = env1_79;
let get = binding.get;
const value2 = Reflect.apply(get, binding, [a1]);
binding = env1_79;
get = binding.get;
if (Reflect.apply(get, binding, [a0])._persisted === true) {
return false;
}
if (value2.ackMessageIdAtChannelSelect == null) {
return false;
}
const defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
if (defaultImport.compare(a0, value2.ackMessageIdAtChannelSelect) <= 0) {
return false;
}
const guildJoinedAtTime = getGuildJoinedAtTime(a2);
value = defaultImport;
return value.extractTimestamp(a0) > guildJoinedAtTime;
}
function value_39324(a0) { // fn#39324, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:33191, offset: 0x010deb70, size: 41 bytes, params: 2, frame: 12
const env0_0 = a0;
env1_79.forEach(_fun39325);
return [];
}
function value_39326(a0) { // fn#39326, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:33618, offset: 0x010decbd, size: 29 bytes, params: 2, frame: 11
const binding = env1_79;
const getGuildSentinels = binding.getGuildSentinels;
return Reflect.apply(getGuildSentinels, binding, [a0]).unreadsSentinel;
}
function value_39327() { // fn#39327, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:33713, offset: 0x010decda, size: 19 bytes, params: 1, frame: 9
return env1_79.getMentionChannelIds();
}
function value_39328(a0) { // fn#39328, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:33791, offset: 0x010deced, size: 67 bytes, params: 2, frame: 14
const currentUser = UserStore.getCurrentUser();
const value3 = null;
const id = value3 == currentUser ? undefined : currentUser.id;
return value3 == id ? value3 : env1_79.get(id, a0).ackMessageId;
}
function value_39329(a0, a1) { // fn#39329, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:33924, offset: 0x010ded30, size: 92 bytes, params: 3, frame: 11
var r0;
let value = environment.__proto__;
if (env1_79.get(a0).snapshot == null) {
value = value.takeSnapshot();
r0 = value;
} else if (global.Date.now() - value.snapshot.takenAt > a1) {
value = value.takeSnapshot();
r0 = value;
} else {
r0 = value.snapshot;
}
return r0;
}
function value_39330(a0) { // fn#39330, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:34079, offset: 0x010ded8c, size: 25 bytes, params: 2, frame: 11
return env1_73.getAllChannelIdsForWindowId(a0);
}
function _fun39333(a0) { // fn#39333, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:34822, offset: 0x010df0a2, size: 496 bytes, params: 2, frame: 19
var defaultImport;
var defaultImport2;
let value = a0;
const r5 = value.read_state_type ?? ReadStateTypes.CHANNEL;
const CHANNEL = ReadStateTypes.CHANNEL;
const r3 = r5 === CHANNEL ? value : {id: value.id, read_state_type: value.read_state_type,
mention_count: value.badge_count, last_message_id: value.last_acked_id};
value = env1_79.get(r3.id, r5);
value._persisted = true;
const mention_count = r3.mention_count;
const value4 = 0;
value._mentionCount = mention_count ?? value4;
value.flags = r3.flags;
value.lastViewed = r3.last_viewed;
const basicChannel = ChannelStore.getBasicChannel(r3.id);
if (basicChannel == null) {
if (value.ackedWhileCached) {
defaultImport2 = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
if (defaultImport2.compare(value.ackMessageId, r3.last_message_id) === -1) {
value.ackMessageId = r3.last_message_id;
}
} else {
value.ackMessageId = r3.last_message_id;
}
} else if (isThread(basicChannel.type)) {
if (r3.last_message_id == null) {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value.ackMessageId = defaultImport.fromTimestamp(getThreadAckMessageTimestamp(basicChannel.guild_id,
basicChannel.id));
} else if (value4 !== r3.last_message_id) {
if (value.ackedWhileCached) {
defaultImport2 = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
if (defaultImport2.compare(value.ackMessageId, r3.last_message_id) === -1) {
value.ackMessageId = r3.last_message_id;
}
} else {
value.ackMessageId = r3.last_message_id;
}
} else {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value.ackMessageId = defaultImport.fromTimestamp(getThreadAckMessageTimestamp(basicChannel.guild_id,
basicChannel.id));
}
} else if (value.ackedWhileCached) {
defaultImport2 = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
if (defaultImport2.compare(value.ackMessageId, r3.last_message_id) === -1) {
value.ackMessageId = r3.last_message_id;
}
} else {
value.ackMessageId = r3.last_message_id;
}
value.ackedWhileCached = undefined;
value.ackPinTimestamp = parseTimestamp(r3.last_pin_timestamp);
let _mentionChannels = env1_79._mentionChannels;
_mentionChannels.delete(value.channelId);
if (value._mentionCount > value4 && value.canHaveMentions()) {
_mentionChannels = env1_79._mentionChannels;
_mentionChannels.add(value.channelId);
}
}
function _fun39334() { // fn#39334, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:36219, offset: 0x010df292, size: 134 bytes, params: 1, frame: 19
var r2;
var r9;
var value5;
var read_state_type;
var CHANNEL;
var binding;
var get;
var id;
var value6;
var shouldDeleteReadState;
var value7;
const entries = readState.entries;
const value2 = generateOldThreadCutoff();
const value3 = _createForOfIteratorHelperLoose_39151(entries);
const value4 = value3();
let done = value4.done;
if (!done) {
r2 = value4;
while (true) {
value5 = r2.value;
read_state_type = value5.read_state_type;
if (read_state_type != null) {
r9 = read_state_type;
} else {
CHANNEL = ReadStateTypes.CHANNEL;
r9 = CHANNEL;
}
binding = env1_79;
get = binding.get;
id = value5.id;
value6 = Reflect.apply(get, binding, [id, r9]);
shouldDeleteReadState = value6.shouldDeleteReadState;
if (!Reflect.apply(shouldDeleteReadState, value6, [value2])) {
continue;
}
env1_80(value6);
value7 = value3();
done = value7.done;
if (done) {
break;
}
r2 = value7;
continue;
}
}
}
function _fun39337(a0) { // fn#39337, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:36838, offset: 0x010df38f, size: 71 bytes, params: 2, frame: 13
const value2 = env1_79.get(a0.channelId);
value2.deserializeForOverlay(a0);
const type = value2.type;
const CHANNEL = ReadStateTypes.CHANNEL;
if (type === CHANNEL) {
value2.rebuildChannelState();
}
}
function _fun39339(a0) { // fn#39339, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:37044, offset: 0x010df405, size: 194 bytes, params: 2, frame: 19
var r32;
var map;
const r3 = a0.type ?? ReadStateTypes.CHANNEL;
a0.type = r3;
let _readStates = env1_79._readStates;
const value2 = _readStates.get(r3);
if (value2 != null) {
r32 = value2;
} else {
map = new global.Map();
}
const set = r32.set;
const channelId = a0.channelId;
const typeUtilsModule = require(1392) /* metro dependency 1392: TypeUtils */;
Reflect.apply(set, r32, [channelId, typeUtilsModule.dangerouslyCast(a0, env1_79)]);
_readStates = env1_79._readStates;
if (!_readStates.has(r3)) {
env1_79._readStates.set(r3, r32);
}
}
function _fun39341(a0) { // fn#39341, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:37342, offset: 0x010df557, size: 61 bytes, params: 2, frame: 12
if (a0.guildId === guild.id && a0.shouldDeleteReadState(env0_1)) {
a0.delete(false);
}
}
function _fun39357(a0) { // fn#39357, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:44226, offset: 0x010e02ec, size: 222 bytes, params: 2, frame: 16
var binding;
var get;
var id;
var value2;
var hasJoined;
var value3;
let value = environment.__proto__;
if (ALL_CHANNEL_TYPES.has(a0.type)) {
binding = env1_79;
get = binding.get;
id = a0.id;
value2 = Reflect.apply(get, binding, [id]);
value2.lastMessageId = a0.lastMessageId;
value2.lastPinTimestamp = parseTimestamp(a0.lastPinTimestamp);
value2._isThread = true;
value2._isActiveThread = true;
hasJoined = JoinedThreadsStore.hasJoined;
id = a0.id;
value2._isJoinedThread = Reflect.apply(hasJoined, JoinedThreadsStore, [id]);
if (a0.isForumPost()) {
binding = env1_79;
value3 = binding.get(a0.parent_id);
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value = value.compare(value3.lastMessageId, a0.id);
if (value < 0) {
value3.lastMessageId = a0.id;
}
}
}
}
function _fun39361(a0, a1) { // fn#39361, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:45169, offset: 0x010e0464, size: 171 bytes, params: 3, frame: 16
var r0;
var value3;
var value4;
if (a1.has(env0_0.windowId)) {
if (a0 == null) {
r0 = false;
} else {
value3 = environment.__proto__;
value4 = env1_79.get(a0);
if (!(env0_0.focused || value4.hasUnread())) {
value4.oldestUnreadMessageIdStale = true;
}
r0 = tryAck({section: AnalyticsSections.CHANNEL, object: AnalyticsObjects.ACK_WINDOW_FOCUS,
objectType: AnalyticsObjectTypes.ACK_AUTOMATIC}, a0);
}
if (r0) {
}
}
}
function _handleBulkAck(a0, a1, a2) { // fn#39365, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:45750, owner: BULK_ACK._handleBulkAck, offset: 0x010e05a0, size: 109 bytes, params: 4, frame: 16
var binding;
var push;
var value2;
var items2;
a0.forEach(_fun39366);
if (a1 === CURRENT_APP_CONTEXT) {
binding = env1_70;
push = binding.push;
value2 = a0.map(function(a0) {
return {channel_id: a0.channelId, message_id: a0.messageId, read_state_type: a0.readStateType};
});
items2 = [];
arraySpread(items2, value2, 0, a0);
apply(push, items2, binding, a0);
if (!env1_71) {
processBulkAckQueue(a2);
}
}
}
function _fun39368(a0) { // fn#39368, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:46106, offset: 0x010e0686, size: 49 bytes, params: 2, frame: 14
var r0;
var binding;
let value = a0.messageId != null;
if (value) {
value = environment.__proto__;
binding = env1_81;
value = binding.hasUnreadOrMentions(a0.channelId, a0.readStateType);
r0 = value;
} else {
r0 = value;
}
return r0;
}
function _fun39382(a0) { // fn#39382, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:49447, offset: 0x010e0d34, size: 107 bytes, params: 2, frame: 16
var binding;
var Math;
let value = environment.__proto__;
value = Reflect.apply((importDefault(21) /* metro dependency 21: SnowflakeUtils */).compare, value,
[env0_0.ackMessageId, a0]);
if (value < 0) {
binding = env0_0;
Math = global.Math;
binding.mentionCount = Math.max(env0_0.mentionCount - 1, 0);
}
}
function _fun39164() { // fn#39164, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:5052, offset: 0x010da1a7, size: 92 bytes, params: 1, frame: 13
const HTTP = env3_0(env3_2[47]).HTTP;
const post = HTTP.post;
const BULK_ACK = env3_44.BULK_ACK;
return Reflect.apply(post, HTTP, [{url: BULK_ACK, body: {read_states: env0_0}, oldFormErrors: true,
rejectWithError: false}]);
}
function _fun39174(a0) { // fn#39174, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:24278, offset: 0x010da809, size: 238 bytes, params: 2, frame: 19
var binding;
var value2;
var defaultImport;
if (ALL_CHANNEL_TYPES.has(a0.type)) {
binding = env2_79;
value2 = binding.get(a0.id);
value2.lastMessageId = a0.lastMessageId;
value2.lastPinTimestamp = parseTimestamp(a0.lastPinTimestamp);
value2._isThread = true;
value2._isActiveThread = true;
value2._isJoinedThread = a0.member != null;
if (value2.ackMessageId == null) {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value2.ackMessageId = defaultImport.fromTimestamp(getThreadAckMessageTimestamp(env0_0.id, a0.id));
}
if (value2.ackPinTimestamp == null) {
value2.ackPinTimestamp = getThreadAckMessageTimestamp(env0_0.id, a0.id);
}
}
}
function _fun39176(a0) { // fn#39176, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:24990, offset: 0x010da9db, size: 122 bytes, params: 2, frame: 18
var binding;
let value = environment.__proto__.__proto__;
const defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
const compare = defaultImport.compare;
let id = a0.id;
if (Reflect.apply(compare, defaultImport, [id, env0_1]) > 0) {
id = a0.id;
}
value = defaultImport;
if (value.compare(a0.id, env0_2) > 0) {
binding = env0_0;
env0_0 = typeof binding === 'bigint' ? binding + 1n : +binding + 1;
}
}
function _fun39179(a0) { // fn#39179, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:25651, offset: 0x010daabc, size: 222 bytes, params: 2, frame: 15
var r2;
var type;
var value;
var Date;
var value2;
var date;
var time;
var defaultImport;
var binding;
var mentionCount;
let since = a0.since;
if (since != null) {
type = a0.type;
value = environment.__proto__.__proto__;
if (type === RelationshipTypes.PENDING_INCOMING) {
Date = global.Date;
since = a0.since;
value2 = Object.create(Date.prototype, {constructor: {value: Date}});
date = new Date(since);
time = (date instanceof Object ? date : value2).getTime();
if (env0_0.ackMessageId != null) {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
r2 = defaultImport.extractTimestamp(env0_0.ackMessageId);
} else {
r2 = 0;
}
if (r2 < time) {
binding = env0_0;
mentionCount = binding.mentionCount;
binding.mentionCount = typeof mentionCount === 'bigint' ? mentionCount + 1n : +mentionCount + 1;
binding = env0_0;
binding.lastMessageId = (importDefault(21) /* metro dependency 21: SnowflakeUtils */).fromTimestamp(time);
}
}
}
}
function _fun39192(a0) { // fn#39192, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:28272, offset: 0x010db1c3, size: 72 bytes, params: 2, frame: 14
const mergeServerChannelsBinding = mergeServerChannels;
const value2 = a0.map(function(a0) {
return a0.thread;
});
mergeServerChannelsBinding(value2.filter((require(1360) /* metro dependency 1360: GlobalUtils */).isNotNullish));
}
function _fun39232(a0) { // fn#39232, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:11871, offset: 0x010dc4a1, size: 91 bytes, params: 2, frame: 6
var id;
var id2;
let mentionCountBinding = mentionCount;
if (mentionCountBinding > 0) {
id2 = a0.author.id;
id = env0_2?.id;
if (id2 !== id) {
mentionCountBinding = mentionCount;
env0_1 = typeof mentionCountBinding === 'bigint' ? mentionCountBinding - 1n : +mentionCountBinding - 1;
return undefined;
}
if (mentionCount !== 0) {
return undefined;
}
id = a0.id;
} else {
if (mentionCount !== 0) {
return undefined;
}
id = a0.id;
}
return false;
}
function _fun39236(a0) { // fn#39236, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:12658, offset: 0x010dc6c4, size: 211 bytes, params: 2, frame: 16
var r1;
var binding;
var unreadCount;
var mentionCount;
if (env0_4) {
binding = env0_0;
binding.oldestUnreadMessageId = binding._oldestUnreadMessageId ?? a0.id;
} else {
result = a0.id === env0_0._ackMessageId;
}
const defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
if (defaultImport.extractTimestamp(a0.id) > env0_3) {
binding = env0_0;
unreadCount = binding.unreadCount;
binding.unreadCount = typeof unreadCount === 'bigint' ? unreadCount + 1n : +unreadCount + 1;
binding = env0_1;
if (binding && shouldBadgeMessage(a0, env0_2)) {
binding = env0_0;
mentionCount = binding.mentionCount;
binding.mentionCount = typeof mentionCount === 'bigint' ? mentionCount + 1n : +mentionCount + 1;
}
r1 = env0_6 ?? a0.id;
}
}
function _fun39238(a0) { // fn#39238, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:13341, offset: 0x010dc858, size: 134 bytes, params: 2, frame: 18
var defaultImport;
var compare;
var id;
var binding;
let value = environment.__proto__.__proto__;
if (isEventUpcoming(a0)) {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
compare = defaultImport.compare;
id = a0.id;
if (Reflect.apply(compare, defaultImport, [id, env0_1]) > 0) {
id = a0.id;
}
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
compare = value.compare;
id = a0.id;
if (Reflect.apply(compare, value, [id, env0_0]) > 0) {
binding = env0_2;
env0_2 = typeof binding === 'bigint' ? binding + 1n : +binding + 1;
}
}
}
function _fun39250() { // fn#39250, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:16220, offset: 0x010dce4e, size: 86 bytes, params: 1, frame: 14
const HTTP = (require(507) /* metro dependency 507: HTTPUtils */).HTTP;
const post = HTTP.post;
const PINS_ACK = Endpoints.PINS_ACK;
return Reflect.apply(post, HTTP, [{'url': null, 'oldFormErrors': true, 'rejectWithError': true,
url: Reflect.apply(PINS_ACK, Endpoints, [env0_0.channelId])}]);
}
function _fun39252() { // fn#39252, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:17032, offset: 0x010dcfed, size: 95 bytes, params: 1, frame: 14
var binding;
const type = env0_0.type;
const CHANNEL = ReadStateTypes.CHANNEL;
if (type === CHANNEL) {
binding = env0_0;
binding._ack(location, trackAnalytics);
} else {
env0_0._nonChannelAck();
}
binding = env0_0;
binding.outgoingAck = null;
binding.outgoingAckTimer = null;
}
function _fun39257() { // fn#39257, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:17975, offset: 0x010dd23d, size: 126 bytes, params: 1, frame: 19
const HTTP = (require(507) /* metro dependency 507: HTTPUtils */).HTTP;
const post = HTTP.post;
const MESSAGE_ACK = Endpoints.MESSAGE_ACK;
const binding = env0_0;
return Reflect.apply(post, HTTP, [{url: Reflect.apply(MESSAGE_ACK, Endpoints, [binding.channelId, outgoingAck]),
body: {token: env2_68, last_viewed: binding.lastViewed, flags: env0_6}, oldFormErrors: true,
rejectWithError: true}]);
}
function _fun39258(a0) { // fn#39258, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:18134, offset: 0x010dd2bb, size: 183 bytes, params: 2, frame: 16
var environment;
var value;
var token;
if (a0 != null) {
value = environment.__proto__.__proto__;
if (env2_68 === env0_5 && env0_4 === AuthenticationStore.getId()) {
token = a0.body.token;
}
importDefault(dependencyMap[44]).dispatch({type: 'MESSAGE_ACKED'});
if (require) {
value = require(dependencyMap[56]);
value = value(dependencyMap[55], dependencyMap.paths);
value.then(_fun39259);
}
}
}
function _fun39262() { // fn#39262, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:18871, offset: 0x010dd4cd, size: 73 bytes, params: 1, frame: 13
const HTTP = (require(507) /* metro dependency 507: HTTPUtils */).HTTP;
return HTTP.post({url: env0_0, body: {}, oldFormErrors: true, rejectWithError: true});
}
function _fun39300(a0) { // fn#39300, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:31463, offset: 0x010de76f, size: 41 bytes, params: 2, frame: 19
return a0.getGuildChannelUnreadState(env0_0, require, importDefault, importAll, env0_4);
}
function _fun39325(a0) { // fn#39325, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:33231, offset: 0x010deb99, size: 292 bytes, params: 2, frame: 15
var binding;
var value2;
var defaultImport;
var cast;
const type = a0.type;
let value = environment.__proto__.__proto__;
const GUILD_HOME = ReadStateTypes.GUILD_HOME;
if (GUILD_HOME === type) {
if (GuildStore.getGuild(a0.channelId) != null) {
binding = env0_1;
binding.push(a0.serialize(env0_0));
}
} else if (ReadStateTypes.GUILD_EVENT === type) {
if (GuildStore.getGuild(a0.channelId) != null) {
binding = env0_1;
binding.push(a0.serialize(env0_0));
}
} else if (ReadStateTypes.GUILD_ONBOARDING_QUESTION === type) {
if (GuildStore.getGuild(a0.channelId) != null) {
binding = env0_1;
binding.push(a0.serialize(env0_0));
}
} else if (ReadStateTypes.NOTIFICATION_CENTER === type) {
value2 = undefined;
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
cast = defaultImport.cast;
value = UserStore.getCurrentUser();
value = Reflect.apply(cast, defaultImport, [value == null ? value2 : value.id]);
if (value === a0.channelId) {
binding = env0_1;
binding.push(a0.serialize(env0_0));
}
} else if (ReadStateTypes.MESSAGE_REQUESTS === type) {
value2 = undefined;
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
cast = defaultImport.cast;
value = UserStore.getCurrentUser();
value = Reflect.apply(cast, defaultImport, [value == null ? value2 : value.id]);
if (value === a0.channelId) {
binding = env0_1;
binding.push(a0.serialize(env0_0));
}
} else {
binding = env0_1;
binding.push(a0.serialize(env0_0));
}
}
function _fun39366({channelId, messageId, readStateType}) { // fn#39366, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:45792, offset: 0x010e060d, size: 84 bytes, params: 2, frame: 14
const value = environment.__proto__.__proto__;
env2_79.get(channelId, readStateType).ack({'messageId': null, 'local': true, 'immediate': null, 'force': null,
'isExplicitUserAction': true, 'trackAnalytics': false, messageId: messageId, immediate: undefined,
force: undefined});
}
function _fun39259({default: property}) { // fn#39259, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4783:18265, offset: 0x010dd372, size: 48 bytes, params: 2, frame: 14
property(env1_0.channelId, env1_1 ?? ({}));
}