62 lines
1.9 KiB
React
Raw Normal View History

2022-09-08 11:48:16 +03:00
import { useTranslation } from "react-i18next";
2022-08-25 16:29:26 +03:00
import Sonarr from "./widgets/service/sonarr";
import Radarr from "./widgets/service/radarr";
2022-09-11 19:49:18 -07:00
import Readarr from "./widgets/service/readarr";
2022-08-25 16:29:26 +03:00
import Ombi from "./widgets/service/ombi";
import Portainer from "./widgets/service/portainer";
import Emby from "./widgets/service/emby";
import Nzbget from "./widgets/service/nzbget";
2022-09-11 19:49:18 -07:00
import SABnzbd from "./widgets/service/sabnzbd";
2022-08-25 16:29:26 +03:00
import Docker from "./widgets/service/docker";
2022-08-25 18:37:22 +03:00
import Pihole from "./widgets/service/pihole";
2022-08-25 21:31:57 +03:00
import Rutorrent from "./widgets/service/rutorrent";
2022-08-26 22:34:24 +03:00
import Jellyfin from "./widgets/service/jellyfin";
2022-08-27 03:50:49 +03:00
import Speedtest from "./widgets/service/speedtest";
2022-08-27 11:23:04 +03:00
import Traefik from "./widgets/service/traefik";
2022-08-28 11:22:43 +01:00
import Jellyseerr from "./widgets/service/jellyseerr";
2022-09-11 17:24:33 +03:00
import Overseerr from "./widgets/service/overseerr";
2022-09-02 12:13:15 +02:00
import Npm from "./widgets/service/npm";
2022-09-03 15:36:59 +03:00
import Tautulli from "./widgets/service/tautulli";
2022-09-12 01:30:42 -05:00
import CoinMarketCap from "./widgets/service/coinmarketcap";
2022-09-11 04:11:02 +01:00
import Gotify from "./widgets/service/gotify";
2022-08-24 10:44:35 +03:00
const widgetMappings = {
2022-08-25 16:29:26 +03:00
docker: Docker,
2022-08-24 10:44:35 +03:00
sonarr: Sonarr,
radarr: Radarr,
2022-09-11 19:49:18 -07:00
readarr: Readarr,
2022-08-24 10:44:35 +03:00
ombi: Ombi,
portainer: Portainer,
2022-08-25 01:35:02 +03:00
emby: Emby,
2022-08-26 22:34:24 +03:00
jellyfin: Jellyfin,
2022-08-25 02:48:52 +03:00
nzbget: Nzbget,
2022-08-25 18:37:22 +03:00
pihole: Pihole,
2022-08-25 21:31:57 +03:00
rutorrent: Rutorrent,
2022-08-27 03:50:49 +03:00
speedtest: Speedtest,
2022-08-27 11:23:04 +03:00
traefik: Traefik,
2022-09-02 12:13:15 +02:00
jellyseerr: Jellyseerr,
2022-09-11 17:24:33 +03:00
overseerr: Overseerr,
2022-09-12 01:30:42 -05:00
coinmarketcap: CoinMarketCap,
2022-09-02 12:13:15 +02:00
npm: Npm,
2022-09-03 15:36:59 +03:00
tautulli: Tautulli,
2022-09-11 04:11:02 +01:00
gotify: Gotify,
2022-09-12 10:06:47 +01:00
sabnzbd: SABnzbd
2022-08-24 10:44:35 +03:00
};
export default function Widget({ service }) {
2022-09-08 11:48:16 +03:00
const { t } = useTranslation("common");
2022-08-24 10:44:35 +03:00
const ServiceWidget = widgetMappings[service.widget.type];
if (ServiceWidget) {
return <ServiceWidget service={service} />;
}
return (
<div className="bg-theme-200/50 dark:bg-theme-900/20 rounded m-1 flex-1 flex flex-col items-center justify-center p-1">
2022-09-08 11:48:16 +03:00
<div className="font-thin text-sm">{t("widget.missing_type", { type: service.widget.type })}</div>
2022-08-24 10:44:35 +03:00
</div>
);
}