Skip to content

Commit 3bce0f9

Browse files
chore(filters): Adds events to taxonomic filters (#52040)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 5a1afe0 commit 3bce0f9

File tree

4 files changed

+37
-4
lines changed

4 files changed

+37
-4
lines changed

frontend/src/lib/components/PropertyFilters/components/taxonomicPropertyFilterLogic.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { actions, connect, kea, key, listeners, path, props, reducers, selectors } from 'kea'
22

33
import { TaxonomicPropertyFilterLogicProps } from 'lib/components/PropertyFilters/types'
4+
import { isValidPropertyFilter } from 'lib/components/PropertyFilters/utils'
45
import {
56
createDefaultPropertyFilter,
67
isAnyPropertyfilter,
@@ -17,6 +18,7 @@ import {
1718
isQuickFilterItem,
1819
quickFilterToPropertyFilter,
1920
} from 'lib/components/TaxonomicFilter/types'
21+
import { eventUsageLogic } from 'lib/utils/eventUsageLogic'
2022

2123
import { propertyDefinitionsModel } from '~/models/propertyDefinitionsModel'
2224
import {
@@ -92,6 +94,14 @@ export const taxonomicPropertyFilterLogic = kea<taxonomicPropertyFilterLogicType
9294
],
9395
}),
9496
listeners(({ actions, values, props }) => ({
97+
openDropdown: () => {
98+
const existingFilter = props.filters[props.filterIndex]
99+
if (!existingFilter || !isValidPropertyFilter(existingFilter)) {
100+
if (eventUsageLogic.isMounted()) {
101+
eventUsageLogic.actions.reportTaxonomicFilterAddFilterClicked(props.eventNames?.[0])
102+
}
103+
}
104+
},
95105
selectItem: ({ taxonomicGroup, propertyKey, itemPropertyFilterType, item }) => {
96106
if (item?._recentContext?.propertyFilter) {
97107
props.setFilter(props.filterIndex, item._recentContext.propertyFilter)

frontend/src/lib/components/TaxonomicFilter/InfiniteSelectResults.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
} from 'lib/components/TaxonomicFilter/types'
1212
import { Spinner } from 'lib/lemon-ui/Spinner/Spinner'
1313
import { cn } from 'lib/utils/css-classes'
14+
import { eventUsageLogic } from 'lib/utils/eventUsageLogic'
1415

1516
import { TaxonomicFilterEmptyState, taxonomicFilterGroupTypesWithEmptyStates } from './TaxonomicFilterEmptyState'
1617
import { taxonomicFilterLogic } from './taxonomicFilterLogic'
@@ -127,6 +128,7 @@ export function InfiniteSelectResults({
127128
const logic = infiniteListLogic(infiniteListLogicProps)
128129

129130
const { setActiveTab, selectItem } = useActions(taxonomicFilterLogic)
131+
const { reportTaxonomicFilterCategorySelected } = useActions(eventUsageLogic)
130132

131133
const { totalListCount } = useValues(logic)
132134

@@ -188,6 +190,10 @@ export function InfiniteSelectResults({
188190
onClick={() => {
189191
setActiveTab(groupType)
190192
focusInput()
193+
reportTaxonomicFilterCategorySelected(
194+
groupType,
195+
taxonomicFilterLogicProps.eventNames?.[0]
196+
)
191197
}}
192198
/>
193199
)

frontend/src/lib/utils/eventUsageLogic.ts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,11 @@ export const eventUsageLogic = kea<eventUsageLogicType>([
309309
}>
310310
) => ({ filters }),
311311
reportInsightWhitelabelToggled: (isWhiteLabelled: boolean) => ({ isWhiteLabelled }),
312-
reportEntityFilterVisibilitySet: (index: number, visible: boolean) => ({ index, visible }),
312+
reportEntityFilterVisibilitySet: (index: number, visible: boolean, entityName?: string) => ({
313+
index,
314+
visible,
315+
entityName,
316+
}),
313317
reportInsightsTableCalcToggled: (mode: string) => ({ mode }),
314318
reportPropertyGroupFilterAdded: true,
315319
reportChangeOuterPropertyGroupFiltersType: (type: FilterLogicalOperator, groupsLength: number) => ({
@@ -676,6 +680,12 @@ export const eventUsageLogic = kea<eventUsageLogicType>([
676680
}),
677681
reportExperimentAiSummaryRequested: (experiment: Experiment) => ({ experiment }),
678682
reportExperimentSessionReplaySummaryRequested: (experiment: Experiment) => ({ experiment }),
683+
// Taxonomic Filter
684+
reportTaxonomicFilterCategorySelected: (groupType: TaxonomicFilterGroupType, eventName?: string) => ({
685+
groupType,
686+
eventName,
687+
}),
688+
reportTaxonomicFilterAddFilterClicked: (eventName?: string) => ({ eventName }),
679689
// Definition Popover
680690
reportDataManagementDefinitionHovered: (type: TaxonomicFilterGroupType, mediaPreviewCount?: number) => ({
681691
type,
@@ -1337,8 +1347,8 @@ export const eventUsageLogic = kea<eventUsageLogicType>([
13371347
reportInsightWhitelabelToggled: async ({ isWhiteLabelled }) => {
13381348
posthog.capture(`insight whitelabel toggled`, { is_whitelabelled: isWhiteLabelled })
13391349
},
1340-
reportEntityFilterVisibilitySet: async ({ index, visible }) => {
1341-
posthog.capture('entity filter visbility set', { index, visible })
1350+
reportEntityFilterVisibilitySet: async ({ index, visible, entityName }) => {
1351+
posthog.capture('entity filter visbility set', { index, visible, entityName })
13421352
},
13431353
reportPropertySelectOpened: async () => {
13441354
posthog.capture('property select toggle opened')
@@ -1681,6 +1691,12 @@ export const eventUsageLogic = kea<eventUsageLogicType>([
16811691
reportChangeInnerPropertyGroupFiltersType: ({ type, filtersLength }) => {
16821692
posthog.capture('inner match property group filters type changed', { type, filtersLength })
16831693
},
1694+
reportTaxonomicFilterCategorySelected: ({ groupType, eventName }) => {
1695+
posthog.capture('taxonomic filter category selected', { groupType, eventName })
1696+
},
1697+
reportTaxonomicFilterAddFilterClicked: ({ eventName }) => {
1698+
posthog.capture('taxonomic filter add filter clicked', { eventName })
1699+
},
16841700
reportDataManagementDefinitionHovered: ({ type, mediaPreviewCount }) => {
16851701
posthog.capture('definition hovered', { type, media_preview_count: mediaPreviewCount ?? 0 })
16861702
},

frontend/src/scenes/insights/filters/ActionFilter/entityFilterLogic.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,8 @@ export const entityFilterLogic = kea<entityFilterLogicType>([
424424
eventUsageLogic.actions.reportInsightFilterSet(sanitizedFilters)
425425
},
426426
setEntityFilterVisibility: async ({ index, value }) => {
427-
eventUsageLogic.actions.reportEntityFilterVisibilitySet(index, value)
427+
const entityName = values.localFilters[index]?.name || undefined
428+
eventUsageLogic.actions.reportEntityFilterVisibilitySet(index, value, entityName)
428429
},
429430
})),
430431
events(({ actions, props, values }) => ({

0 commit comments

Comments
 (0)