import { Accordion, Box, Chip, Text } from "@saleor/macaw-ui/next";
import { EventDeliveryStatusEnum } from "../../generated/graphql";
import { useWebhooksStatus } from "../lib/useWebhooksStatus";
export const WebhooksStatus = () => {
const { data: webhooksData } = useWebhooksStatus();
if (!webhooksData) {
return Loading...;
}
return (
{webhooksData.map((webhook) => {
const Trigger = webhook.isActive ? Box : Accordion.Item.Trigger;
const failedEventDeliveries = webhook.eventDeliveries?.edges?.filter(
(e) => e.node.status === EventDeliveryStatusEnum.Failed
);
const hasFailedDeliveries = failedEventDeliveries && failedEventDeliveries.length > 0;
return (
{webhook.asyncEvents[0].name}
{webhook.isActive ? "Active" : "Disabled"}
Delivery attempts
{!hasFailedDeliveries ? (
No failed deliveries
) : null}
{webhook.eventDeliveries?.edges.map((delivery) => (
{delivery.node.attempts?.edges.map((attempt) => (
Status:{" "}
{attempt.node.status}
HTTP
{attempt.node.responseStatusCode}
{new Date(attempt.node.createdAt).toLocaleString()}
))}
))}
);
})}
);
};