42 lines
1.2 KiB
React
Raw Normal View History

2022-08-25 16:29:26 +03:00
import Sonarr from "./widgets/service/sonarr";
import Radarr from "./widgets/service/radarr";
import Ombi from "./widgets/service/ombi";
import Portainer from "./widgets/service/portainer";
import Emby from "./widgets/service/emby";
import Nzbget from "./widgets/service/nzbget";
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-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,
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-24 10:44:35 +03:00
};
export default function Widget({ service }) {
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">
<div className="font-thin text-sm">
Missing Widget Type: <strong>{service.widget.type}</strong>
</div>
</div>
);
}