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

138 lines
4.7 KiB
TypeScript

// Metro module 4380 (f4381).
import ExperimentStore from "../experiments/ExperimentStore";
import RelationshipStore from "../../stores/RelationshipStore";
import UserStore from "../../stores/UserStore";
import { ChannelTypes } from "../../Constants";
import { isNotNullish } from "../../utils/GlobalUtils";
import UserUtils from "../../utils/UserUtils";
import { intl, t } from "../../intl/index.native";
import { useStateFromStores } from "../../_bundle/Module589";
function $mk74373($env) {
return (a0) => {
let r6 = $env[0].getNickname(a0.id);
if (r6 == null) {
const r7 = $env.$parent;
r6 = (0, r7[1])(r7[2][6]).getName(a0);
}
return r6;
};
}
let env2597 = {};
export function computeChannelName(a0, a1, a2, r6 = false, r9 = false) {
let globalName;
const name = a0.name;
if (a0.isObfuscated()) {
return intl.string(t["/YzI63"]);
}
const type = a0.type;
if (ChannelTypes.DM === type) {
if (name !== "") {
return r6 ? `@${name}` : name;
}
const [r104] = a0.recipients.map(a1.getUser).filter(isNotNullish);
const r3 = r104 == null;
let r106 = "???";
if (!r3) {
if (r104.isProvisional && r104.globalName != null) {
globalName = r104.globalName;
} else {
let r111 = a2.getNickname(r104.id);
if (r111 == null) {
r111 = UserUtils.getName(r104);
}
if (r111 == null) {
r111 = "???";
}
globalName = r6 ? `@${r111}` : r111;
}
r106 = globalName;
}
return r106;
}
if (ChannelTypes.GROUP_DM === type) {
let r57 = name;
if (name === "") {
let env14152;
const recipients = a0.recipients;
const r59 = env14152 = {
$parent: env2597
};
env14152[0] = a2;
const r70 = recipients.map(a1.getUser).filter(isNotNullish).map($mk74373(r59));
r57 = r70.length > 0 ? r70.join(", ") : intl.formatToPlainString(t["9Uk8PF"], {
name: UserUtils.getName(a1.getCurrentUser())
});
}
return r57;
}
if (ChannelTypes.GUILD_ANNOUNCEMENT !== type && ChannelTypes.GUILD_TEXT !== type && ChannelTypes.GUILD_FORUM !== type && ChannelTypes.GUILD_MEDIA !== type) {
if (ChannelTypes.PUBLIC_THREAD !== type && ChannelTypes.PRIVATE_THREAD !== type && ChannelTypes.ANNOUNCEMENT_THREAD !== type && ChannelTypes.GUILD_VOICE !== type && ChannelTypes.GUILD_STAGE_VOICE !== type && ChannelTypes.GUILD_CATEGORY !== type) {
return name;
}
return r9 ? `#"${name.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"` : r6 ? a0.isThread() ? `"${name}"` : name : name;
}
return r6 ? `#${name}` : name;
}
export default function useChannelName(c14153_0, r8 = false) {
let c14153_1 = r8;
return useStateFromStores([UserStore, ExperimentStore, RelationshipStore], () => c14153_0 != null ? computeChannelName(c14153_0, UserStore, RelationshipStore, c14153_1) : null);
};
export function computeDefaultGroupDmNameFromUserIds(a0, a1, a2) {
let env14150;
const r2 = env14150 = {
$parent: env2597
};
env14150[0] = a2;
const r20 = a0.map(a1.getUser).filter(isNotNullish).map($mk74373(r2));
return r20.length > 0 ? r20.join(", ") : intl.formatToPlainString(t["9Uk8PF"], {
name: UserUtils.getName(a1.getCurrentUser())
});
}
export function computeDefaultGroupDmName({ recipients }, a1, a2) {
let env14151;
const r11 = env14151 = {
$parent: env2597
};
env14151[0] = a2;
const r21 = recipients.map(a1.getUser).filter(isNotNullish).map($mk74373(r11));
return r21.length > 0 ? r21.join(", ") : intl.formatToPlainString(t["9Uk8PF"], {
name: UserUtils.getName(a1.getCurrentUser())
});
}
export function useComputedGroupDmName(c14154_0) {
return useStateFromStores([UserStore, RelationshipStore], () => {
const r2 = c14154_0 != null;
let r13 = null;
if (r2) {
const isMultiUserDM = c14154_0.isMultiUserDM();
r13 = null;
if (isMultiUserDM) {
let env25062;
const r10 = env2597;
const recipients = c14154_0.recipients;
const r16 = env25062 = {
$parent: r10
};
env25062[0] = RelationshipStore;
const r27 = recipients.map(UserStore.getUser).filter(isNotNullish).map($mk74373(r16));
r13 = r27.length > 0 ? r27.join(", ") : intl.formatToPlainString(t["9Uk8PF"], {
name: UserUtils.getName(UserStore.getCurrentUser())
});
}
}
return r13;
});
}
export function computeGroupDmName(a0) {
if (!a0.isObfuscated() && a0.isMultiUserDM()) {
const name = a0.name;
return name !== "" ? name : void 0;
}
}
export function escapeChannelName(a0) {
return a0.replace(/\\/g, "\\\\").replace(/"/g, "\\\"");
}
export function unescapeChannelName(a0) {
return a0.replace(/\\"/g, "\"").replace(/\\\\/g, "\\");
}