From 030a74d178634a22d930e2405265ecfca58e0a9d Mon Sep 17 00:00:00 2001 From: deepshekhardas Date: Mon, 6 Apr 2026 13:05:52 +0530 Subject: [PATCH] feat(filters): add UTM parameter filter support for bookings --- .../modules/bookings/columns/filterColumns.ts | 66 ++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/apps/web/modules/bookings/columns/filterColumns.ts b/apps/web/modules/bookings/columns/filterColumns.ts index bcb805e0189ace..c74b81195e3414 100644 --- a/apps/web/modules/bookings/columns/filterColumns.ts +++ b/apps/web/modules/bookings/columns/filterColumns.ts @@ -24,6 +24,11 @@ const FILTER_COLUMN_IDS = [ "attendeeEmail", "dateRange", "bookingUid", + "utmSource", + "utmMedium", + "utmCampaign", + "utmTerm", + "utmContent", ] as const; /** @@ -128,5 +133,64 @@ export function buildFilterColumns({ t, permissions, status }: BuildFilterColumn }, }, }), + columnHelper.accessor((row) => (row.type === "data" ? row.booking.utmSource : null), { + id: "utmSource", + header: t("utm_source"), + enableColumnFilter: true, + enableSorting: false, + cell: () => null, + meta: { + filter: { + type: ColumnFilterType.TEXT, + }, + }, + }), + columnHelper.accessor((row) => (row.type === "data" ? row.booking.utmMedium : null), { + id: "utmMedium", + header: t("utm_medium"), + enableColumnFilter: true, + enableSorting: false, + cell: () => null, + meta: { + filter: { + type: ColumnFilterType.TEXT, + }, + }, + }), + columnHelper.accessor((row) => (row.type === "data" ? row.booking.utmCampaign : null), { + id: "utmCampaign", + header: t("utm_campaign"), + enableColumnFilter: true, + enableSorting: false, + cell: () => null, + meta: { + filter: { + type: ColumnFilterType.TEXT, + }, + }, + }), + columnHelper.accessor((row) => (row.type === "data" ? row.booking.utmTerm : null), { + id: "utmTerm", + header: t("utm_term"), + enableColumnFilter: true, + enableSorting: false, + cell: () => null, + meta: { + filter: { + type: ColumnFilterType.TEXT, + }, + }, + }), + columnHelper.accessor((row) => (row.type === "data" ? row.booking.utmContent : null), { + id: "utmContent", + header: t("utm_content"), + enableColumnFilter: true, + enableSorting: false, + cell: () => null, + meta: { + filter: { + type: ColumnFilterType.TEXT, + }, + }, + }), ]; -}