"use client"; import { timeSince } from "@/lib/time"; import { capitalizeFirstLetter } from "@/lib/utils/strings"; import { Badge } from "@/modules/ui/components/badge"; import { Webhook } from "@prisma/client"; import { TFnType, useTranslate } from "@tolgee/react"; import { TSurvey } from "@formbricks/types/surveys/types"; import { TUserLocale } from "@formbricks/types/user"; const renderSelectedSurveysText = (webhook: Webhook, allSurveys: TSurvey[]) => { if (webhook.surveyIds.length === 0) { const allSurveyNames = allSurveys.map((survey) => survey.name); return

{allSurveyNames.join(", ")}

; } else { const selectedSurveyNames = webhook.surveyIds.map((surveyId) => { const survey = allSurveys.find((survey) => survey.id === surveyId); return survey ? survey.name : ""; }); return

{selectedSurveyNames.join(", ")}

; } }; const renderSelectedTriggersText = (webhook: Webhook, t: TFnType) => { if (webhook.triggers.length === 0) { return

No Triggers

; } else { let cleanedTriggers = webhook.triggers.map((trigger) => { if (trigger === "responseCreated") { return t("environments.integrations.webhooks.response_created"); } else if (trigger === "responseUpdated") { return t("environments.integrations.webhooks.response_updated"); } else if (trigger === "responseFinished") { return t("environments.integrations.webhooks.response_finished"); } else { return trigger; } }); return (

{cleanedTriggers .sort((a, b) => { const triggerOrder = { "Response Created": 1, "Response Updated": 2, "Response Finished": 3, }; return triggerOrder[a] - triggerOrder[b]; }) .join(", ")}

); } }; export const WebhookRowData = ({ webhook, surveys, locale, }: { webhook: Webhook; surveys: TSurvey[]; locale: TUserLocale; }) => { const { t } = useTranslate(); return (
{webhook.name ? (
{webhook.name}
{webhook.url}
) : (
{webhook.url}
)}
{renderSelectedSurveysText(webhook, surveys)}
{renderSelectedTriggersText(webhook, t)}
{timeSince(webhook.createdAt.toString(), locale)}
); };