decord/source/modules/soundboard/useSoundGrid.tsx
2026-07-23 10:11:24 +00:00

420 lines
14 KiB
TypeScript

// Module ID: 15748
// Function ID: 121507
// Name: _createForOfIteratorHelperLoose
// Dependencies: [57, 31, 1838, 3758, 1849, 4578, 4579, 1851, 4585, 4022, 15749, 566, 3776, 15750, 8402, 15751, 2]
// Exports: default, useSearchCategories
// Module 15748 (_createForOfIteratorHelperLoose)
import _slicedToArray from "_slicedToArray";
import result from "result";
import _createForOfIteratorHelperLoose from "_createForOfIteratorHelperLoose";
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import closure_7 from "_isNativeReflectConstruct";
import closure_8 from "_isNativeReflectConstruct";
import MAX_LENGTH_SOUND_NAME from "MAX_LENGTH_SOUND_NAME";
import { PremiumTypes } from "GuildFeatures";
let closure_10;
let closure_9;
const require = arg1;
function _createForOfIteratorHelperLoose(iterable) {
let closure_0 = iterable;
iterable = "undefined" !== typeof Symbol;
if (iterable) {
const _Symbol = Symbol;
iterable = iterable[Symbol.iterator];
}
if (!iterable) {
iterable = iterable[Symbol.iterator];
}
if (iterable) {
const iter = iterable.call(iterable);
const next = iter.next;
return next.bind(iter);
} else {
const _Array = Array;
let tmp = iterable;
if (!Array.isArray(iterable)) {
let tmp2;
if (iterable) {
if ("string" === typeof iterable) {
tmp2 = _arrayLikeToArray(iterable, undefined);
} else {
const toString = {}.toString;
const substr = toString.call(iterable).slice(8, -1);
let name = substr;
if (tmp3) {
name = iterable.constructor.name;
}
if ("Map" !== name) {
if ("Set" !== name) {
if ("Arguments" === name) {
let arr = _arrayLikeToArray(iterable, undefined);
} else {
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/;
}
}
tmp2 = arr;
}
const _Array2 = Array;
arr = Array.from(iterable);
const callResult = toString.call(iterable);
tmp3 = "Object" === substr && iterable.constructor;
}
}
tmp = tmp2;
if (!tmp2) {
const _TypeError = TypeError;
const typeError = new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
throw typeError;
}
}
if (tmp) {
closure_0 = tmp;
}
let c1 = 0;
return () => {
if (closure_1 >= length.length) {
let obj = { done: true };
} else {
obj = { done: false };
closure_1 = tmp3 + 1;
obj.value = length[+closure_1];
}
return obj;
};
}
}
function _arrayLikeToArray(arg0, arg1) {
let length;
if (tmp) {
length = arg0.length;
}
const ArrayResult = Array(length);
for (let num = 0; num < length; num = num + 1) {
ArrayResult[num] = arg0[num];
}
return ArrayResult;
}
function createSoundItems(items1, sortSoundsFn) {
let arr = items1;
if (null != sortSoundsFn) {
arr = sortSoundsFn(items1);
}
return arr.map((sound, index) => ({ type: outer1_0(outer1_2[8]).SoundboardSoundItemType.SOUND, sound, index }));
}
function _addSectionForPotentialSoundIds(sectionType) {
let allSounds;
let iter4;
let potentialSoundIdsForSection;
let sections;
({ sections, allSounds, potentialSoundIdsForSection } = sectionType);
sectionType = sectionType.sectionType;
let obj = {};
let items = [...sectionType.guildIds, closure_9];
for (let num = 0; num < items.length; num = num + 1) {
function _loop(soundId) {
const potentialSoundIdsForSection = soundId;
if (null != potentialSoundIdsForSection.find((arg0) => arg0 === soundId.soundId)) {
obj[soundId.soundId] = soundId;
}
}
let tmp = _createForOfIteratorHelperLoose;
items = allSounds.get(items[num]);
if (null == items) {
items = [];
}
let tmpResult = tmp(items);
let iter = tmpResult();
if (!iter.done) {
do {
let _loopResult = _loop(iter.value);
let iter2 = tmpResult();
iter = iter2;
done = iter2.done;
} while (!done);
}
}
const items1 = [];
const tmp4 = _createForOfIteratorHelperLoose(potentialSoundIdsForSection);
let iter3 = tmp4();
if (!iter3.done) {
do {
let tmp5 = obj[iter3.value];
if (null != tmp5) {
let arr = items1.push(tmp5);
}
iter4 = tmp4();
iter3 = iter4;
} while (!iter4.done);
}
const arr4 = createSoundItems(items1, sectionType.sortSoundsFn);
if (arr4.length > 0) {
obj = { key: sectionType };
obj = { type: sectionType };
obj.categoryInfo = obj;
obj.items = arr4;
sections.push(obj);
}
}
function addDefaultSection(arr, get) {
let value = get.get(closure_9);
if (null == value) {
value = closure_10;
}
let obj = { key: require(4585) /* SoundButtonOverlay */.SoundboardSoundGridSectionType.DEFAULTS };
obj = { type: require(4585) /* SoundButtonOverlay */.SoundboardSoundGridSectionType.DEFAULTS };
obj.categoryInfo = obj;
obj.items = createSoundItems(value, require(15749) /* sortSoundsOldestToNewestCreationDate */.sortSoundsOldestToNewestCreationDate);
arr.push(obj);
}
({ DEFAULT_SOUND_GUILD_ID: closure_9, EMPTY_SOUND_LIST: closure_10 } = MAX_LENGTH_SOUND_NAME);
let result = require("_createForOfIteratorHelperLoose").fileFinishedImporting("modules/soundboard/useSoundGrid.tsx");
export default function useSoundGrid(guild_id, location) {
let obj = location;
let flag = arg2;
const _require = guild_id;
if (location === undefined) {
obj = {};
}
let flag2 = obj.filterOutEmptyCurrentGuild;
if (flag2 === undefined) {
flag2 = false;
}
if (flag === undefined) {
flag = false;
}
let callback;
let first;
let c5;
let c6;
let c7;
let soundOrganizer;
let sortedGuildIdsForSoundboard;
let stateFromStoresArray;
let PremiumTypes;
let stateFromStores1;
let stateFromStores2;
let memo;
let enabled;
let items = [c7];
const stateFromStores = _require(flag[11]).useStateFromStores(items, () => _undefined3.getCurrentUser());
let obj2 = _require(flag[11]);
const isPremiumResult = flag2(flag[12]).isPremium(stateFromStores, PremiumTypes.TIER_2);
callback = isPremiumResult;
let obj3 = flag2(flag[12]);
let items1 = [soundOrganizer];
const tmp3 = callback(_require(flag[11]).useStateFromStoresArray(items1, () => {
const items = [soundOrganizer.getSounds(), soundOrganizer.getFavorites(), soundOrganizer.getFrequentlyUsedSoundIds(), soundOrganizer.isFetching()];
return items;
}), 4);
first = tmp3[0];
c5 = tmp5;
c6 = tmp6;
c7 = tmp7;
let obj4 = _require(flag[11]);
soundOrganizer = _require(flag[10]).useSoundOrganizer();
let obj5 = _require(flag[10]);
sortedGuildIdsForSoundboard = _require(flag[13]).useSortedGuildIdsForSoundboard(guild_id, false);
let obj6 = _require(flag[13]);
const items2 = [c5];
stateFromStoresArray = _require(flag[11]).useStateFromStoresArray(items2, () => {
const items = [];
const item = sortedGuildIdsForSoundboard.forEach((guildId) => {
guild = guild.getGuild(guildId);
if (null != guild) {
items.push(guild);
}
});
return items;
});
let obj7 = _require(flag[11]);
const result = flag2(flag[12]).canUseSoundboardEverywhere(stateFromStores);
PremiumTypes = result;
let obj8 = flag2(flag[12]);
const items3 = [c5];
stateFromStores1 = _require(flag[11]).useStateFromStores(items3, () => {
let guild_id;
if (null != guild_id) {
guild_id = guild_id.guild_id;
}
return _undefined.getGuild(guild_id);
});
let obj9 = _require(flag[11]);
const items4 = [c6];
const items5 = [stateFromStores1];
stateFromStores2 = _require(flag[11]).useStateFromStores(items4, () => guild_id(flag[14]).getManageResourcePermissions(stateFromStores1).canCreateExpressions, items5);
const items6 = [tmp3[2], tmp3[1]];
memo = first.useMemo(() => {
const found = _undefined2.filter((arg0) => !outer1_5.has(arg0));
return found.slice(0, 3);
}, items6);
const obj10 = _require(flag[11]);
obj = {};
let str = "useSoundGridNoFrequentlyUsed";
if (memo.length > 0) {
str = "useSoundGrid";
}
obj.location = str;
enabled = flag2(flag[15]).useConfig(obj).enabled;
const items7 = [sortedGuildIdsForSoundboard, first, tmp3[1], enabled, stateFromStores1, stateFromStores2, flag2, result, stateFromStoresArray, flag, tmp3[3], isPremiumResult, soundOrganizer, memo];
return first.useMemo(() => {
let allSounds;
let allSounds2;
let currentGuildHasAddPermissions;
let currentGuildId;
let filterOutEmptyCurrentGuild;
let hasNitro;
let iter3;
let sections;
let sortSoundsFn;
let sortSoundsFn2;
let c0 = 0;
let c1 = 0;
const items = [];
if (flag) {
outer1_16(items, first);
let obj = { categories: items };
let value = first.get(sortedGuildIdsForSoundboard);
if (null == value) {
value = stateFromStoresArray;
}
obj.availableSounds = value;
obj.isFetching = c7;
obj.soundCounts = { favoriteSoundCount: 0, unlockedCustomSoundCount: 0, lockedCustomSoundCount: 0 };
let obj8 = obj;
} else {
obj = { sections: items, guildIds: sortedGuildIdsForSoundboard, allSounds: first };
const _Array = Array;
obj.potentialSoundIdsForSection = Array.from(_undefined);
obj.sectionType = guild_id(flag[8]).SoundboardSoundGridSectionType.FAVORITES;
obj.sortSoundsFn = guild_id(flag[10]).sortSoundsOldestToNewestCreationDate;
enabled(obj);
let tmp9 = enabled;
if (enabled) {
tmp9 = memo.length > 0;
}
if (tmp9) {
obj = { sections: items, guildIds: sortedGuildIdsForSoundboard, allSounds: first, potentialSoundIdsForSection: memo, sectionType: guild_id(flag[8]).SoundboardSoundGridSectionType.FREQUENTLY_USED };
enabled(obj);
}
if (undefined !== stateFromStores1) {
const obj1 = { currentGuildHasAddPermissions: stateFromStores2, allSounds: first, filterOutEmptyCurrentGuild: c1, sortSoundsFn: soundOrganizer };
({ allSounds: allSounds2, filterOutEmptyCurrentGuild, currentGuildHasAddPermissions, sortSoundsFn: sortSoundsFn2 } = obj1);
value = allSounds2.get(stateFromStores1.id);
if (null == value) {
value = [];
}
let arr2 = memo(value, sortSoundsFn2);
let obj2 = guild_id(flag[9]);
const tmp22 = value.length < obj2.getMaxSoundboardSlots(stateFromStores1) && currentGuildHasAddPermissions;
if (!tmp24) {
obj2 = { type: guild_id(flag[8]).SoundboardSoundItemType.ADD_SOUND, guild: tmp70 };
arr2.push(obj2);
}
if (filterOutEmptyCurrentGuild) {
filterOutEmptyCurrentGuild = tmp23;
}
if (!filterOutEmptyCurrentGuild) {
const obj3 = {};
const obj4 = { type: guild_id(flag[8]).SoundboardSoundGridSectionType.GUILD, guild: tmp70, isNitroLocked: false };
obj3.categoryInfo = obj4;
obj3.key = tmp70.id;
obj3.items = arr2;
items.push(obj3);
}
tmp24 = !(value.length < obj2.getMaxSoundboardSlots(stateFromStores1) && currentGuildHasAddPermissions) && 0 !== arr2.length || filterOutEmptyCurrentGuild;
}
if (!c11) {
outer1_16(items, first);
}
const obj5 = { sections: items, guilds: stateFromStoresArray };
let id;
if (null != stateFromStores1) {
id = stateFromStores1.id;
}
obj5.currentGuildId = id;
obj5.allSounds = first;
obj5.hasNitro = c3;
obj5.sortSoundsFn = soundOrganizer;
({ sections, allSounds } = obj5);
({ currentGuildId, hasNitro, sortSoundsFn } = obj5);
const tmp44 = stateFromStores1(obj5.guilds);
const iter = tmp44();
let iter2 = iter;
if (!iter.done) {
do {
value = iter2.value;
if (value.id !== currentGuildId) {
let tmp76 = memo;
let value1 = allSounds.get(value.id);
let items1 = value1;
if (null == value1) {
items1 = [];
}
let tmp76Result = tmp76(items1, sortSoundsFn);
let tmp45 = value1;
let tmp46 = tmp76Result;
if (tmp76Result.length > 0) {
let obj6 = {};
let obj7 = {};
let tmp47 = guild_id;
let tmp48 = flag;
obj7.type = guild_id(flag[8]).SoundboardSoundGridSectionType.GUILD;
obj7.guild = value;
obj7.isNitroLocked = !hasNitro;
obj6.categoryInfo = obj7;
obj6.key = value.id;
obj6.items = tmp76Result;
let arr1 = sections.push(obj6);
let tmp50 = value1;
let tmp51 = tmp76Result;
}
}
iter3 = tmp44();
iter2 = iter3;
} while (!iter3.done);
}
if (c11) {
outer1_16(items, first);
}
const item = items.forEach((categoryInfo) => {
if (categoryInfo.categoryInfo.type === v0(flag[8]).SoundboardSoundGridSectionType.GUILD) {
if (categoryInfo.categoryInfo.isNitroLocked) {
closure_1 = closure_1 + categoryInfo.items.length;
} else {
v0 = v0 + categoryInfo.items.length;
}
}
});
obj8 = { categories: items };
const _Array2 = Array;
arr2 = Array.from(first.values());
obj8.availableSounds = arr2.flat();
obj8.isFetching = c7;
const obj9 = { favoriteSoundCount: _undefined.size, unlockedCustomSoundCount: c0, lockedCustomSoundCount: c1 };
obj8.soundCounts = obj9;
}
return obj8;
}, items7);
};
export const useSearchCategories = function useSearchCategories(categories, arg1, arg2) {
let closure_0 = categories;
let closure_1 = arg1;
let closure_2 = arg2;
let items = [categories, arg2.length, arg1];
return React.useMemo(() => {
if (length.length > 0) {
let obj = { key: categories(length[8]).SoundboardSoundGridSectionType.SEARCH };
obj = { type: categories(length[8]).SoundboardSoundGridSectionType.SEARCH };
obj.categoryInfo = obj;
obj.items = outer1_14(closure_1);
const items = [obj];
let tmp = items;
} else {
tmp = categories;
}
return tmp;
}, items);
};