43 lines
1.9 KiB
TypeScript
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;
|
|
}
|