Files
discord-decomp/modules/guilds_bar/native/hooks/useGuildsBarCreatePendingFolderNode.tsx
T
2026-11-01 12:12:55 +02:00

40 lines
1.8 KiB
TypeScript

// Metro module 15016 (f15017).
import { useEffect } from "react";
import UserGuildJoinRequestStore from "../../../guild_member_verification/UserGuildJoinRequestStore";
import ExpandedGuildFolderStore from "../../../../stores/ExpandedGuildFolderStore";
import { useStateFromStores } from "../../../../_bundle/Module589";
import usePendingFolderGuildIds from "../../usePendingFolderGuildIds";
import { SpecialGuildsNodeIds } from "../../GuildsBarTypes";
import GuildJoinRequestActionCreators from "../../../guild_member_verification/GuildJoinRequestActionCreators";
import { createFolderNode, createGuildNode } from "../../GuildsTree";
import { intl, t } from "../../../../intl/index.native";
export default function useGuildsBarCreatePendingFolderNode() {
const stateFromStores = useStateFromStores([UserGuildJoinRequestStore], () => UserGuildJoinRequestStore.hasFetchedRequestToJoinGuilds);
const pendingFolderGuildIds = usePendingFolderGuildIds();
const stateFromStores2 = useStateFromStores([ExpandedGuildFolderStore], () => ExpandedGuildFolderStore.isFolderExpanded(SpecialGuildsNodeIds.PENDING_JOIN_REQUESTS_FOLDER));
useEffect(() => {
if (!stateFromStores) {
GuildJoinRequestActionCreators.fetchRequestToJoinGuilds();
}
}, [stateFromStores]);
if (!(pendingFolderGuildIds.length > 0)) {
return {
expanded: false,
pendingFolderNode: null
};
}
const folderNode = createFolderNode({
folderId: SpecialGuildsNodeIds.PENDING_JOIN_REQUESTS_FOLDER,
folderName: intl.string(t["scsU+l"]),
expanded: stateFromStores2,
guildIds: pendingFolderGuildIds
});
for (const item of pendingFolderGuildIds) {
folderNode.children.push(createGuildNode(item, folderNode.id));
}
return {
expanded: stateFromStores2,
pendingFolderNode: folderNode
};
};