'use client' import { Button } from '@/components/ui/button' import { PlusCircle, Webhook } from 'lucide-react' import { useState } from 'react' import { WebhookData } from '@/lib/types' import { WebhookCard } from './webhook-card' import { WebhookDocs } from './webhook-docs' import { CreateWebhookDialog } from './create-webhook-dialog' import { EditWebhookDialog } from './edit-webhook-dialog' import { useQuery, useQueryClient } from '@tanstack/react-query' import httpBrowserClient from '@/lib/httpBrowserClient' import { ApiEndpoints } from '@/config/api' import { Skeleton } from '@/components/ui/skeleton' import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from '@/components/ui/tooltip' import { Badge } from '@/components/ui/badge' function WebhookCardSkeleton() { return (
) } export default function WebhooksSection() { const [createDialogOpen, setCreateDialogOpen] = useState(false) const [editDialogOpen, setEditDialogOpen] = useState(false) const [selectedWebhook, setSelectedWebhook] = useState( null ) const queryClient = useQueryClient() const { data: webhooks, isLoading, error, } = useQuery({ queryKey: ['webhooks'], queryFn: () => httpBrowserClient .get(ApiEndpoints.gateway.getWebhooks()) .then((res) => res.data), }) const handleCreateClick = () => { setCreateDialogOpen(true) } const handleEditClick = (webhook: WebhookData) => { setSelectedWebhook(webhook) setEditDialogOpen(true) } return (

Webhooks new

Manage webhook notifications for your SMS events

{webhooks?.data?.length > 0 && (

You already have an active webhook subscription. You can edit or manage the existing webhook instead.

)}
{isLoading ? (
) : error ? (
Error: {error.message}
) : webhooks?.data?.length > 0 ? (
{webhooks.data.map((webhook) => ( handleEditClick(webhook)} /> ))}
) : (

No webhook configured

Create a webhook to receive real-time notifications for SMS events

)}
{selectedWebhook && ( )}
) }