From 37053e9bd355786b88b06abb36cc33d8f7484b40 Mon Sep 17 00:00:00 2001 From: SaadYousaf Date: Wed, 7 Dec 2022 16:36:24 +0500 Subject: [PATCH] feat: add tracking event for content filtering in discussion MFE --- src/discussions/posts/data/slices.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/discussions/posts/data/slices.js b/src/discussions/posts/data/slices.js index 2c7779f7..4d543490 100644 --- a/src/discussions/posts/data/slices.js +++ b/src/discussions/posts/data/slices.js @@ -1,6 +1,8 @@ /* eslint-disable no-param-reassign,import/prefer-default-export */ import { createSlice } from '@reduxjs/toolkit'; +import { sendTrackEvent } from '@edx/frontend-platform/analytics'; + import { PostsStatusFilter, RequestStatus, ThreadOrdering, ThreadType, } from '../../../data/constants'; @@ -21,6 +23,19 @@ const mergeThreadsInTopics = (dataFromState, dataFromPayload) => { }, {}); }; +function trackFilterContentEvent(filters, sort, eventTrigger) { + sendTrackEvent( + 'edx.forum.filter.content', + { + statusFilter: filters.status, + threadTypeFilter: filters.postType, + sort, + cohortFilter: filters.cohortFilter, + triggeredBy: eventTrigger, + }, + ); +} + const threadsSlice = createSlice({ name: 'thread', initialState: { @@ -182,14 +197,17 @@ const threadsSlice = createSlice({ }, setStatusFilter: (state, { payload }) => { state.filters.status = payload; + trackFilterContentEvent(state.filters, state.sortedBy, 'Status Filter'); state.pages = []; }, setPostsTypeFilter: (state, { payload }) => { state.filters.postType = payload; + trackFilterContentEvent(state.filters, state.sortedBy, 'Type Filter'); state.pages = []; }, setCohortFilter: (state, { payload }) => { state.filters.cohort = payload; + trackFilterContentEvent(state.filters, state.sortedBy, 'Cohort Filter'); state.pages = []; }, setSearchQuery: (state, { payload }) => {