208 lines
8.5 KiB
TypeScript
208 lines
8.5 KiB
TypeScript
// Metro module 9495 (f9496).
|
|
import { useMemo } from "react";
|
|
import InviteStore from "../../../stores/InviteStore";
|
|
import SortedVoiceStateStore from "../../../stores/views/SortedVoiceStateStore";
|
|
import { ChannelTypes, GuildFeatures, InviteStates, MessageFlags } from "../../../Constants";
|
|
import { LinkType } from "../../applications/message_embed/MessageEmbedConstants";
|
|
import { InviteTypes } from "../../instant_invite/Constants";
|
|
import MessageViewTrackingManager, { MessageViewTrackingType } from "../MessageViewTrackingManager";
|
|
import { useIsGuildOfficialMessagesEnabled } from "../GuildOfficialMessageUtils";
|
|
import { CodedLinkType } from "../../coded_links/CodedLink";
|
|
import { getInviteType, getGuildInviteExtendedType, GuildInviteExtendedType } from "../../instant_invite/InviteTypeUtils";
|
|
import { getVoiceChannelListInviteExperiment } from "../VoiceChannelListInviteExperiment";
|
|
import { canShowVoiceChannelListInviteEmbed } from "./renderer/row_data/embeds/coded_links/invite/VoiceChannelListInviteEmbed";
|
|
import { getInviteInstanceId } from "../../instant_invite/InviteCodeUtils";
|
|
const getVoiceInviteEmbedRenderInfo = function getVoiceInviteEmbedRenderInfo(invite) {
|
|
if (invite.state !== InviteStates.RESOLVING && invite.state !== InviteStates.EXPIRED && invite.state !== InviteStates.BANNED && invite.state !== InviteStates.ERROR) {
|
|
if (getInviteType(invite) !== InviteTypes.GUILD) {
|
|
return null;
|
|
}
|
|
if (getGuildInviteExtendedType(invite) !== GuildInviteExtendedType.VOICE_CHANNEL) {
|
|
return null;
|
|
}
|
|
const id = invite.guild?.id;
|
|
return id == null ? null : {
|
|
treatmentRendered: getVoiceChannelListInviteExperiment({
|
|
guildId: id,
|
|
location: "mobile_invite_embed_impression"
|
|
}).enabled && canShowVoiceChannelListInviteEmbed(invite)
|
|
};
|
|
}
|
|
return null;
|
|
};
|
|
export function useShouldTrackAnnouncementMessageViews({ guild, channel, messages, isMessagesReady }) {
|
|
const r2 = guild == null;
|
|
let r9 = void 0;
|
|
if (!r2) {
|
|
const features = guild.features;
|
|
r9 = features == null ? void 0 : features.has(GuildFeatures.COMMUNITY);
|
|
}
|
|
if (r9 == null) {
|
|
r9 = false;
|
|
}
|
|
let c17246_3 = r9;
|
|
return useMemo(() => {
|
|
let r8 = channel.type === ChannelTypes.GUILD_ANNOUNCEMENT && c17246_3;
|
|
let r9 = isMessagesReady;
|
|
if (isMessagesReady) {
|
|
r9 = messages.some((message) => message.messageReference != null && message.webhookId != null && message.hasFlag(MessageFlags.IS_CROSSPOST) && channel.guild_id != null);
|
|
}
|
|
if (!r8) {
|
|
r8 = r9;
|
|
}
|
|
return r8;
|
|
}, [channel.type, channel.guild_id, r9, isMessagesReady, messages]);
|
|
}
|
|
export function useShouldTrackRichPresenceInviteEmbedViews({ messages: messages2, isMessagesReady: isMessagesReady2 }) {
|
|
return useMemo(() => {
|
|
let r1 = isMessagesReady2;
|
|
if (isMessagesReady2) {
|
|
r1 = messages2.some((item) => item.activity != null && item.activity.party_id != null && item.application != null);
|
|
}
|
|
return r1;
|
|
}, [messages2, isMessagesReady2]);
|
|
}
|
|
export function handleAnnouncementMessageViewTracking(a0, a1, a2, c17248_1) {
|
|
let c17248_2;
|
|
const guildId = a2;
|
|
if (a1 && a2 != null) {
|
|
const r4 = [];
|
|
c17248_2 = r4;
|
|
a0.forEach(({ message }) => {
|
|
const r14 = message.messageReference?.guild_id != null && message.webhookId != null && message.hasFlag(MessageFlags.IS_CROSSPOST);
|
|
L24: {
|
|
if (!message.hasFlag(MessageFlags.EPHEMERAL)) {
|
|
if (c17248_1.type !== ChannelTypes.GUILD_ANNOUNCEMENT && !r14) {
|
|
break L24;
|
|
}
|
|
c17248_2.push({
|
|
type: MessageViewTrackingType.ANNOUNCEMENT,
|
|
messageId: r14 && message.messageReference != null ? message.messageReference.message_id : message.id,
|
|
channelId: c17248_1.id,
|
|
guildId,
|
|
sourceChannelId: r14 && message.messageReference != null ? message.messageReference.channel_id : c17248_1.id,
|
|
sourceGuildId: r14 ? message.messageReference?.guild_id != null ? message.messageReference.guild_id : guildId : guildId
|
|
});
|
|
}
|
|
}
|
|
});
|
|
MessageViewTrackingManager.handleMessageListVisibilityChange(r4, MessageViewTrackingType.ANNOUNCEMENT);
|
|
}
|
|
}
|
|
export function handleRichPresenceInviteEmbedViewTracking(a0, a1, guildId2, c17249_1) {
|
|
let c17249_2;
|
|
if (a1) {
|
|
const r4 = [];
|
|
c17249_2 = r4;
|
|
a0.forEach(({ message }) => {
|
|
if (!(message.hasFlag(MessageFlags.EPHEMERAL) || message.activity == null || message.activity.party_id == null || message.application == null)) {
|
|
c17249_2.push({
|
|
type: MessageViewTrackingType.APP_EMBED,
|
|
messageId: message.id,
|
|
channelId: c17249_1.id,
|
|
guildId: guildId2,
|
|
applicationId: message.application.id,
|
|
linkType: LinkType.RICH_PRESENCE_INVITE
|
|
});
|
|
}
|
|
});
|
|
MessageViewTrackingManager.handleMessageListVisibilityChange(r4, MessageViewTrackingType.APP_EMBED);
|
|
}
|
|
}
|
|
export function useShouldTrackOfficialMessageViews({ guild, messages: messages3, isMessagesReady: isMessagesReady3 }) {
|
|
let r14 = guild?.id;
|
|
if (r14 == null) {
|
|
r14 = null;
|
|
}
|
|
const isGuildOfficialMessagesEnabled = useIsGuildOfficialMessagesEnabled(r14, "useShouldTrackOfficialMessageViews");
|
|
return useMemo(() => {
|
|
let r0 = isGuildOfficialMessagesEnabled;
|
|
if (isGuildOfficialMessagesEnabled) {
|
|
r0 = isMessagesReady3;
|
|
}
|
|
if (r0) {
|
|
r0 = messages3.some((item) => item.hasFlag(MessageFlags.IS_GUILD_OFFICIAL));
|
|
}
|
|
return r0;
|
|
}, [isGuildOfficialMessagesEnabled, isMessagesReady3, messages3]);
|
|
}
|
|
export function handleOfficialMessageViewTracking(a0, a1, a2, c17251_1) {
|
|
let c17251_2;
|
|
const guildId3 = a2;
|
|
if (a1 && a2 != null) {
|
|
const r4 = [];
|
|
c17251_2 = r4;
|
|
a0.forEach(({ message }) => {
|
|
const hasFlag = message.hasFlag(MessageFlags.EPHEMERAL);
|
|
if (hasFlag ? !hasFlag : message.hasFlag(MessageFlags.IS_GUILD_OFFICIAL)) {
|
|
c17251_2.push({
|
|
type: MessageViewTrackingType.OFFICIAL_MESSAGE,
|
|
messageId: message.id,
|
|
channelId: c17251_1.id,
|
|
guildId: guildId3
|
|
});
|
|
}
|
|
});
|
|
MessageViewTrackingManager.handleMessageListVisibilityChange(r4, MessageViewTrackingType.OFFICIAL_MESSAGE);
|
|
}
|
|
}
|
|
export function useShouldTrackVoiceInviteEmbedViews({ messages: messages4, isMessagesReady: isMessagesReady4 }) {
|
|
return useMemo(() => {
|
|
let r0 = isMessagesReady4;
|
|
if (isMessagesReady4) {
|
|
r0 = messages4.some((item) => item.codedLinks.some((codedLink) => codedLink.type === CodedLinkType.INVITE));
|
|
}
|
|
return r0;
|
|
}, [messages4, isMessagesReady4]);
|
|
}
|
|
export function handleVoiceInviteEmbedViewTracking(a0, a1, guildId4, c17253_1) {
|
|
let c17253_2;
|
|
if (a1) {
|
|
const r4 = [];
|
|
c17253_2 = r4;
|
|
a0.forEach(({ message }) => {
|
|
if (!message.hasFlag(MessageFlags.EPHEMERAL)) {
|
|
for (const codedLink of message.codedLinks) {
|
|
const r41 = codedLink;
|
|
if (codedLink.type === CodedLinkType.INVITE) {
|
|
const invite = InviteStore.getInvite(r41.code);
|
|
if (invite != null) {
|
|
const voiceInviteEmbedRenderInfo = getVoiceInviteEmbedRenderInfo(invite);
|
|
if (voiceInviteEmbedRenderInfo != null) {
|
|
let r59 = invite.channel?.id;
|
|
if (r59 == null) {
|
|
r59 = null;
|
|
}
|
|
const inviteChannelId = r59;
|
|
let r64 = invite.guild?.id;
|
|
if (r64 == null) {
|
|
r64 = null;
|
|
}
|
|
const inviteGuildId = r64;
|
|
const hasActiveStream = inviteChannelId != null && inviteGuildId != null && SortedVoiceStateStore.getVoiceStatesForChannelAlt(inviteChannelId, inviteGuildId).some((item) => item.voiceState.selfStream);
|
|
let inviteInstanceId = getInviteInstanceId(r41.code, message.id);
|
|
if (inviteInstanceId == null) {
|
|
inviteInstanceId = null;
|
|
}
|
|
c17253_2.push({
|
|
type: MessageViewTrackingType.VOICE_INVITE_EMBED,
|
|
messageId: message.id,
|
|
channelId: c17253_1.id,
|
|
guildId: guildId4,
|
|
inviteCode: r41.code,
|
|
inviteGuildId,
|
|
inviteChannelId,
|
|
inviteInstanceId,
|
|
treatmentRendered: voiceInviteEmbedRenderInfo.treatmentRendered,
|
|
hasActiveStream
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
MessageViewTrackingManager.handleMessageListVisibilityChange(r4, MessageViewTrackingType.VOICE_INVITE_EMBED);
|
|
}
|
|
}
|