diff --git a/src/utils/proxy/use-widget-api.js b/src/utils/proxy/use-widget-api.js
new file mode 100644
index 00000000..b196e62c
--- /dev/null
+++ b/src/utils/proxy/use-widget-api.js
@@ -0,0 +1,7 @@
+import useSWR from "swr";
+
+import { formatProxyUrl } from "./api-helpers";
+
+export default function useWidgetAPI(widget, ...options) {
+ return useSWR(formatProxyUrl(widget, ...options));
+}
diff --git a/src/widgets/adguard/component.jsx b/src/widgets/adguard/component.jsx
index d16fc40c..dbd67644 100644
--- a/src/widgets/adguard/component.jsx
+++ b/src/widgets/adguard/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: adguardData, error: adguardError } = useSWR(formatProxyUrl(config, "stats"));
+ const { data: adguardData, error: adguardError } = useWidgetAPI(widget, "stats");
if (adguardError) {
return ;
diff --git a/src/widgets/authentik/component.jsx b/src/widgets/authentik/component.jsx
index af7e7600..7087c205 100644
--- a/src/widgets/authentik/component.jsx
+++ b/src/widgets/authentik/component.jsx
@@ -1,18 +1,17 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: usersData, error: usersError } = useSWR(formatProxyUrl(config, "users"));
- const { data: loginsData, error: loginsError } = useSWR(formatProxyUrl(config, "login"));
- const { data: failedLoginsData, error: failedLoginsError } = useSWR(formatProxyUrl(config, "login_failed"));
+ const { data: usersData, error: usersError } = useWidgetAPI(widget, "users");
+ const { data: loginsData, error: loginsError } = useWidgetAPI(widget, "login");
+ const { data: failedLoginsData, error: failedLoginsError } = useWidgetAPI(widget, "login_failed");
if (usersError || loginsError || failedLoginsError) {
return ;
diff --git a/src/widgets/bazarr/component.jsx b/src/widgets/bazarr/component.jsx
index 99338bfb..921529da 100644
--- a/src/widgets/bazarr/component.jsx
+++ b/src/widgets/bazarr/component.jsx
@@ -1,17 +1,16 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: episodesData, error: episodesError } = useSWR(formatProxyUrl(config, "episodes"));
- const { data: moviesData, error: moviesError } = useSWR(formatProxyUrl(config, "movies"));
+ const { data: episodesData, error: episodesError } = useWidgetAPI(widget, "episodes");
+ const { data: moviesData, error: moviesError } = useWidgetAPI(widget, "movies");
if (episodesError || moviesError) {
return ;
diff --git a/src/widgets/coinmarketcap/component.jsx b/src/widgets/coinmarketcap/component.jsx
index abd7efb5..113eb40e 100644
--- a/src/widgets/coinmarketcap/component.jsx
+++ b/src/widgets/coinmarketcap/component.jsx
@@ -1,4 +1,3 @@
-import useSWR from "swr";
import { useState } from "react";
import { useTranslation } from "next-i18next";
import classNames from "classnames";
@@ -6,7 +5,7 @@ import classNames from "classnames";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Dropdown from "components/services/dropdown";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
@@ -20,16 +19,14 @@ export default function Component({ service }) {
const [dateRange, setDateRange] = useState(dateRangeOptions[0].value);
- const config = service.widget;
- const currencyCode = config.currency ?? "USD";
- const { symbols } = config;
+ const { widget } = service;
+ const { symbols } = widget;
+ const currencyCode = widget.currency ?? "USD";
- const { data: statsData, error: statsError } = useSWR(
- formatProxyUrl(config, "v1/cryptocurrency/quotes/latest", {
- symbol: `${symbols.join(",")}`,
- convert: `${currencyCode}`,
- })
- );
+ const { data: statsData, error: statsError } = useWidgetAPI(widget, "v1/cryptocurrency/quotes/latest", {
+ symbol: `${symbols.join(",")}`,
+ convert: `${currencyCode}`,
+ });
if (!symbols || symbols.length === 0) {
return (
diff --git a/src/widgets/docker/component.jsx b/src/widgets/docker/component.jsx
index 719e7c9c..015a1f25 100644
--- a/src/widgets/docker/component.jsx
+++ b/src/widgets/docker/component.jsx
@@ -9,13 +9,13 @@ import Block from "components/services/widget/block";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
const { data: statusData, error: statusError } = useSWR(
- `/api/docker/status/${config.container}/${config.server || ""}`
+ `/api/docker/status/${widget.container}/${widget.server || ""}`
);
- const { data: statsData, error: statsError } = useSWR(`/api/docker/stats/${config.container}/${config.server || ""}`);
+ const { data: statsData, error: statsError } = useSWR(`/api/docker/stats/${widget.container}/${widget.server || ""}`);
if (statsError || statusError) {
return ;
diff --git a/src/widgets/emby/component.jsx b/src/widgets/emby/component.jsx
index 6602ee93..fa171580 100644
--- a/src/widgets/emby/component.jsx
+++ b/src/widgets/emby/component.jsx
@@ -151,18 +151,18 @@ function SessionEntry({ playCommand, session }) {
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
const {
data: sessionsData,
error: sessionsError,
mutate: sessionMutate,
- } = useSWR(formatProxyUrl(config, "Sessions"), {
+ } = useSWR(formatProxyUrl(widget, "Sessions"), {
refreshInterval: 5000,
});
async function handlePlayCommand(session, command) {
- const url = formatProxyUrlWithSegments(config, "PlayControl", {
+ const url = formatProxyUrlWithSegments(widget, "PlayControl", {
sessionId: session.Id,
command,
});
diff --git a/src/widgets/gotify/component.jsx b/src/widgets/gotify/component.jsx
index 63bcbfcf..f12b0e11 100644
--- a/src/widgets/gotify/component.jsx
+++ b/src/widgets/gotify/component.jsx
@@ -1,18 +1,17 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: appsData, error: appsError } = useSWR(formatProxyUrl(config, `application`));
- const { data: messagesData, error: messagesError } = useSWR(formatProxyUrl(config, `message`));
- const { data: clientsData, error: clientsError } = useSWR(formatProxyUrl(config, `client`));
+ const { data: appsData, error: appsError } = useWidgetAPI(widget, "application");
+ const { data: messagesData, error: messagesError } = useWidgetAPI(widget, "message");
+ const { data: clientsData, error: clientsError } = useWidgetAPI(widget, "client");
if (appsError || messagesError || clientsError) {
return ;
diff --git a/src/widgets/jackett/component.jsx b/src/widgets/jackett/component.jsx
index 903028ef..98f9bc46 100644
--- a/src/widgets/jackett/component.jsx
+++ b/src/widgets/jackett/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: indexersData, error: indexersError } = useSWR(formatProxyUrl(config, "indexers"));
+ const { data: indexersData, error: indexersError } = useWidgetAPI(widget, "indexers");
if (indexersError) {
return ;
diff --git a/src/widgets/jellyseerr/component.jsx b/src/widgets/jellyseerr/component.jsx
index a38e2091..9e685f64 100644
--- a/src/widgets/jellyseerr/component.jsx
+++ b/src/widgets/jellyseerr/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: statsData, error: statsError } = useSWR(formatProxyUrl(config, `request/count`));
+ const { data: statsData, error: statsError } = useWidgetAPI(widget, "request/count");
if (statsError) {
return ;
diff --git a/src/widgets/lidarr/component.jsx b/src/widgets/lidarr/component.jsx
index 9cd99c99..96df170e 100644
--- a/src/widgets/lidarr/component.jsx
+++ b/src/widgets/lidarr/component.jsx
@@ -1,18 +1,17 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: albumsData, error: albumsError } = useSWR(formatProxyUrl(config, "album"));
- const { data: wantedData, error: wantedError } = useSWR(formatProxyUrl(config, "wanted/missing"));
- const { data: queueData, error: queueError } = useSWR(formatProxyUrl(config, "queue/status"));
+ const { data: albumsData, error: albumsError } = useWidgetAPI(widget, "album");
+ const { data: wantedData, error: wantedError } = useWidgetAPI(widget, "wanted/missing");
+ const { data: queueData, error: queueError } = useWidgetAPI(widget, "queue/status");
if (albumsError || wantedError || queueError) {
return ;
diff --git a/src/widgets/mastodon/component.jsx b/src/widgets/mastodon/component.jsx
index 34b57ffe..aa1dad01 100644
--- a/src/widgets/mastodon/component.jsx
+++ b/src/widgets/mastodon/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: statsData, error: statsError } = useSWR(formatProxyUrl(config, `instance`));
+ const { data: statsData, error: statsError } = useWidgetAPI(widget, "instance");
if (statsError) {
return ;
diff --git a/src/widgets/npm/component.jsx b/src/widgets/npm/component.jsx
index aea4776f..518fc3eb 100644
--- a/src/widgets/npm/component.jsx
+++ b/src/widgets/npm/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: infoData, error: infoError } = useSWR(formatProxyUrl(config, "nginx/proxy-hosts"));
+ const { data: infoData, error: infoError } = useWidgetAPI(widget, "nginx/proxy-hosts");
if (infoError) {
return ;
diff --git a/src/widgets/nzbget/component.jsx b/src/widgets/nzbget/component.jsx
index a7a9f3be..f69f4cf0 100644
--- a/src/widgets/nzbget/component.jsx
+++ b/src/widgets/nzbget/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation("common");
- const config = service.widget;
+ const { widget } = service;
- const { data: statusData, error: statusError } = useSWR(formatProxyUrl(config, "status"));
+ const { data: statusData, error: statusError } = useWidgetAPI(widget, "status");
if (statusError) {
return ;
diff --git a/src/widgets/ombi/component.jsx b/src/widgets/ombi/component.jsx
index 779f89eb..e7402721 100644
--- a/src/widgets/ombi/component.jsx
+++ b/src/widgets/ombi/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: statsData, error: statsError } = useSWR(formatProxyUrl(config, `Request/count`));
+ const { data: statsData, error: statsError } = useWidgetAPI(widget, "Request/count");
if (statsError) {
return ;
diff --git a/src/widgets/overseerr/component.jsx b/src/widgets/overseerr/component.jsx
index 49c98bea..ad46a27e 100644
--- a/src/widgets/overseerr/component.jsx
+++ b/src/widgets/overseerr/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: statsData, error: statsError } = useSWR(formatProxyUrl(config, "request/count"));
+ const { data: statsData, error: statsError } = useWidgetAPI(widget, "request/count");
if (statsError) {
return ;
diff --git a/src/widgets/pihole/component.jsx b/src/widgets/pihole/component.jsx
index 5b4fdc87..a956594e 100644
--- a/src/widgets/pihole/component.jsx
+++ b/src/widgets/pihole/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: piholeData, error: piholeError } = useSWR(formatProxyUrl(config, "api.php"));
+ const { data: piholeData, error: piholeError } = useWidgetAPI(widget, "api.php");
if (piholeError) {
return ;
diff --git a/src/widgets/portainer/component.jsx b/src/widgets/portainer/component.jsx
index e62a6929..140078bc 100644
--- a/src/widgets/portainer/component.jsx
+++ b/src/widgets/portainer/component.jsx
@@ -1,20 +1,17 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: containersData, error: containersError } = useSWR(
- formatProxyUrl(config, `docker/containers/json`, {
- all: 1,
- })
- );
+ const { data: containersData, error: containersError } = useWidgetAPI(widget, "docker/containers/json", {
+ all: 1,
+ });
if (containersError) {
return ;
diff --git a/src/widgets/prowlarr/component.jsx b/src/widgets/prowlarr/component.jsx
index 5345a40e..85c50186 100644
--- a/src/widgets/prowlarr/component.jsx
+++ b/src/widgets/prowlarr/component.jsx
@@ -1,17 +1,16 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: indexersData, error: indexersError } = useSWR(formatProxyUrl(config, "indexer"));
- const { data: grabsData, error: grabsError } = useSWR(formatProxyUrl(config, "indexerstats"));
+ const { data: indexersData, error: indexersError } = useWidgetAPI(widget, "indexer");
+ const { data: grabsData, error: grabsError } = useWidgetAPI(widget, "indexerstats");
if (indexersError || grabsError) {
return ;
diff --git a/src/widgets/qbittorrent/component.jsx b/src/widgets/qbittorrent/component.jsx
index 27c7b2f3..28458312 100644
--- a/src/widgets/qbittorrent/component.jsx
+++ b/src/widgets/qbittorrent/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: torrentData, error: torrentError } = useSWR(formatProxyUrl(config, "torrents/info"));
+ const { data: torrentData, error: torrentError } = useWidgetAPI(widget, "torrents/info");
if (torrentError) {
return ;
@@ -42,27 +41,12 @@ export default function Component({ service }) {
const leech = torrentData.length - completed;
- let unitsDl = "KB/s";
- let unitsUl = "KB/s";
- rateDl /= 1024;
- rateUl /= 1024;
-
- if (rateDl > 1024) {
- rateDl /= 1024;
- unitsDl = "MB/s";
- }
-
- if (rateUl > 1024) {
- rateUl /= 1024;
- unitsUl = "MB/s";
- }
-
return (
-
+
-
+
);
}
diff --git a/src/widgets/radarr/component.jsx b/src/widgets/radarr/component.jsx
index be931312..d6df7cf0 100644
--- a/src/widgets/radarr/component.jsx
+++ b/src/widgets/radarr/component.jsx
@@ -1,17 +1,16 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: moviesData, error: moviesError } = useSWR(formatProxyUrl(config, "movie"));
- const { data: queuedData, error: queuedError } = useSWR(formatProxyUrl(config, "queue/status"));
+ const { data: moviesData, error: moviesError } = useWidgetAPI(widget, "movie");
+ const { data: queuedData, error: queuedError } = useWidgetAPI(widget, "queue/status");
if (moviesError || queuedError) {
return ;
diff --git a/src/widgets/readarr/component.jsx b/src/widgets/readarr/component.jsx
index 572ff700..794a6ab8 100644
--- a/src/widgets/readarr/component.jsx
+++ b/src/widgets/readarr/component.jsx
@@ -1,18 +1,17 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: booksData, error: booksError } = useSWR(formatProxyUrl(config, "book"));
- const { data: wantedData, error: wantedError } = useSWR(formatProxyUrl(config, "wanted/missing"));
- const { data: queueData, error: queueError } = useSWR(formatProxyUrl(config, "queue/status"));
+ const { data: booksData, error: booksError } = useWidgetAPI(widget, "book");
+ const { data: wantedData, error: wantedError } = useWidgetAPI(widget, "wanted/missing");
+ const { data: queueData, error: queueError } = useWidgetAPI(widget, "queue/status");
if (booksError || wantedError || queueError) {
return ;
diff --git a/src/widgets/rutorrent/component.jsx b/src/widgets/rutorrent/component.jsx
index 146c023d..cc0d03f5 100644
--- a/src/widgets/rutorrent/component.jsx
+++ b/src/widgets/rutorrent/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: statusData, error: statusError } = useSWR(formatProxyUrl(config));
+ const { data: statusData, error: statusError } = useWidgetAPI(widget);
if (statusError) {
return ;
diff --git a/src/widgets/sabnzbd/component.jsx b/src/widgets/sabnzbd/component.jsx
index 56bd2b3b..2077695b 100644
--- a/src/widgets/sabnzbd/component.jsx
+++ b/src/widgets/sabnzbd/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: queueData, error: queueError } = useSWR(formatProxyUrl(config, "queue"));
+ const { data: queueData, error: queueError } = useWidgetAPI(widget, "queue");
if (queueError) {
return ;
diff --git a/src/widgets/sonarr/component.jsx b/src/widgets/sonarr/component.jsx
index 7e5dbf25..71aeb69c 100644
--- a/src/widgets/sonarr/component.jsx
+++ b/src/widgets/sonarr/component.jsx
@@ -1,18 +1,17 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: wantedData, error: wantedError } = useSWR(formatProxyUrl(config, "wanted/missing"));
- const { data: queuedData, error: queuedError } = useSWR(formatProxyUrl(config, "queue"));
- const { data: seriesData, error: seriesError } = useSWR(formatProxyUrl(config, "series"));
+ const { data: wantedData, error: wantedError } = useWidgetAPI(widget, "wanted/missing");
+ const { data: queuedData, error: queuedError } = useWidgetAPI(widget, "queue");
+ const { data: seriesData, error: seriesError } = useWidgetAPI(widget, "series");
if (wantedError || queuedError || seriesError) {
return ;
diff --git a/src/widgets/speedtest/component.jsx b/src/widgets/speedtest/component.jsx
index 4ae7df2b..6ff917b6 100644
--- a/src/widgets/speedtest/component.jsx
+++ b/src/widgets/speedtest/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: speedtestData, error: speedtestError } = useSWR(formatProxyUrl(config, "speedtest/latest"));
+ const { data: speedtestData, error: speedtestError } = useWidgetAPI(widget, "speedtest/latest");
if (speedtestError) {
return ;
diff --git a/src/widgets/strelaysrv/component.jsx b/src/widgets/strelaysrv/component.jsx
index 9dca1b21..f5b67d73 100644
--- a/src/widgets/strelaysrv/component.jsx
+++ b/src/widgets/strelaysrv/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: statsData, error: statsError } = useSWR(formatProxyUrl(config, `status`));
+ const { data: statsData, error: statsError } = useWidgetAPI(widget, "status");
if (statsError) {
return ;
diff --git a/src/widgets/tautulli/component.jsx b/src/widgets/tautulli/component.jsx
index 40627017..98207c43 100644
--- a/src/widgets/tautulli/component.jsx
+++ b/src/widgets/tautulli/component.jsx
@@ -117,9 +117,9 @@ function SessionEntry({ session }) {
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: activityData, error: activityError } = useSWR(formatProxyUrl(config, "get_activity"), {
+ const { data: activityData, error: activityError } = useSWR(formatProxyUrl(widget, "get_activity"), {
refreshInterval: 5000,
});
diff --git a/src/widgets/traefik/component.jsx b/src/widgets/traefik/component.jsx
index 219db5d5..efa0e8fa 100644
--- a/src/widgets/traefik/component.jsx
+++ b/src/widgets/traefik/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: traefikData, error: traefikError } = useSWR(formatProxyUrl(config, "overview"));
+ const { data: traefikData, error: traefikError } = useWidgetAPI(widget, "overview");
if (traefikError) {
return ;
diff --git a/src/widgets/transmission/component.jsx b/src/widgets/transmission/component.jsx
index 55b6d884..f082a0d9 100644
--- a/src/widgets/transmission/component.jsx
+++ b/src/widgets/transmission/component.jsx
@@ -1,16 +1,15 @@
-import useSWR from "swr";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
-import { formatProxyUrl } from "utils/proxy/api-helpers";
+import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
- const config = service.widget;
+ const { widget } = service;
- const { data: torrentData, error: torrentError } = useSWR(formatProxyUrl(config));
+ const { data: torrentData, error: torrentError } = useWidgetAPI(widget);
if (torrentError) {
return ;