From 24fcde35fbd4bec3811b77750936471da6cd433b Mon Sep 17 00:00:00 2001 From: Wagyourtail Date: Sat, 19 Oct 2024 04:25:02 -0500 Subject: [PATCH] force child folders to top of nest --- src/plugins/betterFolders/index.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/plugins/betterFolders/index.tsx b/src/plugins/betterFolders/index.tsx index 2dde9a9be..a5c6bfb4e 100644 --- a/src/plugins/betterFolders/index.tsx +++ b/src/plugins/betterFolders/index.tsx @@ -330,9 +330,12 @@ export default definePlugin({ if (!betterFoldersId || expandedFolderIds == null) return originalTree; const newTree = new GuildsTree(); - // Children is every folder and guild which is not in a folder, this filters out only the expanded folders - newTree.root.children = originalTree.root.children.filter(guildOrFolder => expandedFolderIds.has(guildOrFolder.id)); - // Nodes is every folder and guild, even if it's in a folder, this filters out only the expanded folders and guilds inside them + // Children is every folder and guild which is not in a folder, this filters out the folders + const children = originalTree.root.children.filter(guildOrFolder => expandedFolderIds.has(guildOrFolder.id) && guildOrFolder.id !== betterFoldersId); + children.push(originalTree.root.children.find(guildOrFolder => guildOrFolder.id === betterFoldersId)); + newTree.root.children = children; + + // Nodes is every folder and guild, even if it's in a folder, this filters out folders and guilds inside them newTree.nodes = Object.fromEntries( Object.entries(originalTree.nodes) .filter(([_, guildOrFolder]: any[]) => expandedFolderIds.has(guildOrFolder.id) || expandedFolderIds.has(guildOrFolder.parentId))