From e02b201f58c1cc196d9b0dfab97d76c4053f4145 Mon Sep 17 00:00:00 2001 From: Flo2410 Date: Thu, 8 Feb 2024 18:07:29 +0000 Subject: [PATCH] Added global `groupsInitiallyCollapsed` option. --- docs/configs/settings.md | 8 ++++++++ src/components/bookmarks/group.jsx | 8 ++++---- src/components/services/group.jsx | 16 ++++++++++++---- src/pages/index.jsx | 5 +++++ 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/docs/configs/settings.md b/docs/configs/settings.md index 99f7ea9d..9ee86a85 100644 --- a/docs/configs/settings.md +++ b/docs/configs/settings.md @@ -239,6 +239,14 @@ layout: initiallyCollapsed: true ``` +This can also be set globaly using the `groupsInitiallyCollapsed` option. + +```yaml +groupsInitiallyCollapsed: true +``` + +The value set on a group will overwrite the global setting. + By default the feature is disabled. ### Use Equal Height Cards diff --git a/src/components/bookmarks/group.jsx b/src/components/bookmarks/group.jsx index 107ceef4..b13aeac1 100644 --- a/src/components/bookmarks/group.jsx +++ b/src/components/bookmarks/group.jsx @@ -7,12 +7,12 @@ import ErrorBoundary from "components/errorboundry"; import List from "components/bookmarks/list"; import ResolvedIcon from "components/resolvedicon"; -export default function BookmarksGroup({ bookmarks, layout, disableCollapse }) { +export default function BookmarksGroup({ bookmarks, layout, disableCollapse, groupsInitiallyCollapsed }) { const panel = useRef(); useEffect(() => { - if (layout?.initiallyCollapsed) panel.current.style.height = `0`; - }, [layout]); + if (layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) panel.current.style.height = `0`; + }, [layout, groupsInitiallyCollapsed]); return (
- + {({ open }) => ( <> {layout?.header !== false && ( diff --git a/src/components/services/group.jsx b/src/components/services/group.jsx index 0d0e4f6a..cdbb89f3 100644 --- a/src/components/services/group.jsx +++ b/src/components/services/group.jsx @@ -6,12 +6,20 @@ import { MdKeyboardArrowDown } from "react-icons/md"; import List from "components/services/list"; import ResolvedIcon from "components/resolvedicon"; -export default function ServicesGroup({ group, services, layout, fiveColumns, disableCollapse, useEqualHeights }) { +export default function ServicesGroup({ + group, + services, + layout, + fiveColumns, + disableCollapse, + useEqualHeights, + groupsInitiallyCollapsed, +}) { const panel = useRef(); useEffect(() => { - if (layout?.initiallyCollapsed) panel.current.style.height = `0`; - }, [layout, panel]); + if (layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) panel.current.style.height = `0`; + }, [layout, groupsInitiallyCollapsed]); return (
- + {({ open }) => ( <> {layout?.header !== false && ( diff --git a/src/pages/index.jsx b/src/pages/index.jsx index 59a2ad12..0de51e32 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -311,6 +311,7 @@ function Home({ initialSettings }) { fiveColumns={settings.fiveColumns} disableCollapse={settings.disableCollapse} useEqualHeights={settings.useEqualHeights} + groupsInitiallyCollapsed={settings.groupsInitiallyCollapsed} /> ) : ( ), )} @@ -333,6 +335,7 @@ function Home({ initialSettings }) { layout={settings.layout?.[group.name]} fiveColumns={settings.fiveColumns} disableCollapse={settings.disableCollapse} + groupsInitiallyCollapsed={settings.groupsInitiallyCollapsed} /> ))}
@@ -345,6 +348,7 @@ function Home({ initialSettings }) { bookmarks={group} layout={settings.layout?.[group.name]} disableCollapse={settings.disableCollapse} + groupsInitiallyCollapsed={settings.groupsInitiallyCollapsed} /> ))}
@@ -361,6 +365,7 @@ function Home({ initialSettings }) { settings.disableCollapse, settings.useEqualHeights, settings.cardBlur, + settings.groupsInitiallyCollapsed, initialSettings.layout, ]);