diff --git a/.changeset/feat-collpase-folder-setting.md b/.changeset/feat-collpase-folder-setting.md new file mode 100644 index 000000000..b49339c45 --- /dev/null +++ b/.changeset/feat-collpase-folder-setting.md @@ -0,0 +1,5 @@ +--- +default: minor +--- + +Add a setting to collapse sidebar folders by default. diff --git a/src/app/features/settings/cosmetics/Themes.tsx b/src/app/features/settings/cosmetics/Themes.tsx index 77e692265..3e5c8cac1 100644 --- a/src/app/features/settings/cosmetics/Themes.tsx +++ b/src/app/features/settings/cosmetics/Themes.tsx @@ -482,6 +482,10 @@ function PageZoomInput() { export function Appearance() { const [twitterEmoji, setTwitterEmoji] = useSetting(settingsAtom, 'twitterEmoji'); const [showEasterEggs, setShowEasterEggs] = useSetting(settingsAtom, 'showEasterEggs'); + const [closeFoldersByDefault, setCloseFoldersByDefault] = useSetting( + settingsAtom, + 'closeFoldersByDefault' + ); return ( @@ -500,6 +504,21 @@ export function Appearance() { /> + + + } + /> + + >( storeKey, (key) => { + const settings = getSettings(); + if (settings.closeFoldersByDefault) { + return new Set(); + } const arrayValue = getLocalStorageItem(key, []); return new Set(arrayValue); }, diff --git a/src/app/state/settings.ts b/src/app/state/settings.ts index 8a4956394..3dcf1b1fb 100644 --- a/src/app/state/settings.ts +++ b/src/app/state/settings.ts @@ -111,13 +111,11 @@ export interface Settings { alwaysShowCallButton: boolean; faviconForMentionsOnly: boolean; highlightMentions: boolean; - /** - * whether to enable pk compat - */ pkCompat: boolean; pmpProxying: boolean; mentionInReplies: boolean; showPersonaSetting: boolean; + closeFoldersByDefault: boolean; // furry stuff renderAnimals: boolean; @@ -216,6 +214,7 @@ const defaultSettings: Settings = { pmpProxying: false, mentionInReplies: true, showPersonaSetting: false, + closeFoldersByDefault: false, // furry stuff renderAnimals: true,