Files
discord-decomp/modules/user_profile/hooks/useCanDM.tsx
T
2026-11-01 12:12:55 +02:00

43 lines
1.9 KiB
TypeScript

// Metro module 12214 (f12215).
import GameRelationshipStore from "../../game_relationships/GameRelationshipStore";
import LurkingStore from "../../lurker_mode/LurkingStore";
import AuthenticationStore from "../../../stores/AuthenticationStore";
import GuildMemberStore from "../../../stores/GuildMemberStore";
import RelationshipStore from "../../../stores/RelationshipStore";
import { RestrictedGuildIds, AllowGameFriendDmsInDiscord } from "../../user_settings/UserSettings";
import { useStateFromStores } from "../../../_bundle/Module589";
export default function useCanDM(c19736_0, c19736_1) {
let stateFromStores2, setting;
const stateFromStores = useStateFromStores([AuthenticationStore], () => AuthenticationStore.getId() === c19736_0);
stateFromStores2 = useStateFromStores([LurkingStore], () => c19736_1 != null && LurkingStore.isLurking(c19736_1));
setting = RestrictedGuildIds.useSetting();
return useStateFromStores([RelationshipStore, GuildMemberStore, GameRelationshipStore], () => {
let r2 = stateFromStores ? !stateFromStores : !stateFromStores2;
if (r2) {
r2 = RelationshipStore.isFriend(c19736_0) || GuildMemberStore.memberOf(c19736_0).find((item) => !setting.includes(item)) != null;
}
if (!r2) {
r2 = GameRelationshipStore.getGameFriendsForUser(c19736_0).length > 0 && AllowGameFriendDmsInDiscord.getSetting();
}
return r2;
});
};
export function canDm(a0, a1) {
const id = AuthenticationStore.getId();
const r11 = a1 != null && LurkingStore.isLurking(a1);
const r3 = id === a0;
const setting2 = RestrictedGuildIds.getSetting();
let r24 = RelationshipStore.isFriend(a0);
let r25 = r3 ? !r3 : !r11;
if (r25) {
if (!r24) {
r24 = GuildMemberStore.memberOf(a0).find((item) => !setting2.includes(item)) != null;
}
r25 = r24;
}
if (!r25) {
r25 = GameRelationshipStore.getGameFriendsForUser(a0).length > 0 && AllowGameFriendDmsInDiscord.getSetting();
}
return r25;
}