feat: add tracking event for content filtering in discussion MFE
This commit is contained in:
@@ -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 }) => {
|
||||
|
||||
Reference in New Issue
Block a user