Files
discord-decomp/modules/guild_onboarding/useFlattenedChannels.tsx
T
2026-11-01 12:12:55 +02:00

55 lines
2.1 KiB
TypeScript

// Metro module 5125 (f5126).
import ChannelStore from "../../stores/ChannelStore";
import Module12 from "../../_bundle/Module12";
import { isNotNullish } from "../../utils/GlobalUtils";
import { useStateFromStoresArray } from "../../_bundle/Module589";
const getFlattenedChannels = function getFlattenedChannels(a0, c14672_0, a2) {
let c14672_4, c14672_5;
let r22 = arguments[3];
if (r22 === void 0) {
r22 = false;
}
let c14672_2 = r22;
c14672_4 = void 0;
c14672_5 = void 0;
let c14672_3 = Module12(ChannelStore.getMutableGuildChannelsForGuild(a0)).values().groupBy("parent_id").value();
const r60 = Module12(a2).map((item) => item.isCategory() ? item.id : item.parent_id).filter(isNotNullish).uniq().map((item) => ChannelStore.getChannel(item)).filter(isNotNullish).sortBy("position").value();
c14672_4 = new Set(r60.map((item) => item.id));
const r70 = a2.filter((item) => !(item.isCategory() || item.parent_id != null && c14672_4.has(item.parent_id)));
c14672_5 = r70;
const r75 = Module12.sortBy(r70, (a0) => {
const isGuildVocal = a0.isGuildVocal();
const position = a0.position;
return isGuildVocal ? position + 10000 : position;
});
c14672_5 = r75;
const _loop = function _loop(a0) {
let c25356_0 = a0;
if (!c14672_2) {
c14672_5.push(a0);
}
let r20 = c14672_0.has(a0.id) ? c14672_3[a0.id] : a2.filter((item) => item.parent_id === c25356_0.id);
if (r20 == null) {
r20 = [];
}
const r10 = Module12.sortBy(r20, (a0) => {
const isGuildVocal = a0.isGuildVocal();
const position = a0.position;
return isGuildVocal ? position + 10000 : position;
});
c14672_5.push.apply(c14672_5, [...r10]);
};
for (const item of r60) {
_loop(item);
}
return r75;
};
export { getFlattenedChannels };
export function useFlattenedChannels(c14673_0, c14673_1, r4 = false) {
let c14673_2 = r4;
return useStateFromStoresArray([ChannelStore], () => {
const r3 = Array;
return getFlattenedChannels(c14673_0, c14673_1, r3.from(c14673_1).map((item) => ChannelStore.getChannel(item)).filter(isNotNullish), c14673_2);
});
}