From a1265635420e66b7cdef02a7136fdf9c3aec4418 Mon Sep 17 00:00:00 2001 From: Dries Augustyns Date: Mon, 4 May 2026 19:35:29 +0200 Subject: [PATCH] fix: update segment filter logic to retain value and unit, enhance activity name mapping --- apps/api/src/services/SegmentService.ts | 7 ++++++- apps/web/src/components/SegmentFilterBuilder.tsx | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/api/src/services/SegmentService.ts b/apps/api/src/services/SegmentService.ts index 1f0e473..5512b1d 100644 --- a/apps/api/src/services/SegmentService.ts +++ b/apps/api/src/services/SegmentService.ts @@ -1301,13 +1301,18 @@ export class SegmentService { value: unknown, unit?: 'days' | 'hours' | 'minutes', ): Prisma.ContactWhereInput { - // Map activity names to Email model fields + // Map activity names to Email model fields (accept both verb and past-tense forms) const fieldMap: Record = { + open: 'openedAt', opened: 'openedAt', + click: 'clickedAt', clicked: 'clickedAt', + bounce: 'bouncedAt', bounced: 'bouncedAt', + complaint: 'complainedAt', complained: 'complainedAt', sent: 'sentAt', + delivery: 'deliveredAt', delivered: 'deliveredAt', }; diff --git a/apps/web/src/components/SegmentFilterBuilder.tsx b/apps/web/src/components/SegmentFilterBuilder.tsx index fc8d7ab..8024180 100644 --- a/apps/web/src/components/SegmentFilterBuilder.tsx +++ b/apps/web/src/components/SegmentFilterBuilder.tsx @@ -273,8 +273,8 @@ const FilterRow = memo(function FilterRow({filter, onChange, onRemove, available // Determine default operator and value based on new field type let newOperator = filter.operator; - let newValue: string | number | boolean | undefined = undefined; - let newUnit: 'days' | 'hours' | 'minutes' | undefined = undefined; + let newValue: string | number | boolean | undefined = filter.value; + let newUnit: 'days' | 'hours' | 'minutes' | undefined = filter.unit; if (isNewSegment && !currentOperatorIsSegment) { // Switching to segment field