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,
]);