diff --git a/src/components/widgets/resources/network.jsx b/src/components/widgets/resources/network.jsx index 7b1cb4ba..8d6b5ec7 100644 --- a/src/components/widgets/resources/network.jsx +++ b/src/components/widgets/resources/network.jsx @@ -1,62 +1,77 @@ -import useSWR from "swr"; -import { FaNetworkWired, FaAngleUp, FaAngleDown } from "react-icons/fa"; -import { useTranslation } from "next-i18next"; - -import Resource from "../widget/resource"; -import Error from "../widget/error"; - -export default function Network({ options, refresh = 1500 }) { - const { t } = useTranslation(); - - const { data, error } = useSWR(`/api/widgets/resources?type=network${(options.network || ( options.network !== 'default' && options.network === `false`)) ? `&interfaceName=${options.network}` : '' }`, { - refreshInterval: refresh, - }); - - if (error || data?.error) { - return ; - } - - if (!data) { - return ( - } - expandedValue="-" - expandedLabel={} - percentage="0" - expanded="true" - /> - ); - } - - return ( - <> - /* Active Usage */ - } - expandedValue={t('common.bits', { value: data?.network?.rx_sec })} - expandedLabel={} - percentage="0" - expanded="true" - children={
{t('pyload.speed')}
} - iconChildren={{data.interface}} - /> - - /* Total Usage */ - } - expandedValue={t('common.bbytes', { value: data?.network?.rx_bytes })} - expandedLabel={} - percentage="0" - expanded="true" - children={
{t('pyload.total')}
} - iconChildren={{data.interface}} - /> - - ); -} +import useSWR from "swr"; +import { FaNetworkWired, FaAngleUp, FaAngleDown } from "react-icons/fa"; +import { useTranslation } from "next-i18next"; + +import Resource from "../widget/resource"; +import Error from "../widget/error"; + +export default function Network({ options, refresh = 1500 }) { + const { t } = useTranslation(); + + const { data, error } = useSWR( + `/api/widgets/resources?type=network${ + options.network || (options.network !== "default" && options.network === `false`) + ? `&interfaceName=${options.network}` + : "" + }`, + { + refreshInterval: refresh, + }, + ); + + if (error || data?.error) { + return ; + } + + if (!data) { + return ( + } + expandedValue="-" + expandedLabel={} + percentage="0" + expanded="true" + /> + ); + } + + return ( + <> + } + expandedValue={t("common.bits", { value: data?.network?.rx_sec })} + expandedLabel={} + percentage="0" + expanded="true" + iconChildren={ + + {data.interface} + + } + > +
{t("pyload.speed")}
+
+ + } + expandedValue={t("common.bbytes", { value: data?.network?.rx_bytes })} + expandedLabel={} + percentage="0" + expanded="true" + iconChildren={ + + {data.interface} + + } + > +
{t("pyload.total")}
+
+ + ); +} diff --git a/src/pages/api/widgets/resources.js b/src/pages/api/widgets/resources.js index 879f5579..fcdb0969 100644 --- a/src/pages/api/widgets/resources.js +++ b/src/pages/api/widgets/resources.js @@ -58,20 +58,20 @@ export default async function handler(req, res) { }); } - if (type === "network"){ + if (type === "network") { let networkData = await si.networkStats(); - if(interfaceName !== "default" && interfaceName !== undefined && interfaceName !== "false"){ - networkData = networkData.filter((network) => network.iface === interfaceName)['0']; - if(!networkData){ + if (interfaceName !== "default" && interfaceName !== undefined && interfaceName !== "false") { + networkData = networkData.filter((network) => network.iface === interfaceName)["0"]; + if (!networkData) { return res.status(404).json({ error: "Interface not found", }); } - }else{ + } else { const interfaceDefault = await si.networkInterfaceDefault(); - interfaceName = interfaceDefault - networkData = networkData.filter((network) => network.iface === interfaceDefault)['0']; - if(!networkData){ + interfaceName = interfaceDefault; + networkData = networkData.filter((network) => network.iface === interfaceDefault)["0"]; + if (!networkData) { return res.status(404).json({ error: "Interface not found! Please specify a valid interface name.", }); @@ -79,7 +79,7 @@ export default async function handler(req, res) { } return res.status(200).json({ network: networkData, - interface: interfaceName + interface: interfaceName, }); }