diff --git a/src/components/services/group.jsx b/src/components/services/group.jsx index daae1909..7fc86907 100644 --- a/src/components/services/group.jsx +++ b/src/components/services/group.jsx @@ -1,4 +1,5 @@ import classNames from "classnames"; +import Image from "next/future/image"; import List from "components/services/list"; @@ -11,7 +12,12 @@ export default function ServicesGroup({ services, layout }) { "flex-1 p-1" )} > -

{services.name}

+
+ {services.icon && + logo + } +

{services.name}

+
); diff --git a/src/pages/api/services/index.js b/src/pages/api/services/index.js index 52951fbb..a29b7fb1 100644 --- a/src/pages/api/services/index.js +++ b/src/pages/api/services/index.js @@ -33,11 +33,12 @@ export default async function handler(req, res) { const mergedGroup = { name: groupName, + icon: configuredGroup.icon, services: [...discoveredGroup.services, ...configuredGroup.services].filter((service) => service), }; mergedGroups.push(mergedGroup); }); - + res.send(mergedGroups); } diff --git a/src/styles/globals.css b/src/styles/globals.css index e11bf477..bb8003ea 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -12,3 +12,8 @@ body { font-family: "Poppins", sans-serif; } + +.h2-title-noicon { + padding-top: 8px; + padding-bottom: 8px; +} \ No newline at end of file diff --git a/src/utils/service-helpers.js b/src/utils/service-helpers.js index 595d5e36..8daf67f1 100644 --- a/src/utils/service-helpers.js +++ b/src/utils/service-helpers.js @@ -20,9 +20,11 @@ export async function servicesFromConfig() { } // map easy to write YAML objects into easy to consume JS arrays - const servicesArray = services.map((servicesGroup) => ({ + const servicesArray = services.map((servicesGroup) => ( + { name: Object.keys(servicesGroup)[0], - services: servicesGroup[Object.keys(servicesGroup)[0]].map((entries) => ({ + icon: Object.prototype.hasOwnProperty.call(servicesGroup[Object.keys(servicesGroup)[0]], 'icon') ? servicesGroup[Object.keys(servicesGroup)[0]].icon : '', + services: servicesGroup[Object.keys(servicesGroup)[0]].services.map((entries) => ({ name: Object.keys(entries)[0], ...entries[Object.keys(entries)[0]], })), @@ -106,6 +108,7 @@ export async function servicesFromDocker() { export function cleanServiceGroups(groups) { return groups.map((serviceGroup) => ({ name: serviceGroup.name, + icon: serviceGroup.icon, services: serviceGroup.services.map((service) => { const cleanedService = { ...service };