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()} ))} ))} ); })} ); };