decord/source/modules/guild_settings/native/GuildSettingsModalEmoji.tsx
2026-07-27 11:26:19 +00:00

287 lines
10 KiB
TypeScript

// Module ID: 16321
// Function ID: 127071
// Name: computeSectionItem
// Dependencies: [57, 31, 27, 1838, 16322, 33, 22, 9347, 4131, 689, 1212, 4997, 4023, 566, 8204, 4127, 16324, 16328, 1273, 16329, 5584, 5448, 1456, 5087, 2]
// Exports: default
// Module 16321 (computeSectionItem)
import _slicedToArray from "_slicedToArray";
import result from "result";
import get_ActivityIndicator from "get ActivityIndicator";
import closure_7 from "_createForOfIteratorHelperLoose";
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import jsxProd from "jsxProd";
import _createForOfIteratorHelperLoose from "_createForOfIteratorHelperLoose";
import importDefaultResult from "useNavigation";
import importDefaultResult1 from "useNavigation";
let closure_10;
let closure_11;
let closure_5;
let closure_6;
let closure_9;
const require = arg1;
function computeSectionItem(intl, length, maxEmojiSlots) {
const bound = Math.max(maxEmojiSlots - length, 0);
intl = require(1212) /* getSystemLocale */.intl;
const key = "" + intl + " - " + intl.formatToPlainString(require(1212) /* getSystemLocale */.t.sgL8sI, { count: bound }).toUpperCase();
return { type: "SECTION", key, section: key };
}
function computeEmojiItem(id) {
return { type: "EMOJI", key: id.id, emoji: id };
}
class ManageEmojisModal {
constructor(arg0) {
flag = global.disabled;
({ computeEmojiItems, contentContainerStyle } = global);
if (flag === undefined) {
flag = false;
}
c0 = flag;
guild = global.guild;
headerDescription = global.headerDescription;
onSelectRolesForEmoji = global.onSelectRolesForEmoji;
emojis = undefined;
revision = undefined;
canManageGuildExpression = undefined;
computeEmojiItems = undefined;
c8 = undefined;
useRef = undefined;
obj = require("initialize");
items = [];
items[0] = c8;
stateFromStoresObject = obj.useStateFromStoresObject(items, () => ({ emojis: _undefined.getEmojis(guild.id), revision: _undefined.getEmojiRevision(guild.id) }));
emojis = stateFromStoresObject.emojis;
revision = stateFromStoresObject.revision;
obj2 = require("canManageResource");
canManageGuildExpression = obj2.useManageResourcePermissions(guild).canManageGuildExpression;
items1 = emojis;
if (null == emojis) {
items1 = [];
}
emojiItems = computeEmojiItems(items1, guild);
computeEmojiItems = emojiItems;
tmp3 = c13();
c8 = tmp3;
useRef = emojis.useRef(revision);
items2 = [];
items2[0] = guild.id;
effect = emojis.useEffect(() => {
outer1_12(guild.id);
}, items2);
items3 = [, ];
items3[0] = guild.id;
items3[1] = revision;
effect1 = emojis.useEffect(() => {
if (ref.current < revision) {
outer1_12(guild.id);
}
ref.current = revision;
}, items3);
items4 = [, , , , , ];
items4[0] = guild.id;
items4[1] = flag;
items4[2] = emojiItems;
items4[3] = tmp3;
items4[4] = onSelectRolesForEmoji;
items4[5] = canManageGuildExpression;
items5 = [, , , , ];
items5[0] = guild;
length = undefined;
callback = emojis.useCallback((arg0) => {
let index;
let item;
({ item, index } = arg0);
let type = item.type;
if ("SECTION" === type) {
let obj = { style: _undefined.section, variant: "text-xs/bold", color: "text-default", children: item.section };
return ref(flag(headerDescription[15]).Text, obj);
} else if ("EMOJI" === type) {
type = undefined;
if (null != emojiItems[index - 1]) {
type = tmp3.type;
}
let type1;
if (null != emojiItems[index + 1]) {
type1 = tmp7.type;
}
let tmp9 = "SECTION" === type1;
if (!tmp9) {
tmp9 = index === emojiItems.length - 1;
}
obj = { emoji: item.emoji, guildId: guild.id };
let tmp15 = flag;
if (!flag) {
tmp15 = !item.emoji.available;
}
if (!tmp15) {
tmp15 = !canManageGuildExpression(item.emoji);
}
obj.disabled = tmp15;
obj.onSelectRolesForEmoji = onSelectRolesForEmoji;
obj.start = "SECTION" === type;
obj.end = tmp9;
return ref(flag(headerDescription[16]).EmojiRow, obj);
} else {
return null;
}
}, items4);
tmp7 = emojis;
if (null != emojis) {
length = emojis.length;
}
items5[1] = length;
items5[2] = headerDescription;
items5[3] = onSelectRolesForEmoji;
items5[4] = flag;
items6 = [];
items6[0] = tmp3;
callback1 = emojis.useCallback(() => {
const obj = { guild };
let length;
if (null != emojis) {
length = emojis.length;
}
let num = 0;
if (null != length) {
num = length;
}
obj.emojisLength = num;
obj.description = headerDescription;
obj.onSelectRolesForEmoji = onSelectRolesForEmoji;
obj.uploadDisabled = flag;
return closure_9(flag(headerDescription[17]).ConnectedHeaderRow, obj);
}, items5);
callback2 = emojis.useCallback(() => {
const obj = { Illustration: flag(headerDescription[19]).EmptyServerSettingsEmoji, style: _undefined.emptyState };
const intl = flag(headerDescription[10]).intl;
obj.title = intl.string(flag(headerDescription[10]).t.lxsmBd);
const intl2 = flag(headerDescription[10]).intl;
obj.body = intl2.string(flag(headerDescription[10]).t.RBbtMy);
return ref(flag(headerDescription[18]).EmptyState, obj);
}, items6);
if (null == emojis) {
tmp15 = jsxs;
tmp16 = revision;
obj = {};
obj.style = tmp3.loadingContainer;
tmp17 = useRef;
tmp18 = c0;
tmp19 = headerDescription;
num3 = 20;
items7 = [, ];
items7[0] = useRef(require("ActivityIndicator").ActivityIndicator, {});
tmp20 = useRef;
num4 = 21;
items7[1] = useRef(require("NavScrim").NavScrim, {});
obj.children = items7;
tmp14 = jsxs(revision, obj);
} else {
tmp12 = useRef;
tmp13 = canManageGuildExpression;
obj1 = {};
num = 12;
obj1.initialNumToRender = 12;
obj1.ListHeaderComponent = callback1;
obj1.ListEmptyComponent = callback2;
num2 = 4;
obj1.windowSize = 4;
obj1.data = emojiItems;
obj1.keyExtractor = tmp11;
obj1.renderItem = callback;
items8 = [, ];
items8[0] = contentContainerStyle;
items8[1] = tmp3.list;
obj1.contentContainerStyle = items8;
tmp14 = useRef(canManageGuildExpression, obj1);
}
return tmp14;
}
}
({ View: closure_5, FlatList: closure_6 } = get_ActivityIndicator);
({ jsx: closure_9, jsxs: closure_10, Fragment: closure_11 } = jsxProd);
let closure_12 = require("useNavigation").throttle(require("_updateEmoji").fetchEmoji, 1000);
let obj = { loadingContainer: { flex: 1, paddingTop: 40 }, emptyState: { paddingTop: 30 } };
obj = { paddingHorizontal: require("_createForOfIteratorHelperLoose").space.PX_12 };
obj.list = obj;
_createForOfIteratorHelperLoose = { paddingVertical: require("_createForOfIteratorHelperLoose").space.PX_16 };
obj.section = _createForOfIteratorHelperLoose;
obj.titleContainer = { paddingLeft: 16, paddingRight: 16 };
let closure_13 = _createForOfIteratorHelperLoose.createStyles(obj);
let closure_14 = require("useNavigation").memoize((arr, stateFromStores) => {
const _require = stateFromStores;
const found = arr.filter((roles) => !stateFromStores(outer1_2[11]).isRoleSubscriptionEmoji(roles, stateFromStores.id));
const mapped = found.map(computeEmojiItem);
const reversed = mapped.reverse();
const maxEmojiSlots = _require(4023).getMaxEmojiSlots(stateFromStores);
const obj2 = _require(4023);
const tmp3 = callback(importDefault(22).partition(reversed, (emoji) => !emoji.emoji.animated), 2);
const first = tmp3[0];
const intl = _require(1212).intl;
const obj3 = importDefault(22);
const intl2 = _require(1212).intl;
const tmp4 = computeSectionItem(intl.string(_require(1212).t.sMOuuS), first.length, maxEmojiSlots);
if (first.length > 0) {
const items = [tmp4];
HermesBuiltin.arraySpread(first, 1);
let items1 = items;
} else {
items1 = [];
}
const items2 = [...items1];
if (tmp3[1].length > 0) {
const items3 = [tmp5];
HermesBuiltin.arraySpread(arr3, 1);
let items4 = items3;
} else {
items4 = [];
}
HermesBuiltin.arraySpread(items4, tmp9);
return items2;
});
const result = require("get ActivityIndicator").fileFinishedImporting("modules/guild_settings/native/GuildSettingsModalEmoji.tsx");
export default function GuildSettingsModalEmoji(contentContainerStyle) {
let isLandingScreen;
let require;
({ guildId: require, isLandingScreen } = contentContainerStyle);
let obj = require(stateFromStores[13]);
const items = [closure_7];
stateFromStores = obj.useStateFromStores(items, () => outer1_7.getGuild(closure_0));
let obj1 = require(stateFromStores[22]);
const navigation = obj1.useNavigation();
const tmp3 = callback4();
const React = tmp3;
const items1 = [navigation, stateFromStores, isLandingScreen, tmp3];
const layoutEffect = React.useLayoutEffect(() => {
let tmp = isLandingScreen;
if (isLandingScreen) {
tmp = undefined !== stateFromStores;
}
if (tmp) {
let obj = {
headerTitle() {
obj = { style: outer1_4.titleContainer, children: outer2_9(outer2_0(stateFromStores[23]).NavigatorHeader, obj) };
obj = { title: outer1_2.name };
return outer2_9(outer2_5, obj);
}
};
navigation.setOptions(obj);
}
}, items1);
if (null == stateFromStores) {
return null;
} else {
const maxEmojiSlots = require(stateFromStores[12]).getMaxEmojiSlots(stateFromStores);
const intl = require(stateFromStores[10]).intl;
obj = { count: maxEmojiSlots };
obj = {};
obj1 = { guild: stateFromStores, headerDescription: intl.formatToPlainString(require(stateFromStores[10]).t.TA1BR0, obj), computeEmojiItems: closure_14, contentContainerStyle: contentContainerStyle.contentContainerStyle };
const items2 = [callback2(ManageEmojisModal, obj1), callback2(require(stateFromStores[21]).NavScrim, {})];
obj.children = items2;
return callback3(closure_11, obj);
}
};
export { computeSectionItem };
export { computeEmojiItem };
export { ManageEmojisModal };