Files
2026-07-28 01:06:53 +03:00

319 lines
18 KiB
TypeScript

/* Metro module 7157; source: modules/forums/tracking/TrackingUtils.tsx; dependencies: [4790, 3786, 7158, 6898, 1379, 4645, 3784, 4644, 6865, 661, 1386, 1243, 7159, 1388, 7160, 21, 7161, 2] */
import ChannelStore from '../../../stores/ChannelStore.tsx'; /* Metro dependency 1379 */
import PermissionStore from '../../../stores/PermissionStore.tsx'; /* Metro dependency 3784 */
import JoinedThreadsStore from '../../threads/JoinedThreadsStore.tsx'; /* Metro dependency 3786 */
import UploadAttachmentStore from '../../../stores/UploadAttachmentStore.tsx'; /* Metro dependency 4644 */
import DraftStore from '../../../stores/DraftStore.tsx'; /* Metro dependency 4645 */
import ActiveThreadsStore from '../../threads/ActiveThreadsStore.tsx'; /* Metro dependency 4790 */
import ForumPostMessagesStore from '../ForumPostMessagesStore.tsx'; /* Metro dependency 6865 */
import ThreadMessageStore from '../../threads/ThreadMessageStore.tsx'; /* Metro dependency 6898 */
import ThreadMembersStore from '../../threads/ThreadMembersStore.tsx'; /* Metro dependency 7158 */
import ForumSessionAnalyticsManager from './ForumSessionAnalyticsManager.tsx'; /* Metro dependency 7159 */
import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ConstantsModule from '../../../Constants.tsx'; /* Metro dependency 661 */
import * as ThreadConstantsModule from '../../threads/ThreadConstants.tsx'; /* Metro dependency 1243 */
import * as ChannelConstantsModule from '../../channel/ChannelConstants.tsx'; /* Metro dependency 1386 */
import * as ThreadSortOrderModule from '../../../external/discord_common/js/shared/shared-constants/ThreadSortOrder.tsx'; /* Metro dependency 1388 */
import * as DraftStoreModule from '../../../stores/DraftStore.tsx'; /* Metro dependency 4645 */
function _fun57405(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#57405, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:6, offset: 0x013e5341, size: 456 bytes, params: 8, frame: 22
const env0_0 = require;
const getForumChannelSessionId2 = getForumChannelSessionId;
const getForumPostAttachmentMimetypes2 = getForumPostAttachmentMimetypes;
const collectForumAnalyticsMetadata2 = collectForumAnalyticsMetadata;
let Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(FileImportTrackerModule).fileFinishedImporting('modules/forums/tracking/TrackingUtils.tsx');
exports.getForumChannelSessionId = getForumChannelSessionId2;
exports.convertSortOrderToReadableString = convertSortOrderToReadableString;
exports.getForumPostDraftNumAttachments = function(a0) {
return UploadAttachmentStore.getUploads(a0, DraftType.FirstThreadMessage).length;
};
exports.getForumPostDraftAppliedTagIds = getForumPostDraftAppliedTagIds;
exports.getNumActiveThreads = function(a0, a1) {
var Object = global.Object;
return Object.keys(ActiveThreadsStore.getThreadsForParent(a0, a1)).length;
};
exports.getForumPostAttachmentMimetypes = getForumPostAttachmentMimetypes2;
exports.collectForumAnalyticsMetadata = collectForumAnalyticsMetadata2;
exports.collectForumPostAnalyticsMetadata = collectForumPostAnalyticsMetadata;
function getForumChannelSessionId(a0) { // fn#57406, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:299, offset: 0x013e5509, size: 41 bytes, params: 2, frame: 11
return (ForumSessionAnalyticsManager).getForumChannelSessionId(a0);
}
function getForumPostFirstMessage(a0) { // fn#57407, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:380, offset: 0x013e5532, size: 43 bytes, params: 2, frame: 11
const message = ForumPostMessagesStore.getMessage(a0);
return message.loaded ? message.firstMessage : null;
}
function getForumPostUniqueReactionCount(a0) { // fn#57408, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:483, offset: 0x013e555d, size: 41 bytes, params: 2, frame: 11
const forumPostFirstMessage = getForumPostFirstMessage(a0);
return forumPostFirstMessage == null ? 0 : forumPostFirstMessage.reactions.length;
}
function getForumPostReactionCount(a0) { // fn#57409, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:597, offset: 0x013e5586, size: 57 bytes, params: 2, frame: 14
var r0;
let value = getForumPostFirstMessage(a0);
const value2 = 0;
if (value == null) {
r0 = value2;
} else {
value = value.reactions.reduce(function(a0, a1) {
return a0 + a1.count;
}, value2);
r0 = value;
}
return r0;
}
function getForumPostAppliedTagIds(a0) { // fn#57411, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:727, offset: 0x013e55bf, size: 173 bytes, params: 2, frame: 16
const channel = ChannelStore.getChannel(a0);
if (channel == null) {
return [];
}
let value = ChannelStore.getChannel(channel.parent_id);
const value3 = undefined;
const availableTags = value == null ? value3 : value.availableTags;
if (value == null) {
return [];
}
if (availableTags == null) {
return [];
}
const Set = global.Set;
value = availableTags.map(function(a0) {
return a0.id;
});
const set = new Set();
const appliedTags = channel.appliedTags;
let r0 = appliedTags == null ? value3 : appliedTags.filter(_fun57413);
r0 = r0 ?? [];
return r0;
function _fun57413(a0) { // fn#57413, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:994, offset: 0x00e4010b, size: 22 bytes, params: 2, frame: 11
return env0_0.has(a0);
}
}
function getForumPostAttachmentMimetypes(a0) { // fn#57414, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:1014, offset: 0x013e566c, size: 54 bytes, params: 2, frame: 11
var r0;
let value = getForumPostFirstMessage(a0);
if (value == null) {
r0 = [];
} else {
value = value.attachments.map(function({content_type}) {
return content_type ?? 'unknown';
});
r0 = value;
}
return r0;
}
function collectForumAnalyticsMetadata({channelId, sessionId}) { // fn#57416, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:1186, offset: 0x013e56bd, size: 492 bytes, params: 2, frame: 21
var r6;
var r0;
var object;
var defaultReactionEmoji;
var value6;
var availableTags;
var permissionStoreBinding;
var defaultImport2;
var getSortOrderAnalytics;
var id;
var getLayoutAnalytics;
var getTagSettingAnalytics;
var value;
const channel = ChannelStore.getChannel(channelId);
if (channel != null) {
if (channel.isForumLikeChannel()) {
object = {};
object.forum_channel_has_guidelines = channel.topic != null && channel.topic.trim().length > 0;
defaultReactionEmoji = channel.defaultReactionEmoji;
value6 = undefined;
object.forum_channel_default_emoji_reaction_id = defaultReactionEmoji == null ? value6 : defaultReactionEmoji.emojiId;
defaultReactionEmoji = channel.defaultReactionEmoji;
object.forum_channel_default_emoji_reaction_name = defaultReactionEmoji == null ? value6 : defaultReactionEmoji.emojiName;
availableTags = channel.availableTags;
r6 = availableTags == null ? value6 : availableTags.map(function(a0) {
return a0.id;
});
r6 = r6 ?? [];
object.forum_channel_available_tag_ids = r6;
object.forum_channel_tag_required = channel.hasFlag(ChannelFlags.REQUIRE_TAG);
permissionStoreBinding = PermissionStore;
object.forum_channel_can_create_post = permissionStoreBinding.can(Permissions.SEND_MESSAGES, channel);
object.forum_channel_filter_tag_ids = (importDefault(7160) /* metro dependency 7160: ForumChannelAnalyticsManager */).getFilterTagIdsAnalytics();
defaultImport2 = importDefault(7160) /* metro dependency 7160: ForumChannelAnalyticsManager */;
getSortOrderAnalytics = defaultImport2.getSortOrderAnalytics;
id = channel.id;
object.forum_channel_sort_order = Reflect.apply(getSortOrderAnalytics, defaultImport2, [id]);
object.forum_channel_session_id = sessionId ?? getForumChannelSessionId(channel.id);
value = importDefault(7160) /* metro dependency 7160: ForumChannelAnalyticsManager */;
getLayoutAnalytics = value.getLayoutAnalytics;
id = channel.id;
object.forum_channel_layout = Reflect.apply(getLayoutAnalytics, value, [id]);
object.forum_channel_default_sort_order = channel.defaultSortOrder;
value = importDefault(7160) /* metro dependency 7160: ForumChannelAnalyticsManager */;
getTagSettingAnalytics = value.getTagSettingAnalytics;
id = channel.id;
object.forum_channel_tag_setting = Reflect.apply(getTagSettingAnalytics, value, [id]);
object.forum_channel_default_layout = channel.defaultForumLayout;
object.forum_channel_is_moderator_report_channel = channel.isModeratorReportChannel();
r0 = object;
} else {
r0 = null;
}
} else {
r0 = null;
}
return r0;
}
function convertSortOrderToReadableString(a0) { // fn#57418, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:2432, offset: 0x013e58a9, size: 153 bytes, params: 2, frame: 14
const ThreadSortOrder = (ThreadSortOrderModule).ThreadSortOrder;
const CREATION_DATE = ThreadSortOrder.CREATION_DATE;
if (CREATION_DATE === a0) {
return ThreadSortOrderReadableForAnalytics.CREATION_DATE;
}
const LATEST_ACTIVITY = ThreadSortOrder.LATEST_ACTIVITY;
if (LATEST_ACTIVITY === a0) {
return ThreadSortOrderReadableForAnalytics.LATEST_ACTIVITY;
}
const Error = global.Error;
const value = 'Unexpected sort order ' + a0;
const value2 = Object.create(Error.prototype, {constructor: {value: Error}});
const error = new Error();
throw error instanceof Object ? error : value2;
}
function getForumPostDraftAppliedTagIds(a0) { // fn#57420, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:2844, offset: 0x013e5969, size: 234 bytes, params: 2, frame: 16
const channel = ChannelStore.getChannel(a0);
if (channel == null) {
return [];
}
const channel2 = ChannelStore.getChannel(channel.parent_id);
const value4 = undefined;
const availableTags = channel2 == null ? value4 : channel2.availableTags;
if (channel2 == null) {
return [];
}
if (availableTags == null) {
return [];
}
let value = DraftStore.getThreadSettings(a0);
const r3 = (value == null ? value4 : value.appliedTags) ?? new global.Set();
const Set = global.Set;
value = availableTags.map(function(a0) {
return a0.id;
});
const set = new Set();
const Array = global.Array;
return Array.from(r3).filter(_fun57422);
function _fun57422(a0) { // fn#57422, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:3164, offset: 0x00e4010b, size: 22 bytes, params: 2, frame: 11
return env0_0.has(a0);
}
}
function collectForumPostAnalyticsMetadata({channelId, sessionId}) { // fn#57424, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7335:3454, offset: 0x013e5a85, size: 695 bytes, params: 2, frame: 21
var locked;
var r7;
var r1;
var value4;
var object;
var collectForumAnalyticsMetadataBinding;
var id;
var value5;
var threadMetadata;
var defaultImport2;
var castChannelIdAsMessageId;
var getForumPostReactionCountBinding;
var getForumPostUniqueReactionCountBinding;
var getForumPostAppliedTagIdsBinding;
var defaultImport3;
var getReadStateSnapshotAnalytics;
var value15;
var defaultImport4;
var value16;
var joinedThreadsStoreBinding;
var hasJoined;
var getForumPostAttachmentMimetypesBinding;
const channel = ChannelStore.getChannel(channelId);
if (channel != null) {
if (channel.isForumPost()) {
channelStoreBinding = ChannelStore;
value4 = channelStoreBinding.getChannel(channel.parent_id);
if (value4 != null) {
if (value4.isForumLikeChannel()) {
object = {};
collectForumAnalyticsMetadataBinding = collectForumAnalyticsMetadata;
id = value4.id;
value5 = undefined;
copyDataProperties(object, collectForumAnalyticsMetadataBinding({channelId: id,
sessionId: sessionId}),
channelId);
object['thread_approximate_member_count'] = ThreadMembersStore.getMemberCount(channelId);
object['thread_approximate_message_count'] = ThreadMessageStore.getCount(channelId);
threadMetadata = channel.threadMetadata;
object['thread_archived'] = (threadMetadata == null ? value5 : threadMetadata.archived) === true;
threadMetadata = channel.threadMetadata;
locked = threadMetadata == null ? value5 : threadMetadata.locked;
r7 = locked != null && locked;
object['thread_locked'] = r7;
threadMetadata = channel.threadMetadata;
r7 = (threadMetadata == null ? value5 : threadMetadata.autoArchiveDuration) ?? 0;
object['thread_auto_archive_duration_minutes'] = r7;
object['thread_approximate_creation_date'] = (importDefault(21) /* metro dependency 21: SnowflakeUtils */).extractTimestamp(channelId);
id = channel.id;
object['forum_post_id'] = id;
defaultImport2 = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
castChannelIdAsMessageId = defaultImport2.castChannelIdAsMessageId;
id = channel.id;
object['forum_post_first_message_id'] = Reflect.apply(castChannelIdAsMessageId, defaultImport2,
[id]);
getForumPostReactionCountBinding = getForumPostReactionCount;
id = channel.id;
object['forum_post_num_reactions'] = getForumPostReactionCountBinding(id);
getForumPostUniqueReactionCountBinding = getForumPostUniqueReactionCount;
id = channel.id;
object['forum_post_num_unique_reactions'] = getForumPostUniqueReactionCountBinding(id);
getForumPostAppliedTagIdsBinding = getForumPostAppliedTagIds;
id = channel.id;
object['forum_post_applied_tag_ids'] = getForumPostAppliedTagIdsBinding(id);
object['forum_post_is_pinned'] = channel.hasFlag(ChannelFlags.PINNED);
defaultImport3 = importDefault(7161) /* metro dependency 7161: ForumPostAnalyticsManager */;
getReadStateSnapshotAnalytics = defaultImport3.getReadStateSnapshotAnalytics;
id = channel.id;
value15 = Reflect.apply(getReadStateSnapshotAnalytics, defaultImport3, [id]);
object['forum_post_is_new'] = value15 == null ? value5 : value15.isNew;
defaultImport4 = importDefault(7161) /* metro dependency 7161: ForumPostAnalyticsManager */;
getReadStateSnapshotAnalytics = defaultImport4.getReadStateSnapshotAnalytics;
id = channel.id;
value16 = Reflect.apply(getReadStateSnapshotAnalytics, defaultImport4, [id]);
object['forum_post_is_unread'] = value16 == null ? value5 : value16.hasUnreads;
joinedThreadsStoreBinding = JoinedThreadsStore;
hasJoined = joinedThreadsStoreBinding.hasJoined;
id = channel.id;
object['forum_post_is_following'] = Reflect.apply(hasJoined, joinedThreadsStoreBinding, [id]);
getForumPostAttachmentMimetypesBinding = getForumPostAttachmentMimetypes;
id = channel.id;
object['forum_post_attachment_mimetypes'] = getForumPostAttachmentMimetypesBinding(id);
r1 = object;
} else {
r1 = null;
}
} else {
r1 = null;
}
return r1;
}
}
return null;
}
}
global.__d(_fun57405, 7157, [4790, 3786, 7158, 6898, 1379, 4645, 3784, 4644, 6865, 661, 1386, 1243, 7159, 1388,
7160, 21, 7161,
2]) /* metro module 7157, dependencies: [4790, 3786, 7158, 6898, 1379, 4645, 3784, 4644, 6865, 661, 1386, 1243, 7159, 1388, 7160, 21, 7161, 2] */;