2026-07-23 10:11:24 +00:00
// Module ID: 15748
// Function ID: 121507
2026-07-20 16:05:17 +00:00
// Name: _createForOfIteratorHelperLoose
2026-07-23 10:11:24 +00:00
// Dependencies: [57, 31, 1838, 3758, 1849, 4578, 4579, 1851, 4585, 4022, 15749, 566, 3776, 15750, 8402, 15751, 2]
2026-07-20 16:05:17 +00:00
// Exports: default, useSearchCategories
2026-07-23 10:11:24 +00:00
// 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 ) {
2026-07-20 16:05:17 +00:00
const _Symbol = Symbol ;
2026-07-23 10:11:24 +00:00
iterable = iterable [ Symbol . iterator ] ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if ( ! iterable ) {
iterable = iterable [ Symbol . iterator ] ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if ( iterable ) {
const iter = iterable . call ( iterable ) ;
2026-07-20 16:05:17 +00:00
const next = iter . next ;
return next . bind ( iter ) ;
} else {
const _Array = Array ;
2026-07-23 10:11:24 +00:00
let tmp = iterable ;
if ( ! Array . isArray ( iterable ) ) {
2026-07-20 16:05:17 +00:00
let tmp2 ;
2026-07-23 10:11:24 +00:00
if ( iterable ) {
if ( "string" === typeof iterable ) {
tmp2 = _arrayLikeToArray ( iterable , undefined ) ;
2026-07-20 16:05:17 +00:00
} else {
const toString = { } . toString ;
2026-07-23 10:11:24 +00:00
const substr = toString . call ( iterable ) . slice ( 8 , - 1 ) ;
2026-07-20 16:05:17 +00:00
let name = substr ;
if ( tmp3 ) {
2026-07-23 10:11:24 +00:00
name = iterable . constructor . name ;
2026-07-20 16:05:17 +00:00
}
if ( "Map" !== name ) {
if ( "Set" !== name ) {
if ( "Arguments" === name ) {
2026-07-23 10:11:24 +00:00
let arr = _arrayLikeToArray ( iterable , undefined ) ;
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/ ;
2026-07-20 16:05:17 +00:00
}
}
tmp2 = arr ;
}
const _Array2 = Array ;
2026-07-23 10:11:24 +00:00
arr = Array . from ( iterable ) ;
const callResult = toString . call ( iterable ) ;
tmp3 = "Object" === substr && iterable . constructor ;
2026-07-20 16:05:17 +00:00
}
}
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 ) {
2026-07-23 10:11:24 +00:00
closure_0 = tmp ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
let c1 = 0 ;
2026-07-20 16:05:17 +00:00
return ( ) = > {
2026-07-23 10:11:24 +00:00
if ( closure_1 >= length . length ) {
2026-07-20 16:05:17 +00:00
let obj = { done : true } ;
} else {
obj = { done : false } ;
closure_1 = tmp3 + 1 ;
2026-07-23 10:11:24 +00:00
obj . value = length [ + closure_1 ] ;
2026-07-20 16:05:17 +00:00
}
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 ) ;
}
2026-07-23 10:11:24 +00:00
return arr . map ( ( sound , index ) = > ( { type : outer1_0 ( outer1_2 [ 8 ] ) . SoundboardSoundItemType . SOUND , sound , index } ) ) ;
2026-07-20 16:05:17 +00:00
}
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 ;
2026-07-23 10:11:24 +00:00
if ( null != potentialSoundIdsForSection . find ( ( arg0 ) = > arg0 === soundId . soundId ) ) {
2026-07-20 16:05:17 +00:00
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 ;
2026-07-23 10:11:24 +00:00
done = iter2 . done ;
2026-07-20 16:05:17 +00:00
} 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 ;
}
2026-07-23 10:11:24 +00:00
let obj = { key : require ( 4585 ) /* SoundButtonOverlay */ . SoundboardSoundGridSectionType . DEFAULTS } ;
obj = { type : require ( 4585 ) /* SoundButtonOverlay */ . SoundboardSoundGridSectionType . DEFAULTS } ;
2026-07-20 16:05:17 +00:00
obj . categoryInfo = obj ;
2026-07-23 10:11:24 +00:00
obj . items = createSoundItems ( value , require ( 15749 ) /* sortSoundsOldestToNewestCreationDate */ . sortSoundsOldestToNewestCreationDate ) ;
2026-07-20 16:05:17 +00:00
arr . push ( obj ) ;
}
2026-07-23 10:11:24 +00:00
( { DEFAULT_SOUND_GUILD_ID : closure_9 , EMPTY_SOUND_LIST : closure_10 } = MAX_LENGTH_SOUND_NAME ) ;
let result = require ( "_createForOfIteratorHelperLoose" ) . fileFinishedImporting ( "modules/soundboard/useSoundGrid.tsx" ) ;
2026-07-20 16:05:17 +00:00
export default function useSoundGrid ( guild_id , location ) {
let obj = location ;
let flag = arg2 ;
2026-07-23 10:11:24 +00:00
const _require = guild_id ;
2026-07-20 16:05:17 +00:00
if ( location === undefined ) {
obj = { } ;
}
let flag2 = obj . filterOutEmptyCurrentGuild ;
if ( flag2 === undefined ) {
flag2 = false ;
}
if ( flag === undefined ) {
flag = false ;
}
let callback ;
2026-07-23 10:11:24 +00:00
let first ;
let c5 ;
let c6 ;
let c7 ;
let soundOrganizer ;
2026-07-20 16:05:17 +00:00
let sortedGuildIdsForSoundboard ;
let stateFromStoresArray ;
let PremiumTypes ;
2026-07-23 10:11:24 +00:00
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 ) ;
2026-07-20 16:05:17 +00:00
callback = isPremiumResult ;
2026-07-23 10:11:24 +00:00
let obj3 = flag2 ( flag [ 12 ] ) ;
let items1 = [ soundOrganizer ] ;
const tmp3 = callback ( _require ( flag [ 11 ] ) . useStateFromStoresArray ( items1 , ( ) = > {
2026-07-20 16:05:17 +00:00
const items = [ soundOrganizer . getSounds ( ) , soundOrganizer . getFavorites ( ) , soundOrganizer . getFrequentlyUsedSoundIds ( ) , soundOrganizer . isFetching ( ) ] ;
return items ;
} ) , 4 ) ;
2026-07-23 10:11:24 +00:00
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 , ( ) = > {
2026-07-20 16:05:17 +00:00
const items = [ ] ;
const item = sortedGuildIdsForSoundboard . forEach ( ( guildId ) = > {
2026-07-23 10:11:24 +00:00
guild = guild . getGuild ( guildId ) ;
2026-07-20 16:05:17 +00:00
if ( null != guild ) {
items . push ( guild ) ;
}
} ) ;
return items ;
} ) ;
2026-07-23 10:11:24 +00:00
let obj7 = _require ( flag [ 11 ] ) ;
const result = flag2 ( flag [ 12 ] ) . canUseSoundboardEverywhere ( stateFromStores ) ;
2026-07-20 16:05:17 +00:00
PremiumTypes = result ;
2026-07-23 10:11:24 +00:00
let obj8 = flag2 ( flag [ 12 ] ) ;
const items3 = [ c5 ] ;
stateFromStores1 = _require ( flag [ 11 ] ) . useStateFromStores ( items3 , ( ) = > {
2026-07-20 16:05:17 +00:00
let guild_id ;
2026-07-23 10:11:24 +00:00
if ( null != guild_id ) {
guild_id = guild_id . guild_id ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
return _undefined . getGuild ( guild_id ) ;
2026-07-20 16:05:17 +00:00
} ) ;
2026-07-23 10:11:24 +00:00
let obj9 = _require ( flag [ 11 ] ) ;
const items4 = [ c6 ] ;
2026-07-20 16:05:17 +00:00
const items5 = [ stateFromStores1 ] ;
2026-07-23 10:11:24 +00:00
stateFromStores2 = _require ( flag [ 11 ] ) . useStateFromStores ( items4 , ( ) = > guild_id ( flag [ 14 ] ) . getManageResourcePermissions ( stateFromStores1 ) . canCreateExpressions , items5 ) ;
2026-07-20 16:05:17 +00:00
const items6 = [ tmp3 [ 2 ] , tmp3 [ 1 ] ] ;
2026-07-23 10:11:24 +00:00
memo = first . useMemo ( ( ) = > {
const found = _undefined2 . filter ( ( arg0 ) = > ! outer1_5 . has ( arg0 ) ) ;
2026-07-20 16:05:17 +00:00
return found . slice ( 0 , 3 ) ;
} , items6 ) ;
2026-07-23 10:11:24 +00:00
const obj10 = _require ( flag [ 11 ] ) ;
2026-07-20 16:05:17 +00:00
obj = { } ;
let str = "useSoundGridNoFrequentlyUsed" ;
if ( memo . length > 0 ) {
str = "useSoundGrid" ;
}
obj . location = str ;
2026-07-23 10:11:24 +00:00
enabled = flag2 ( flag [ 15 ] ) . useConfig ( obj ) . enabled ;
2026-07-20 16:05:17 +00:00
const items7 = [ sortedGuildIdsForSoundboard , first , tmp3 [ 1 ] , enabled , stateFromStores1 , stateFromStores2 , flag2 , result , stateFromStoresArray , flag , tmp3 [ 3 ] , isPremiumResult , soundOrganizer , memo ] ;
2026-07-23 10:11:24 +00:00
return first . useMemo ( ( ) = > {
2026-07-20 16:05:17 +00:00
let allSounds ;
let allSounds2 ;
let currentGuildHasAddPermissions ;
let currentGuildId ;
let filterOutEmptyCurrentGuild ;
let hasNitro ;
let iter3 ;
let sections ;
let sortSoundsFn ;
let sortSoundsFn2 ;
2026-07-23 10:11:24 +00:00
let c0 = 0 ;
let c1 = 0 ;
2026-07-20 16:05:17 +00:00
const items = [ ] ;
if ( flag ) {
2026-07-23 10:11:24 +00:00
outer1_16 ( items , first ) ;
2026-07-20 16:05:17 +00:00
let obj = { categories : items } ;
let value = first . get ( sortedGuildIdsForSoundboard ) ;
if ( null == value ) {
value = stateFromStoresArray ;
}
obj . availableSounds = value ;
2026-07-23 10:11:24 +00:00
obj . isFetching = c7 ;
obj . soundCounts = { favoriteSoundCount : 0 , unlockedCustomSoundCount : 0 , lockedCustomSoundCount : 0 } ;
2026-07-20 16:05:17 +00:00
let obj8 = obj ;
} else {
obj = { sections : items , guildIds : sortedGuildIdsForSoundboard , allSounds : first } ;
const _Array = Array ;
2026-07-23 10:11:24 +00:00
obj . potentialSoundIdsForSection = Array . from ( _undefined ) ;
2026-07-20 16:05:17 +00:00
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 ) {
2026-07-23 10:11:24 +00:00
const obj1 = { currentGuildHasAddPermissions : stateFromStores2 , allSounds : first , filterOutEmptyCurrentGuild : c1 , sortSoundsFn : soundOrganizer } ;
2026-07-20 16:05:17 +00:00
( { 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 ) ;
}
2026-07-23 10:11:24 +00:00
tmp24 = ! ( value . length < obj2 . getMaxSoundboardSlots ( stateFromStores1 ) && currentGuildHasAddPermissions ) && 0 !== arr2 . length || filterOutEmptyCurrentGuild ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if ( ! c11 ) {
outer1_16 ( items , first ) ;
2026-07-20 16:05:17 +00:00
}
const obj5 = { sections : items , guilds : stateFromStoresArray } ;
let id ;
if ( null != stateFromStores1 ) {
id = stateFromStores1 . id ;
}
obj5 . currentGuildId = id ;
obj5 . allSounds = first ;
2026-07-23 10:11:24 +00:00
obj5 . hasNitro = c3 ;
2026-07-20 16:05:17 +00:00
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 ) {
2026-07-23 10:11:24 +00:00
let tmp76 = memo ;
2026-07-20 16:05:17 +00:00
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 = { } ;
2026-07-23 10:11:24 +00:00
let tmp47 = guild_id ;
let tmp48 = flag ;
obj7 . type = guild_id ( flag [ 8 ] ) . SoundboardSoundGridSectionType . GUILD ;
2026-07-20 16:05:17 +00:00
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 ) ;
}
2026-07-23 10:11:24 +00:00
if ( c11 ) {
outer1_16 ( items , first ) ;
2026-07-20 16:05:17 +00:00
}
const item = items . forEach ( ( categoryInfo ) = > {
2026-07-23 10:11:24 +00:00
if ( categoryInfo . categoryInfo . type === v0 ( flag [ 8 ] ) . SoundboardSoundGridSectionType . GUILD ) {
2026-07-20 16:05:17 +00:00
if ( categoryInfo . categoryInfo . isNitroLocked ) {
closure_1 = closure_1 + categoryInfo . items . length ;
} else {
2026-07-23 10:11:24 +00:00
v0 = v0 + categoryInfo . items . length ;
2026-07-20 16:05:17 +00:00
}
}
} ) ;
obj8 = { categories : items } ;
const _Array2 = Array ;
arr2 = Array . from ( first . values ( ) ) ;
obj8 . availableSounds = arr2 . flat ( ) ;
2026-07-23 10:11:24 +00:00
obj8 . isFetching = c7 ;
const obj9 = { favoriteSoundCount : _undefined.size , unlockedCustomSoundCount : c0 , lockedCustomSoundCount : c1 } ;
2026-07-20 16:05:17 +00:00
obj8 . soundCounts = obj9 ;
}
return obj8 ;
} , items7 ) ;
} ;
export const useSearchCategories = function useSearchCategories ( categories , arg1 , arg2 ) {
2026-07-23 10:11:24 +00:00
let closure_0 = categories ;
let closure_1 = arg1 ;
let closure_2 = arg2 ;
let items = [ categories , arg2 . length , arg1 ] ;
2026-07-20 16:05:17 +00:00
return React . useMemo ( ( ) = > {
2026-07-23 10:11:24 +00:00
if ( length . length > 0 ) {
let obj = { key : categories ( length [ 8 ] ) . SoundboardSoundGridSectionType . SEARCH } ;
obj = { type : categories ( length [ 8 ] ) . SoundboardSoundGridSectionType . SEARCH } ;
2026-07-20 16:05:17 +00:00
obj . categoryInfo = obj ;
2026-07-23 10:11:24 +00:00
obj . items = outer1_14 ( closure_1 ) ;
2026-07-20 16:05:17 +00:00
const items = [ obj ] ;
let tmp = items ;
} else {
2026-07-23 10:11:24 +00:00
tmp = categories ;
2026-07-20 16:05:17 +00:00
}
return tmp ;
} , items ) ;
} ;