Files
discord-decomp/modules/links/LinkAnalyticsUtils.tsx
T
2026-11-01 12:12:55 +02:00

89 lines
3.1 KiB
TypeScript

// Metro module 8205 (f8206).
import { AnalyticEvents } from "../../Constants";
import ValidationUtils from "../../utils/ValidationUtils";
import URLUtils from "../../utils/URLUtils";
import { tryParseChannelPath } from "./LinkUtils";
import AnalyticsUtils from "../../utils/AnalyticsUtils";
let c5213_4 = {
MESSAGE: "Discord Message Link",
CHANNEL: "Discord Channel Link",
SERVER_INVITE: "Discord Server Invite",
GIFT: "Discord Gift Link",
UNKNOWN: "Unknown",
DISCOVERY: "Discord Discovery Link"
};
let c5213_5 = [(a0) => ValidationUtils.isInvite(a0) ? c5213_4.SERVER_INVITE : null, (a0) => {
const r9 = URLUtils.safeParseWithQuery(a0);
if (r9 == null) {
return null;
}
const r15 = tryParseChannelPath(r9.path);
const r16 = r15 == null;
let r17 = null;
if (!r16) {
const { guildId, channelId, messageId } = r15;
r17 = guildId != null && (channelId != null && messageId != null) ? c5213_4.MESSAGE : guildId != null && channelId != null ? c5213_4.CHANNEL : c5213_4.UNKNOWN;
}
return r17;
}, (a0) => ValidationUtils.isDiscoveryLink(a0) ? c5213_4.DISCOVERY : null];
const r27 = {
trackDiscordLinkClicked: function trackDiscordLinkClicked(a0) {
AnalyticsUtils.track(AnalyticEvents.LINK_CLICKED, {
is_discord_link: true,
discord_link_type: a0.guildId != null && (a0.channelId != null && a0.messageId != null) ? c5213_4.MESSAGE : a0.guildId != null && a0.channelId != null ? c5213_4.CHANNEL : c5213_4.UNKNOWN
});
},
trackLinkClicked: function trackLinkClicked(a0, a1) {
let UNKNOWN;
if (!(a0 == null && a1 == null)) {
const is_discord_link = URLUtils.isDiscordUrl(a0, true) || a1 != null;
const LINK_CLICKED = AnalyticEvents.LINK_CLICKED;
let discord_link_type = null;
if (is_discord_link) {
L21: {
if (a1 == null && a0 == null) {
UNKNOWN = c5213_4.UNKNOWN;
} else if (a1 == null) {
UNKNOWN = (function getDiscordLinkTypeFromUrl(a0) {
for (const item of c5213_5) {
const r23 = item(a0);
if (r23 == null) {
continue;
}
return r23;
}
return c5213_4.UNKNOWN;
})(a0);
} else {
if (a1.guildId != null && a1.channelId != null && a1.messageId != null) {
UNKNOWN = c5213_4.MESSAGE;
break L21;
}
if (a1.guildId != null && a1.channelId != null) {
UNKNOWN = c5213_4.CHANNEL;
break L21;
}
UNKNOWN = c5213_4.UNKNOWN;
}
}
discord_link_type = UNKNOWN;
}
AnalyticsUtils.track(LINK_CLICKED, {
is_discord_link,
discord_link_type
});
}
},
trackAnnouncementMessageLinkClicked: function trackAnnouncementMessageLinkClicked(a0) {
const messageId = a0.messageId;
AnalyticsUtils.track(AnalyticEvents.ANNOUNCEMENT_MESSAGE_LINK_CLICKED, {
message_id: messageId,
channel_id: a0.channelId,
guild_id: a0.guildId,
source_channel_id: a0.sourceChannelId,
source_guild_id: a0.sourceGuildId
});
}
};
export default r27;