decord/stable/source/modules/messages/native/MessageImpressionAnalyticsHelpers.tsx
github-actions 57c2214117 chore: update source for stable 347.12
Skipped 1 file(s) >100MB (GitHub limit): source/__polyfill/04xxx/module_4973.js (118.4 MB)
2026-09-29 21:26:22 +00:00

332 lines
14 KiB
TypeScript

// Module ID: 11596
// Function ID: 11597
// Name: MessageImpressionAnalyticsHelpers
// Dependencies: [19, 4772, 4812, 1074, 7957, 8010, 11597, 7541, 4776, 8009, 11598, 11599, 4773, 2]
// Exports: handleAnnouncementMessageViewTracking, handleOfficialMessageViewTracking, handleRichPresenceInviteEmbedViewTracking, handleVoiceInviteEmbedViewTracking, useShouldTrackAnnouncementMessageViews, useShouldTrackOfficialMessageViews, useShouldTrackRichPresenceInviteEmbedViews, useShouldTrackVoiceInviteEmbedViews
// Module 11596 (MessageImpressionAnalyticsHelpers)
import CodedLink from "CodedLink" /* 4776 */;
import InviteTypeUtils from "InviteTypeUtils" /* 8009 */;
import MessageViewTrackingManager from "MessageViewTrackingManager" /* 11597 */;
import noop from "module_19" /* 19 */;
import InviteStore from "InviteStore" /* 4772 */;
import SortedVoiceStateStore from "SortedVoiceStateStore" /* 4812 */;
const require = globalThis.__r;
require = fn;
function getVoiceInviteEmbedRenderInfo(state) {
if (state.state !== constants3.RESOLVING) {
if (state.state !== tmp.EXPIRED) {
if (state.state !== tmp.BANNED) {
if (state.state !== tmp.ERROR) {
if (obj5.getInviteType(state) !== InviteTypes.GUILD) {
return null;
} else {
const guildInviteExtendedType = tmp7(8009).getGuildInviteExtendedType(state);
if (guildInviteExtendedType !== tmp7(8009).GuildInviteExtendedType.VOICE_CHANNEL) {
return null;
} else {
const guild = state.guild;
let id;
if (guild != null) {
id = guild.id;
}
let tmp4 = null;
if (null != id) {
const obj = { guildId: id, location: "mobile_invite_embed_impression" };
let enabled = tmp7(11598).getVoiceChannelListInviteExperiment(obj).enabled;
if (enabled) {
enabled = tmp7(11599).canShowVoiceChannelListInviteEmbed(state);
const tmp7Result4 = tmp7(11599);
}
const obj2 = { treatmentRendered: enabled };
tmp4 = obj2;
const tmp7Result3 = tmp7(11598);
}
return tmp4;
}
const tmp7Result = tmp7(8009);
}
obj5 = InviteTypeUtils;
}
}
}
}
return null;
}
const Constants = fn(1074);
({ ChannelTypes: metroRequire, GuildFeatures: closure_7, InviteStates: closure_8, MessageFlags: closure_9 } = Constants);
const LinkType = fn(7957).LinkType;
const InviteTypes = fn(8010).InviteTypes;
const size = fn(2);
let result = size.fileFinishedImporting("modules/messages/native/MessageImpressionAnalyticsHelpers.tsx");
export const useShouldTrackAnnouncementMessageViews = function useShouldTrackAnnouncementMessageViews(messages) {
({ guild, channel } = messages);
messages = messages.messages;
const isMessagesReady = messages.isMessagesReady;
let flag;
if (guild != null) {
const features = guild.features;
if (features != null) {
flag = features.has(constants2.COMMUNITY);
}
}
if (flag == null) {
flag = false;
}
const items = [, , , , ];
({ type: arr[0], guild_id: arr[1] } = channel);
items[2] = flag;
items[3] = isMessagesReady;
items[4] = messages;
return flag.useMemo(() => {
let tmp = channel.type === constants.GUILD_ANNOUNCEMENT && flag;
let someResult = isMessagesReady;
if (isMessagesReady) {
someResult = messages.some((messageReference) => {
let hasFlagResult = null != messageReference.messageReference && null != messageReference.webhookId;
if (hasFlagResult) {
hasFlagResult = messageReference.hasFlag(constants.IS_CROSSPOST);
}
if (hasFlagResult) {
hasFlagResult = null != guild_id.guild_id;
}
return hasFlagResult;
});
}
if (!tmp) {
tmp = someResult;
}
return tmp;
}, items);
};
export const useShouldTrackRichPresenceInviteEmbedViews = function useShouldTrackRichPresenceInviteEmbedViews(messages) {
messages = messages.messages;
const isMessagesReady = messages.isMessagesReady;
const items = [messages, isMessagesReady];
return noop.useMemo(() => {
let someResult = isMessagesReady;
if (isMessagesReady) {
someResult = messages.some((activity) => null != activity.activity && null != activity.activity.party_id && null != activity.application);
}
return someResult;
}, items);
};
export const handleAnnouncementMessageViewTracking = function handleAnnouncementMessageViewTracking(arr, shouldTrackAnnouncementMessageViews, guildId, channel) {
_require = guildId;
importDefault = channel;
if (shouldTrackAnnouncementMessageViews) {
if (null != guildId) {
const items = [];
const item = arr.forEach((message) => {
message = message.message;
const messageReference = message.messageReference;
let guild_id1;
if (messageReference != null) {
guild_id1 = messageReference.guild_id;
}
let hasFlagResult = null != guild_id1 && null != message.webhookId;
if (hasFlagResult) {
hasFlagResult = message.hasFlag(constants4.IS_CROSSPOST);
}
if (!message.hasFlag(constants4.EPHEMERAL)) {
let id = type;
if (hasFlagResult) {
if (null != message.messageReference) {
let id2 = message.messageReference.channel_id;
}
if (hasFlagResult) {
const messageReference2 = message.messageReference;
let guild_id2;
if (messageReference2 != null) {
guild_id2 = messageReference2.guild_id;
}
if (null != guild_id2) {
let guild_id = message.messageReference.guild_id;
}
if (!hasFlagResult) {
const obj = { type: MessageViewTrackingManager.MessageViewTrackingType.ANNOUNCEMENT, messageId: message.id, channelId: null, guildId: null, sourceChannelId: null, sourceGuildId: null };
id = id.id;
obj.channelId = id;
obj.guildId = guildId;
obj.sourceChannelId = id2;
obj.sourceGuildId = guild_id;
message = items.push(obj);
}
const message_id = message.messageReference.message_id;
}
guild_id = guildId;
}
id2 = id.id;
}
});
const result = require("MessageViewTrackingManager").handleMessageListVisibilityChange(items, require("MessageViewTrackingManager").MessageViewTrackingType.ANNOUNCEMENT);
let obj = require("MessageViewTrackingManager");
}
}
};
export const handleRichPresenceInviteEmbedViewTracking = function handleRichPresenceInviteEmbedViewTracking(arr, shouldTrackRichPresenceInviteEmbedViews, guildId, channel) {
_require = guildId;
importDefault = channel;
if (shouldTrackRichPresenceInviteEmbedViews) {
const items = [];
const item = arr.forEach((message) => {
message = message.message;
let hasFlagResult = message.hasFlag(constants4.EPHEMERAL);
if (!hasFlagResult) {
hasFlagResult = null == message.activity;
}
if (!hasFlagResult) {
hasFlagResult = null == message.activity.party_id;
}
if (!hasFlagResult) {
hasFlagResult = null == message.application;
}
if (!hasFlagResult) {
const obj = { type: MessageViewTrackingManager.MessageViewTrackingType.APP_EMBED, messageId: message.id, channelId: id.id, guildId, applicationId: message.application.id, linkType: LinkType.RICH_PRESENCE_INVITE };
items.push(obj);
}
});
const result = require("MessageViewTrackingManager").handleMessageListVisibilityChange(items, require("MessageViewTrackingManager").MessageViewTrackingType.APP_EMBED);
let obj = require("MessageViewTrackingManager");
}
};
export const useShouldTrackOfficialMessageViews = function useShouldTrackOfficialMessageViews(isMessagesReady) {
({ guild, messages } = isMessagesReady);
isMessagesReady = isMessagesReady.isMessagesReady;
let isGuildOfficialMessagesEnabled;
let id;
if (guild != null) {
id = guild.id;
}
if (id == null) {
id = null;
}
isGuildOfficialMessagesEnabled = messages(isGuildOfficialMessagesEnabled[7]).useIsGuildOfficialMessagesEnabled(id, "useShouldTrackOfficialMessageViews");
const items = [isGuildOfficialMessagesEnabled, isMessagesReady, messages];
return noop.useMemo(() => {
let someResult = isGuildOfficialMessagesEnabled;
if (isGuildOfficialMessagesEnabled) {
someResult = isMessagesReady;
}
if (someResult) {
someResult = messages.some((hasFlag) => hasFlag.hasFlag(constants.IS_GUILD_OFFICIAL));
}
return someResult;
}, items);
};
export const handleOfficialMessageViewTracking = function handleOfficialMessageViewTracking(arr, shouldTrackOfficialMessageViews, guildId, channel) {
_require = guildId;
importDefault = channel;
if (shouldTrackOfficialMessageViews) {
if (null != guildId) {
const items = [];
const item = arr.forEach((message) => {
message = message.message;
const hasFlagResult = message.hasFlag(constants4.EPHEMERAL);
let hasFlagResult1 = !hasFlagResult;
if (!hasFlagResult) {
hasFlagResult1 = message.hasFlag(constants4.IS_GUILD_OFFICIAL);
}
if (hasFlagResult1) {
const obj = { type: MessageViewTrackingManager.MessageViewTrackingType.OFFICIAL_MESSAGE, messageId: message.id, channelId: id.id, guildId };
items.push(obj);
}
});
const result = require("MessageViewTrackingManager").handleMessageListVisibilityChange(items, require("MessageViewTrackingManager").MessageViewTrackingType.OFFICIAL_MESSAGE);
let obj = require("MessageViewTrackingManager");
}
}
};
export const useShouldTrackVoiceInviteEmbedViews = function useShouldTrackVoiceInviteEmbedViews(messages) {
messages = messages.messages;
const isMessagesReady = messages.isMessagesReady;
const items = [messages, isMessagesReady];
return noop.useMemo(() => {
let someResult = isMessagesReady;
if (isMessagesReady) {
someResult = messages.some((codedLinks) => {
codedLinks = codedLinks.codedLinks;
return codedLinks.some((type) => type.type === closure_1_0(closure_1_2[8]).CodedLinkType.INVITE);
});
}
return someResult;
}, items);
};
export const handleVoiceInviteEmbedViewTracking = function handleVoiceInviteEmbedViewTracking(arr, shouldTrackVoiceInviteEmbedViews, guildId, channel) {
_require = guildId;
importDefault = channel;
if (shouldTrackVoiceInviteEmbedViews) {
const items = [];
const item = arr.forEach((message) => {
message = message.message;
if (!message.hasFlag(constants4.EPHEMERAL)) {
const codedLinks = message.codedLinks;
const iter = codedLinks[Symbol.iterator]();
const nextResult = iter.next();
while (iter !== undefined) {
let tmp6 = nextResult;
let tmp7 = require;
if (nextResult.type === CodedLink.CodedLinkType.INVITE) {
let invite = InviteStore.getInvite(tmp6.code);
let tmp34 = invite;
if (null != invite) {
let tmp37 = getVoiceInviteEmbedRenderInfo(tmp34);
if (null != tmp37) {
let channel = tmp34.channel;
id = undefined;
if (channel != null) {
id = channel.id;
}
if (id == null) {
id = null;
}
let tmp10 = id;
let guild = tmp34.guild;
let id1;
if (guild != null) {
id1 = guild.id;
}
if (id1 == null) {
id1 = null;
}
let tmp13 = id1;
let someResult = null != tmp10;
if (someResult) {
someResult = null != tmp13;
}
if (someResult) {
let voiceStatesForChannelAlt = SortedVoiceStateStore.getVoiceStatesForChannelAlt(tmp10, tmp13);
someResult = voiceStatesForChannelAlt.some((voiceState) => voiceState.voiceState.selfStream);
}
let obj = { type: null, messageId: null, channelId: null, guildId: null, inviteCode: null, inviteGuildId: null, inviteChannelId: null, inviteInstanceId: null, treatmentRendered: null, hasActiveStream: null };
let tmp20 = someResult;
obj.type = tmp7(11597).MessageViewTrackingType.VOICE_INVITE_EMBED;
obj.messageId = message.id;
obj.channelId = id.id;
obj.guildId = guildId;
obj.inviteCode = tmp6.code;
obj.inviteGuildId = tmp13;
obj.inviteChannelId = tmp10;
let tmp7Result = tmp7(4773);
let inviteInstanceId = tmp7Result.getInviteInstanceId(tmp6.code, message.id);
if (inviteInstanceId == null) {
inviteInstanceId = null;
}
obj.inviteInstanceId = inviteInstanceId;
obj.treatmentRendered = tmp38.treatmentRendered;
obj.hasActiveStream = tmp20;
let arr = items.push(obj);
}
}
}
continue;
}
}
});
const result = require("MessageViewTrackingManager").handleMessageListVisibilityChange(items, require("MessageViewTrackingManager").MessageViewTrackingType.VOICE_INVITE_EMBED);
let obj = require("MessageViewTrackingManager");
}
};