diff --git a/apps/web/modules/webhooks/components/WebhookListItem.tsx b/apps/web/modules/webhooks/components/WebhookListItem.tsx index 2079caff79e730..be795d81635ddd 100644 --- a/apps/web/modules/webhooks/components/WebhookListItem.tsx +++ b/apps/web/modules/webhooks/components/WebhookListItem.tsx @@ -1,8 +1,6 @@ "use client"; -import Link from "next/link"; - -import { getWebhookVersionLabel, getWebhookVersionDocsUrl } from "@calcom/features/webhooks/lib/constants"; +import { getWebhookVersionDocsUrl, getWebhookVersionLabel } from "@calcom/features/webhooks/lib/constants"; import type { Webhook } from "@calcom/features/webhooks/lib/dto/types"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; @@ -23,6 +21,9 @@ import { showToast } from "@calcom/ui/components/toast"; import { Tooltip } from "@calcom/ui/components/tooltip"; import { revalidateEventTypeEditPage } from "@calcom/web/app/(use-page-wrapper)/event-types/[type]/actions"; import { revalidateWebhooksList } from "@calcom/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/(with-loader)/actions"; +import Link from "next/link"; + +const MAX_BADGES_TWO_ROWS = 8; // Approximately 2 rows of badges export default function WebhookListItem(props: { webhook: Webhook; @@ -105,7 +106,7 @@ export default function WebhookListItem(props: {
- {webhook.eventTriggers.map((trigger) => ( + {webhook.eventTriggers.slice(0, MAX_BADGES_TWO_ROWS).map((trigger) => ( ))} + {webhook.eventTriggers.length > MAX_BADGES_TWO_ROWS && ( + + {webhook.eventTriggers.slice(MAX_BADGES_TWO_ROWS).map((trigger) => ( + + {t(`${trigger.toLowerCase()}`)} + + ))} +
+ }> + + +{webhook.eventTriggers.length - MAX_BADGES_TWO_ROWS} {t("more")} + +
+ )} diff --git a/apps/web/modules/webhooks/views/webhooks-view.tsx b/apps/web/modules/webhooks/views/webhooks-view.tsx index 5d8f3cc1cf1101..228b3038f42b06 100644 --- a/apps/web/modules/webhooks/views/webhooks-view.tsx +++ b/apps/web/modules/webhooks/views/webhooks-view.tsx @@ -1,17 +1,15 @@ "use client"; -import { useRouter } from "next/navigation"; - import { useBookerUrl } from "@calcom/features/bookings/hooks/useBookerUrl"; -import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; import { APP_NAME, WEBAPP_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { RouterOutputs } from "@calcom/trpc/react"; -import classNames from "@calcom/ui/classNames"; import { Avatar } from "@calcom/ui/components/avatar"; import { EmptyScreen } from "@calcom/ui/components/empty-screen"; - -import { WebhookListItem, CreateNewWebhookButton } from "../components"; +import { Frame, FrameDescription, FrameHeader, FramePanel, FrameTitle } from "@coss/ui/components/frame"; +import { useRouter } from "next/navigation"; +import React from "react"; +import { CreateNewWebhookButton, WebhookListItem } from "../components"; type WebhooksByViewer = RouterOutputs["viewer"]["webhook"]["getByViewer"]; @@ -36,17 +34,20 @@ const WebhooksList = ({ webhooksByViewer }: { webhooksByViewer: WebhooksByViewer const hasTeams = profiles && profiles.length > 1; return ( - } - borderInShellHeader={true}> - {webhookGroups.length ? ( + +
+ {t("webhooks")} + {t("add_webhook_description", { appName: APP_NAME })} +
+ +
+ {webhookGroups.length ? ( + <> {webhookGroups.map((group) => ( -
+ {hasTeams && ( -
+
)} -
-
- {group.webhooks.map((webhook, index) => ( - - router.push(`${WEBAPP_URL}/settings/developer/webhooks/${webhook.id}`) - } - /> - ))} -
-
-
+ {group.webhooks.map((webhook) => ( + + + router.push(`${WEBAPP_URL}/settings/developer/webhooks/${webhook.id}`) + } + /> + + ))} +
))} -
+ ) : ( - } - /> + + } + /> + )} -
+ ); };