feat: add tracking event for content filtering in discussion MFE

This commit is contained in:
SaadYousaf
2022-12-07 16:36:24 +05:00
committed by Saad Yousaf
parent 9f84230c17
commit 37053e9bd3

View File

@@ -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 }) => {