diff --git a/public/icons b/public/icons new file mode 120000 index 000000000..3f72857d8 --- /dev/null +++ b/public/icons @@ -0,0 +1 @@ +../config/icons \ No newline at end of file diff --git a/src/components/services/item.jsx b/src/components/services/item.jsx index 3cc4cdab2..c7bc2d2e2 100644 --- a/src/components/services/item.jsx +++ b/src/components/services/item.jsx @@ -1,30 +1,41 @@ import Image from "next/future/image"; -import { useState } from "react"; -import { Disclosure, Transition } from "@headlessui/react"; +import { Disclosure } from "@headlessui/react"; import Status from "./status"; import Widget from "./widget"; import Docker from "./widgets/service/docker"; +function resolveIcon(icon) { + if (icon.startsWith("http")) { + return `/api/proxy?url=${encodeURIComponent(icon)}`; + } else if (icon.startsWith("/")) { + return `/icons${icon}`; + } else { + if (icon.endsWith(".png")) { + return `https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/${icon}`; + } else { + return `https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/${icon}.png`; + } + } +} + export default function Item({ service }) { return (
  • -
    { - window.open(service.href, "_blank").focus(); - }} - className="flex-shrink-0 flex items-center justify-center w-12 " - > - logo -
    + {service.icon && ( +
    { + window.open(service.href, "_blank").focus(); + }} + className="flex-shrink-0 flex items-center justify-center w-12 " + > + logo +
    + )} +
    { window.open(service.href, "_blank").focus(); diff --git a/src/skeleton/icons/custom-icons-here.txt b/src/skeleton/icons/custom-icons-here.txt new file mode 100644 index 000000000..e69de29bb