40 lines
1.8 KiB
TypeScript
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
|
|
};
|
|
};
|