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

179 lines
6.6 KiB
TypeScript

// Metro module 4418 (f4419).
import ChannelStore from "../../stores/ChannelStore";
import GuildMemberStore from "../../stores/GuildMemberStore";
import GuildRoleStore from "../../stores/GuildRoleStore";
import GuildStore from "../../stores/GuildStore";
import RelationshipStore from "../../stores/RelationshipStore";
import UserStore from "../../stores/UserStore";
import Module38 from "../../_bundle/Module38";
import { useStateFromStores } from "../../_bundle/Module589";
import UserUtils from "../../utils/UserUtils";
import useDisplayNameStyles from "../display_name_styles/hooks/useDisplayNameStyles";
let useNullableUserAuthor, getUserAuthor, computeMessageAuthor;
const useNullableMessageAuthor = function useNullableMessageAuthor(a0) {
let id, guild_id, colorRoleId;
const stateFromStores = useStateFromStores([ChannelStore], () => a0 != null ? ChannelStore.getChannel(a0.channel_id) : null);
id = a0 == null ? void 0 : a0.author?.id;
guild_id = stateFromStores?.guild_id;
const stateFromStores2 = useStateFromStores([GuildMemberStore], () => guild_id == null ? null : id == null ? null : GuildMemberStore.getMember(guild_id, id));
let r38 = useStateFromStores([UserStore], () => UserStore.getUser(id), [id]);
if (a0 == null ? void 0 : a0.author.bot) {
r38 = a0?.author;
}
const name = UserUtils.useName(r38);
const stateFromStores3 = useStateFromStores([GuildStore], () => GuildStore.getGuild(guild_id), [guild_id]);
colorRoleId = stateFromStores2?.colorRoleId;
const stateFromStores4 = useStateFromStores([GuildRoleStore], () => guild_id != null ? colorRoleId != null ? GuildRoleStore.getRole(guild_id, colorRoleId) : void 0 : void 0, [guild_id, colorRoleId]);
const stateFromStores5 = useStateFromStores([RelationshipStore], () => id != null ? (stateFromStores == null ? void 0 : stateFromStores.isPrivate()) ? RelationshipStore.getNickname(id) : null : null);
const styles = useDisplayNameStyles({
userId: id,
guildId: guild_id
});
return a0 == null ? null : computeMessageAuthor({
user: a0.author,
channel: stateFromStores,
guild: stateFromStores3,
memberColorRole: stateFromStores4,
userName: name,
member: stateFromStores2,
friendNickname: stateFromStores5,
displayNameStyles: styles
});
};
useNullableUserAuthor = function useNullableUserAuthor(a0, a1) {
let colorRoleId2;
const id2 = a0?.id;
const guild_id2 = a1?.guild_id;
const stateFromStores2 = useStateFromStores([GuildMemberStore], () => guild_id2 == null ? null : id2 == null ? null : GuildMemberStore.getMember(guild_id2, id2));
const stateFromStores3 = useStateFromStores([GuildStore], () => GuildStore.getGuild(guild_id2), [guild_id2]);
colorRoleId2 = stateFromStores2?.colorRoleId;
const stateFromStores4 = useStateFromStores([GuildRoleStore], () => guild_id2 != null ? colorRoleId2 != null ? GuildRoleStore.getRole(guild_id2, colorRoleId2) : void 0 : void 0, [guild_id2, colorRoleId2]);
const stateFromStores5 = useStateFromStores([RelationshipStore], () => {
const r1 = id2 != null;
let r2 = null;
if (r1) {
r2 = (a1 == null ? void 0 : a1.isPrivate()) ? RelationshipStore.getNickname(id2) : null;
}
return r2;
});
return computeMessageAuthor({
user: a0,
channel: a1,
guild: stateFromStores3,
memberColorRole: stateFromStores4,
member: stateFromStores2,
userName: UserUtils.useName(a0),
friendNickname: stateFromStores5,
displayNameStyles: a0?.displayNameStyles
});
};
getUserAuthor = function getUserAuthor(a0, a1) {
const id3 = a0?.id;
const guild_id3 = a1?.guild_id;
const guild = GuildStore.getGuild(guild_id3);
const r16 = guild_id3 == null;
const member = r16 ? null : id3 == null ? null : GuildMemberStore.getMember(guild_id3, id3);
return computeMessageAuthor({
user: a0,
channel: a1,
guild,
memberColorRole: guild_id3 != null ? member?.colorRoleId != null ? GuildRoleStore.getRole(guild_id3, member.colorRoleId) : void 0 : void 0,
member,
friendNickname: id3 != null ? a1 != null ? a1.isPrivate() ? RelationshipStore.getNickname(id3) : null : null : null,
displayNameStyles: a0?.displayNameStyles
});
};
computeMessageAuthor = function computeMessageAuthor(a0) {
let r24;
const { user, channel, guild, memberColorRole, member } = a0;
let userName = a0.userName;
let friendNickname = a0.friendNickname;
const displayNameStyles = a0.displayNameStyles;
const r0 = user == null;
let nick2 = "???";
if (!r0) {
if (userName == null) {
userName = UserUtils.getName(user);
}
nick2 = userName;
}
const id3 = user?.id;
L28: {
if (id3 != null && channel != null) {
if (guild?.id == null) {
if (friendNickname == null) {
friendNickname = nick2;
}
r24 = {
nick: friendNickname,
colorString: null,
colorStrings: null,
displayNameStyles
};
break L28;
}
if (member == null) {
r24 = {
nick: nick2,
colorString: null,
colorStrings: null,
displayNameStyles
};
break L28;
}
let nick = member.nick;
if (nick == null) {
nick = nick2;
}
const name = memberColorRole?.name;
const id4 = memberColorRole?.id;
let primaryGuild = user.primaryGuild;
if (primaryGuild == null) {
primaryGuild = void 0;
}
r24 = {
nick,
colorString: member.colorString,
colorStrings: member.colorStrings,
colorRoleName: name,
colorRoleId: id4,
iconRoleId: member.iconRoleId,
guildMemberAvatar: member.avatar,
guildMemberAvatarDecoration: member.avatarDecoration,
primaryGuild,
guildId: guild.id,
authorId: user.id,
displayNameStyles
};
} else {
r24 = {
nick: nick2,
colorString: null,
colorStrings: null,
displayNameStyles
};
}
}
return r24;
};
export default function useMessageNickAndColor(a0, a1) {
let r3 = a1;
const nullableMessageAuthor = useNullableMessageAuthor(a0);
Module38(nullableMessageAuthor != null, "Result cannot be null because the message is not null");
if (a1 == null) {
r3 = nullableMessageAuthor;
}
return r3;
};
export { useNullableMessageAuthor };
export function getMessageAuthor(a0) {
return getUserAuthor(a0.author, ChannelStore.getChannel(a0.channel_id));
}
export function useUserNickAndColor(a0, a1) {
const nullableUserAuthor = useNullableUserAuthor(a0, a1);
Module38(true, "Result cannot be null because user and channel are not null");
return nullableUserAuthor;
}
export { useNullableUserAuthor };
export { getUserAuthor };