diff --git a/packages/app-store/routing-forms/lib/FieldTypes.ts b/packages/app-store/routing-forms/lib/FieldTypes.ts index 55d050822e..a7b9e6276f 100644 --- a/packages/app-store/routing-forms/lib/FieldTypes.ts +++ b/packages/app-store/routing-forms/lib/FieldTypes.ts @@ -8,6 +8,18 @@ export const enum RoutingFormFieldType { EMAIL = "email", } +export const isValidRoutingFormFieldType = (type: string): type is RoutingFormFieldType => { + return [ + RoutingFormFieldType.TEXT, + RoutingFormFieldType.NUMBER, + RoutingFormFieldType.TEXTAREA, + RoutingFormFieldType.SINGLE_SELECT, + RoutingFormFieldType.MULTI_SELECT, + RoutingFormFieldType.PHONE, + RoutingFormFieldType.EMAIL, + ].includes(type as RoutingFormFieldType); +}; + export const FieldTypes = [ { label: "Short Text", diff --git a/packages/features/insights/components/RoutingFormResponsesTable.tsx b/packages/features/insights/components/RoutingFormResponsesTable.tsx index 1927247083..f654e80172 100644 --- a/packages/features/insights/components/RoutingFormResponsesTable.tsx +++ b/packages/features/insights/components/RoutingFormResponsesTable.tsx @@ -29,7 +29,7 @@ import classNames from "@calcom/lib/classNames"; import { useCopy } from "@calcom/lib/hooks/useCopy"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { BookingStatus } from "@calcom/prisma/enums"; -import { RoutingFormFieldType } from "@calcom/routing-forms/lib/FieldTypes"; +import { RoutingFormFieldType, isValidRoutingFormFieldType } from "@calcom/routing-forms/lib/FieldTypes"; import { trpc, type RouterOutputs } from "@calcom/trpc"; import { Badge, @@ -258,7 +258,7 @@ export function RoutingFormResponsesTable() { useInsightsParameters(); const { - data: headers, + data: headersRaw, isLoading: isHeadersLoading, isSuccess: isHeadersSuccess, } = trpc.viewer.insights.routingFormResponsesHeaders.useQuery({ @@ -268,6 +268,11 @@ export function RoutingFormResponsesTable() { routingFormId, }); + const headers = useMemo(() => { + if (!headersRaw) return; + return headersRaw.filter((header) => header.label && isValidRoutingFormFieldType(header.type)); + }, [headersRaw]); + const { data: forms } = trpc.viewer.insights.getRoutingFormsForFilters.useQuery({ userId, teamId,