decord/source/modules/guild_progress/GuildProgressHooks.tsx
2026-08-15 05:55:55 +00:00

308 lines
11 KiB
TypeScript

// Module ID: 11641
// Function ID: 11642
// Name: usePermissions
// Dependencies: [19, 1218, 1391, 1980, 4295, 1910, 11642, 4994, 4021, 676, 589, 8802, 11, 12, 5385, 2]
// Exports: useChannelsMessaged, useCompletedStates, useGuildChannelCreated, useGuildMessaged, useGuildPersonalized, useGuildPopulated, usePermissions
// Module 11641 (usePermissions)
import noop from "noop";
import fetchFingerprint from "fetchFingerprint";
import ensureGuildLoaded from "ensureGuildLoaded";
import comparator from "comparator";
import closure_8 from "comparator";
import handleInviteData from "handleInviteData";
import createGuildRecordFromRust from "createGuildRecordFromRust";
import handlePopAllLayers from "handlePopAllLayers";
import reinjectEphemerals from "reinjectEphemerals";
import getUncachedChannelPermissions from "getUncachedChannelPermissions";
import ME from "ME";
let closure_14;
let closure_15;
let closure_6;
let error;
const require = arg1;
({ GUILD_SELECTABLE_CHANNELS_KEY: closure_6, GUILD_VOCAL_CHANNELS_KEY: error } = comparator);
({ Permissions: closure_14, MessageTypes: closure_15 } = ME);
const result = require("ensureGuildLoaded").fileFinishedImporting("modules/guild_progress/GuildProgressHooks.tsx");
export const usePermissions = function usePermissions(channel, guild) {
const _require = channel;
let closure_1 = guild;
const items = [getUncachedChannelPermissions];
const items1 = [guild, channel];
return _require(589).useStateFromStoresObject(items, () => {
const obj = { canInvite: null, canManageGuild: null, canMessage: null, canCreateChannel: null };
obj[0] = channel(outer1_2[11]).canViewInviteModal(outer1_13, closure_1, channel);
let canResult = null != closure_1;
if (canResult) {
canResult = obj3.can(outer1_14.MANAGE_GUILD, tmp);
}
obj[1] = canResult;
let canResult1 = null != tmp2;
if (canResult1) {
canResult1 = obj3.can(outer1_14.SEND_MESSAGES, tmp2);
}
obj[2] = canResult1;
let canResult2 = null != tmp;
if (canResult2) {
canResult2 = obj3.can(outer1_14.MANAGE_CHANNELS, tmp);
}
obj[3] = canResult2;
return obj;
}, items1);
};
export const useGuildChannelCreated = function useGuildChannelCreated(arg0) {
const _require = arg0;
const items = [closure_8];
const items1 = [arg0];
return _require(589).useStateFromStores(items, () => {
let id;
if (guild != null) {
id = guild.id;
}
function hasNewChannel(channel) {
let tmp2 = null != closure_0;
if (tmp2) {
const obj = outer1_1(outer1_2[12]);
const extractTimestampResult = outer1_1(outer1_2[12]).extractTimestamp(channel.channel.id);
tmp2 = extractTimestampResult - outer1_1(outer1_2[12]).extractTimestamp(tmp.id) > 500;
const obj2 = outer1_1(outer1_2[12]);
}
return tmp2;
}
const channels = outer1_8.getChannels(id);
return channels[outer1_6].some(hasNewChannel) || channels[outer1_7].some(hasNewChannel);
}, items1);
};
export const useGuildPopulated = function useGuildPopulated(guild) {
const _require = guild;
const items = [ensureGuildLoaded];
let closure_1 = _require(stateFromStoresArray[10]).useStateFromStores(items, () => {
let systemChannelId;
if (guild != null) {
systemChannelId = guild.systemChannelId;
}
return outer1_5.getChannel(systemChannelId);
});
const obj = _require(stateFromStoresArray[10]);
const items1 = [reinjectEphemerals];
stateFromStoresArray = _require(stateFromStoresArray[10]).useStateFromStoresArray(items1, () => {
if (null != closure_1) {
const messages = outer1_12.getMessages(tmp.id);
let toArrayResult = messages.toArray();
} else {
toArrayResult = [];
}
return toArrayResult;
});
const obj2 = _require(stateFromStoresArray[10]);
const items2 = [handleInviteData];
const items3 = [guild, stateFromStoresArray];
return _require(stateFromStoresArray[10]).useStateFromStores(items2, () => {
let id;
if (guild != null) {
id = guild.id;
}
let num = outer1_9.getMemberCount(id);
if (num == null) {
num = 0;
}
return num > 1 || stateFromStoresArray.some((type) => type.type === constants.USER_JOIN);
}, items3);
};
export const useGuildPersonalized = function useGuildPersonalized(guild) {
const _require = guild;
const items = [handlePopAllLayers];
const stateFromStores = _require(589).useStateFromStores(items, () => handlePopAllLayers.hasLayers());
const obj = _require(589);
const items1 = [createGuildRecordFromRust];
const stateFromStores1 = _require(589).useStateFromStores(items1, () => {
let id;
if (guild != null) {
id = guild.id;
}
return outer1_10.getGuild(id);
});
let icon;
if (stateFromStores1 != null) {
icon = stateFromStores1.icon;
}
return null != icon && !stateFromStores;
};
export const useChannelsMessaged = function useChannelsMessaged(items3) {
const _require = items3;
const items = [fetchFingerprint];
let closure_1 = _require(589).useStateFromStores(items, () => id.getId());
const obj = _require(589);
const items1 = [reinjectEphemerals];
return _require(589).useStateFromStores(items1, () => callback(stateFromStoresArray[13]).some(closure_0, (id) => {
const messages = outer1_12.getMessages(id.id);
const toArrayResult = messages.toArray();
return outer1_1(outer1_2[13]).some(toArrayResult, (author) => {
let tmp = author.author.id === closure_1;
if (tmp) {
tmp = !outer1_1(outer1_2[14])(author);
}
return tmp;
});
}));
};
export const useGuildMessaged = function useGuildMessaged(arg0) {
let _require = arg0;
const items = [ensureGuildLoaded];
const stateFromStores = _require(589).useStateFromStores(items, () => {
let mutableBasicGuildChannelsForGuild = null;
if (null != closure_0) {
mutableBasicGuildChannelsForGuild = outer1_5.getMutableBasicGuildChannelsForGuild(tmp.id);
}
return mutableBasicGuildChannelsForGuild;
});
let closure_1 = stateFromStores;
const items1 = [stateFromStores];
_require = React.useMemo(() => {
if (null == callback) {
let items = [];
} else {
items = callback(stateFromStoresArray[13]).values(tmp);
const obj = callback(stateFromStoresArray[13]);
}
return items;
}, items1);
closure_1 = undefined;
const obj = _require(589);
const items2 = [fetchFingerprint];
closure_1 = _require(589).useStateFromStores(items2, () => id.getId());
const obj2 = _require(589);
const items3 = [reinjectEphemerals];
return _require(589).useStateFromStores(items3, () => callback(stateFromStoresArray[13]).some(closure_0, (id) => {
const messages = outer1_12.getMessages(id.id);
const toArrayResult = messages.toArray();
return outer1_1(outer1_2[13]).some(toArrayResult, (author) => {
let tmp = author.author.id === closure_1;
if (tmp) {
tmp = !outer1_1(outer1_2[14])(author);
}
return tmp;
});
}));
};
export const useCompletedStates = function useCompletedStates(guild) {
let obj = { guildPopulated: null, guildMessaged: null, guildPersonalized: null, guildChannelCreated: null };
let _require = guild;
let items = [ensureGuildLoaded];
let closure_1 = _require(stateFromStoresArray[10]).useStateFromStores(items, () => {
let systemChannelId;
if (guild != null) {
systemChannelId = guild.systemChannelId;
}
return outer1_5.getChannel(systemChannelId);
});
let obj2 = _require(stateFromStoresArray[10]);
let tmp = _require;
let tmp2 = stateFromStoresArray;
const items1 = [reinjectEphemerals];
stateFromStoresArray = _require(stateFromStoresArray[10]).useStateFromStoresArray(items1, () => {
if (null != closure_1) {
const messages = outer1_12.getMessages(tmp.id);
let toArrayResult = messages.toArray();
} else {
toArrayResult = [];
}
return toArrayResult;
});
const obj3 = _require(stateFromStoresArray[10]);
const items2 = [handleInviteData];
const items3 = [guild, stateFromStoresArray];
obj[0] = _require(stateFromStoresArray[10]).useStateFromStores(items2, () => {
let id;
if (guild != null) {
id = guild.id;
}
let num = outer1_9.getMemberCount(id);
if (num == null) {
num = 0;
}
return num > 1 || stateFromStoresArray.some((type) => type.type === constants.USER_JOIN);
}, items3);
_require = guild;
closure_1 = undefined;
const obj4 = _require(stateFromStoresArray[10]);
const items4 = [ensureGuildLoaded];
const stateFromStores = _require(stateFromStoresArray[10]).useStateFromStores(items4, () => {
let mutableBasicGuildChannelsForGuild = null;
if (null != closure_0) {
mutableBasicGuildChannelsForGuild = outer1_5.getMutableBasicGuildChannelsForGuild(tmp.id);
}
return mutableBasicGuildChannelsForGuild;
});
closure_1 = stateFromStores;
const items5 = [stateFromStores];
_require = React.useMemo(() => {
if (null == callback) {
let items = [];
} else {
items = callback(stateFromStoresArray[13]).values(tmp);
const obj = callback(stateFromStoresArray[13]);
}
return items;
}, items5);
closure_1 = undefined;
const obj5 = _require(stateFromStoresArray[10]);
const items6 = [fetchFingerprint];
closure_1 = _require(stateFromStoresArray[10]).useStateFromStores(items6, () => id.getId());
const obj6 = _require(stateFromStoresArray[10]);
const items7 = [reinjectEphemerals];
obj[1] = _require(stateFromStoresArray[10]).useStateFromStores(items7, () => callback(stateFromStoresArray[13]).some(closure_0, (id) => {
const messages = outer1_12.getMessages(id.id);
const toArrayResult = messages.toArray();
return outer1_1(outer1_2[13]).some(toArrayResult, (author) => {
let tmp = author.author.id === closure_1;
if (tmp) {
tmp = !outer1_1(outer1_2[14])(author);
}
return tmp;
});
}));
_require = guild;
const obj7 = _require(stateFromStoresArray[10]);
const items8 = [handlePopAllLayers];
const stateFromStores1 = _require(stateFromStoresArray[10]).useStateFromStores(items8, () => handlePopAllLayers.hasLayers());
const obj8 = _require(stateFromStoresArray[10]);
const items9 = [createGuildRecordFromRust];
const stateFromStores2 = _require(stateFromStoresArray[10]).useStateFromStores(items9, () => {
let id;
if (guild != null) {
id = guild.id;
}
return outer1_10.getGuild(id);
});
let icon;
if (stateFromStores2 != null) {
icon = stateFromStores2.icon;
}
obj[2] = null != icon && !stateFromStores1;
_require = guild;
const obj9 = _require(stateFromStoresArray[10]);
const items10 = [closure_8];
const items11 = [guild];
obj[3] = tmp(tmp2[10]).useStateFromStores(items10, () => {
let id;
if (guild != null) {
id = guild.id;
}
function hasNewChannel(channel) {
let tmp2 = null != closure_0;
if (tmp2) {
const obj = outer1_1(outer1_2[12]);
const extractTimestampResult = outer1_1(outer1_2[12]).extractTimestamp(channel.channel.id);
tmp2 = extractTimestampResult - outer1_1(outer1_2[12]).extractTimestamp(tmp.id) > 500;
const obj2 = outer1_1(outer1_2[12]);
}
return tmp2;
}
const channels = outer1_8.getChannels(id);
return channels[outer1_6].some(hasNewChannel) || channels[outer1_7].some(hasNewChannel);
}, items11);
return obj;
};