'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" 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 BETA

This feature is in beta and may undergo changes. Use with caution in production environments.

Manage webhook notifications for your SMS events

{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 && ( )}
) }