'use client'; import Link from 'next/link'; import { Loader } from 'lucide-react'; import { DateTime } from 'luxon'; import { toFriendlyWebhookEventName } from '@documenso/lib/universal/webhook/to-friendly-webhook-event-name'; import { trpc } from '@documenso/trpc/react'; import { cn } from '@documenso/ui/lib/utils'; import { Badge } from '@documenso/ui/primitives/badge'; import { Button } from '@documenso/ui/primitives/button'; import { SettingsHeader } from '~/components/(dashboard)/settings/layout/header'; import { CreateWebhookDialog } from '~/components/(dashboard)/settings/webhooks/create-webhook-dialog'; import { DeleteWebhookDialog } from '~/components/(dashboard)/settings/webhooks/delete-webhook-dialog'; import { LocaleDate } from '~/components/formatter/locale-date'; export default function WebhookPage() { const { data: webhooks, isLoading } = trpc.webhook.getWebhooks.useQuery(); return (
{isLoading && (
)} {webhooks && webhooks.length === 0 && ( // TODO: Perhaps add some illustrations here to make the page more engaging

You have no webhooks yet. Your webhooks will be shown here once you create them.

)} {webhooks && webhooks.length > 0 && (
{webhooks?.map((webhook) => (
{webhook.id}
{webhook.webhookUrl}
{webhook.enabled ? 'Enabled' : 'Disabled'}

Listening to{' '} {webhook.eventTriggers .map((trigger) => toFriendlyWebhookEventName(trigger)) .join(', ')}

Created on{' '}

))}
)}
); }