From 84e1b92125215558af8ab21504ebddaf51b8332e Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sun, 23 Jun 2024 17:07:10 +0200 Subject: [PATCH] Create the MySpeed widget --- src/widgets/myspeed/component.jsx | 64 +++++++++++++++++++++++++++++++ src/widgets/myspeed/widget.js | 14 +++++++ 2 files changed, 78 insertions(+) create mode 100644 src/widgets/myspeed/component.jsx create mode 100644 src/widgets/myspeed/widget.js diff --git a/src/widgets/myspeed/component.jsx b/src/widgets/myspeed/component.jsx new file mode 100644 index 00000000..05d7cded --- /dev/null +++ b/src/widgets/myspeed/component.jsx @@ -0,0 +1,64 @@ +import { useTranslation } from "next-i18next"; + +import Container from "components/services/widget/container"; +import Block from "components/services/widget/block"; +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { t } = useTranslation(); + const { widget } = service; + const { data, error } = useWidgetAPI(widget, "info"); + + if (error) { + return ; + } + + if (!data) { + return ( + + + + + + ); + } + + if (data.message) { + return ; + } + + if (Array.isArray(data) && data.length > 0 && data[0].error) { + try { + return ; + } catch (e) { + return ; + } + } + + return ( + + + + + + ); +} diff --git a/src/widgets/myspeed/widget.js b/src/widgets/myspeed/widget.js new file mode 100644 index 00000000..4ccbcd56 --- /dev/null +++ b/src/widgets/myspeed/widget.js @@ -0,0 +1,14 @@ +import credentialedProxyHandler from "utils/proxy/handlers/credentialed"; + +const widget = { + api: "{url}/api/{endpoint}", + proxyHandler: credentialedProxyHandler, + + mappings: { + info: { + endpoint: "speedtests?limit=1" + } + } +}; + +export default widget;