From 6ee200e482497c273393b13231f5d639004f9196 Mon Sep 17 00:00:00 2001 From: glax Date: Mon, 4 Aug 2025 12:21:27 +0200 Subject: [PATCH] Add list of NotificationConnectors --- .../Settings/AddNotificationConnector.tsx | 2 + .../Settings/ListNotificationConnector.tsx | 52 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 tranga-website/src/Components/Settings/ListNotificationConnector.tsx diff --git a/tranga-website/src/Components/Settings/AddNotificationConnector.tsx b/tranga-website/src/Components/Settings/AddNotificationConnector.tsx index 5f14e25..6846c3b 100644 --- a/tranga-website/src/Components/Settings/AddNotificationConnector.tsx +++ b/tranga-website/src/Components/Settings/AddNotificationConnector.tsx @@ -15,6 +15,7 @@ import ModalClose from "@mui/joy/ModalClose"; import {GotifyRecord, NtfyRecord, PushoverRecord} from "../../apiClient/data-contracts.ts"; import {LoadingState, StateColor, StateIndicator} from "../Loading.tsx"; import * as React from "react"; +import ListNotificationConnector from "./ListNotificationConnector.tsx"; export default function () { const [notificationConnectorsOpen, setNotificationConnectorsOpen] = React.useState(false); @@ -23,6 +24,7 @@ export default function () { Notification Connectors + setNotificationConnectorsOpen(false)}> diff --git a/tranga-website/src/Components/Settings/ListNotificationConnector.tsx b/tranga-website/src/Components/Settings/ListNotificationConnector.tsx new file mode 100644 index 0000000..9e66f9b --- /dev/null +++ b/tranga-website/src/Components/Settings/ListNotificationConnector.tsx @@ -0,0 +1,52 @@ +import {ApiContext} from "../../apiClient/ApiContext.tsx"; +import {useContext, useEffect, useState} from "react"; +import { NotificationConnector } from "../../apiClient/data-contracts.ts"; +import {Card, Chip, Input, Stack, Table, Textarea, Typography} from "@mui/joy"; + +export default function (){ + const Api = useContext(ApiContext); + const [notificationConnectors, setNotificationConnectors] = useState([]); + + useEffect(() => { + getConnectors(); + }, []); + + const getConnectors = () => { + Api.notificationConnectorList().then(r => { + if(r.ok) + setNotificationConnectors(r.data); + }) + }; + + return ( + + {notificationConnectors.map(c => )} + + ); +} + +function NotificationConnectorItem({connector} : {connector: NotificationConnector}){ + return ( + + {connector.name} + {connector.httpMethod}} value={connector.url} /> + + + + + + + + + {Object.entries(connector.headers).map(x => + + + + + )} + +
HeaderValue
{x[0]}{[x[1]]}
+