import { useEffect, useState } from "react"; import { FormattedMessage } from "react-intl"; import { Link, useNavigate } from "react-router-dom"; import PageSpinner from "@/Element/PageSpinner"; import useEventPublisher from "@/Hooks/useEventPublisher"; import SnortApi, { Subscription, SubscriptionError } from "@/External/SnortApi"; import { mapSubscriptionErrorCode } from "."; import SubscriptionCard from "./SubscriptionCard"; import { ErrorOrOffline } from "@/Element/ErrorOrOffline"; export default function ManageSubscriptionPage() { const { publisher } = useEventPublisher(); const api = new SnortApi(undefined, publisher); const navigate = useNavigate(); const [subs, setSubs] = useState>(); const [error, setError] = useState(); async function loadSubs() { setError(undefined); try { const s = await api.listSubscriptions(); setSubs(s); } catch (e) { if (e instanceof Error) { setError(e); } } } useEffect(() => { loadSubs(); }, []); if (!(error instanceof SubscriptionError) && error instanceof Error) return ; if (subs === undefined) { return ; } return (

{subs.map(a => ( ))} {subs.length !== 0 && ( )} {subs.length === 0 && (

), }} />

)} {error instanceof SubscriptionError && {mapSubscriptionErrorCode(error)}}
); }