From 2f7d948a5c2070d2d0d454d14b5b04e3bea8f803 Mon Sep 17 00:00:00 2001 From: Adi Vaknin <6841988+DeepSpace2@users.noreply.github.com> Date: Sun, 5 Jan 2025 17:56:12 +0200 Subject: [PATCH] Fix: quick launch not showing nested services (#4561) Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com> --- src/pages/index.jsx | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/pages/index.jsx b/src/pages/index.jsx index 7dbadbf1e..3b4506efa 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -166,6 +166,18 @@ const headerStyles = { boxedWidgets: "m-5 mb-0 sm:m-9 sm:mb-0 sm:mt-1", }; +function getAllServices(services) { + function get(sg) { + let nestedServices = [...sg.services]; + if (sg.groups.length > 0) { + nestedServices = [...nestedServices, ...sg.groups.map(get).flat()]; + } + return nestedServices; + } + + return [...services.map(get).flat()]; +} + function Home({ initialSettings }) { const { i18n } = useTranslation(); const { theme, setTheme } = useContext(ThemeContext); @@ -182,10 +194,9 @@ function Home({ initialSettings }) { const { data: bookmarks } = useSWR("/api/bookmarks"); const { data: widgets } = useSWR("/api/widgets"); - const servicesAndBookmarks = [ - ...services.map((sg) => sg.services).flat(), - ...bookmarks.map((bg) => bg.bookmarks).flat(), - ].filter((i) => i?.href); + const servicesAndBookmarks = [...bookmarks.map((bg) => bg.bookmarks).flat(), ...getAllServices(services)].filter( + (i) => i?.href, + ); useEffect(() => { if (settings.language) {