From 37e50d8cc17ace2567371294f4029d86da7d2f62 Mon Sep 17 00:00:00 2001 From: damii Date: Wed, 27 Nov 2024 21:21:19 +1100 Subject: [PATCH] Add icons, style, header, and columns properties to subgroups, and allow nesting infinite layers of subgroups --- src/components/services/group.jsx | 9 ++++++--- src/components/services/list.jsx | 6 ++++-- src/pages/index.jsx | 1 - src/utils/config/service-helpers.js | 13 +++++++++++-- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/components/services/group.jsx b/src/components/services/group.jsx index 0b0b36ae..922e577d 100644 --- a/src/components/services/group.jsx +++ b/src/components/services/group.jsx @@ -22,7 +22,6 @@ export default function ServicesGroup({ useEffect(() => { if (layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) panel.current.style.height = `0`; }, [layout, groupsInitiallyCollapsed]); - return (
diff --git a/src/components/services/list.jsx b/src/components/services/list.jsx index e437067f..dbeb7ec2 100644 --- a/src/components/services/list.jsx +++ b/src/components/services/list.jsx @@ -11,7 +11,8 @@ export default function List({ group, subgroups = [], services, layout, useEqual
    {services.map((service) => ( @@ -29,7 +30,8 @@ export default function List({ group, subgroups = [], services, layout, useEqual diff --git a/src/pages/index.jsx b/src/pages/index.jsx index 993cc75c..daefcb06 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -264,7 +264,6 @@ function Home({ initialSettings }) { const serviceGroups = services?.filter(tabGroupFilter).filter(undefinedGroupFilter); const bookmarkGroups = bookmarks.filter(tabGroupFilter).filter(undefinedGroupFilter); - return ( <> {tabs.length > 0 && ( diff --git a/src/utils/config/service-helpers.js b/src/utils/config/service-helpers.js index 035b5860..0cd20381 100644 --- a/src/utils/config/service-helpers.js +++ b/src/utils/config/service-helpers.js @@ -37,11 +37,16 @@ export async function servicesFromConfig() { })), subgroups: servicesArr .filter((entry) => entry[Object.keys(entry)[0]].type == "group") - .map((entries) => mappingFunc(entries, entries[Object.keys(entries)[0]].services)), + .map((entries) => ({ + style: entries[Object.keys(entries)[0]].style, + icon: entries[Object.keys(entries)[0]].icon, + columns: entries[Object.keys(entries)[0]].columns, + header: entries[Object.keys(entries)[0]].header, + ...mappingFunc(entries, entries[Object.keys(entries)[0]].services), + })), }); // map easy to write YAML objects into easy to consume JS arrays const servicesArray = services.map((servicesGroup) => mappingFunc(servicesGroup)); - return servicesArray; } @@ -664,6 +669,10 @@ export function cleanServiceGroups(groups) { return cleanedService; }), subgroups: serviceGroup.subgroups.map((serviceGroup) => cleanerFunc(serviceGroup)), + style: serviceGroup.style ? serviceGroup.style : null, + icon: serviceGroup.icon ? serviceGroup.icon : null, + columns: serviceGroup.columns ? serviceGroup.columns : null, + header: typeof serviceGroup.header != "undefined" ? serviceGroup.header : null, }); return groups.map((serviceGroup) => cleanerFunc(serviceGroup)); }