From dc5ca64afa7fa4acf386ae41b378c348c731899b Mon Sep 17 00:00:00 2001 From: thororen <78185467+thororen1234@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:37:07 -0400 Subject: [PATCH] BetterFolders: Add Close Server Folder option (#4576) --- src/plugins/betterFolders/index.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/plugins/betterFolders/index.tsx b/src/plugins/betterFolders/index.tsx index f385ddcdb..b9f0c796e 100644 --- a/src/plugins/betterFolders/index.tsx +++ b/src/plugins/betterFolders/index.tsx @@ -107,6 +107,11 @@ export const settings = definePluginSettings({ description: "Close other folders when opening a folder", default: false }, + closeServerFolder: { + type: OptionType.BOOLEAN, + description: "Close folder when selecting a server in that folder", + default: false, + }, forceOpen: { type: OptionType.BOOLEAN, description: "Force a folder to open when switching to a server of that folder", @@ -276,7 +281,7 @@ export default definePlugin({ flux: { CHANNEL_SELECT(data) { - if (!settings.store.closeAllFolders && !settings.store.forceOpen) + if (!settings.store.closeAllFolders && !settings.store.forceOpen && !settings.store.closeServerFolder) return; if (lastGuildId !== data.guildId) { @@ -284,7 +289,12 @@ export default definePlugin({ const guildFolder = getGuildFolder(data.guildId); if (guildFolder?.folderId) { - if (settings.store.forceOpen && !ExpandedGuildFolderStore.isFolderExpanded(guildFolder.folderId)) { + const wasExpanded = ExpandedGuildFolderStore.isFolderExpanded(guildFolder.folderId); + + if (settings.store.forceOpen && !wasExpanded) { + FolderUtils.toggleGuildFolderExpand(guildFolder.folderId); + } + if (settings.store.closeServerFolder && wasExpanded) { FolderUtils.toggleGuildFolderExpand(guildFolder.folderId); } } else if (settings.store.closeAllFolders) {