Skip to content

Commit 70b87fd

Browse files
author
Parth Shah
committed
Merge branch 'hotfix/analytics-fix'
2 parents 9c0cc56 + 20b2d73 commit 70b87fd

File tree

3 files changed

+47
-31
lines changed

3 files changed

+47
-31
lines changed

src/config/store.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ import { createStore, applyMiddleware, compose } from 'redux'
33
import reducers from '../reducers'
44
import promiseMiddleware from 'redux-promise-middleware'
55
import { createTracker } from 'redux-segment'
6+
import segmentPromiseHelper from '../middleware/segmentPromiseHelper'
67

78
const tracker = createTracker()
8-
99
const middleware = [
1010
promiseMiddleware({
1111
promiseTypeSuffixes: ['PENDING', 'SUCCESS', 'FAILURE']
1212
}),
1313
thunk,
14+
segmentPromiseHelper,
1415
tracker
1516
]
1617

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
/**
3+
* A hack honestly, but using this to bridge redux-promise-middleware &&
4+
* redux-segment. The latter fires a tracking event for both
5+
* Pending & Success / Failure events without this work-around
6+
*/
7+
export default function segmentPromiseHelper() {
8+
return next => action => {
9+
const { type, meta } = action
10+
if (meta && meta.onSuccessAnalytics && /.*_SUCCESS/.test(type)) {
11+
meta.analytics = meta.onSuccessAnalytics
12+
}
13+
return next(action)
14+
}
15+
}

src/projects/actions/projectTopics.js

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
LOAD_PROJECT_FEEDS_MEMBERS
1111
} from '../../config/constants'
1212
import { loadMembers } from '../../actions/members'
13-
// import { EventTypes } from 'redux-segment'
13+
import { EventTypes } from 'redux-segment'
1414

1515
/**
1616
* Load all project data to paint the dashboard
@@ -103,25 +103,25 @@ export function createProjectTopic(projectId, topic) {
103103
reference: 'project',
104104
referenceId: projectId.toString()
105105
}, topic)
106-
return (dispatch/*, getState*/) => {
107-
// const projectStatus = getState().projectState.project.status
106+
return (dispatch, getState) => {
107+
const projectStatus = getState().projectState.project.status
108108
return dispatch({
109109
type: CREATE_PROJECT_FEED,
110110
payload: createTopic(updatedTopic),
111111
meta: {
112-
tag: topic.tag
113-
// analytics: {
114-
// eventType: EventTypes.track,
115-
// eventPayload: {
116-
// event: 'Project Topic Created',
117-
// properties: {
118-
// text: topic.body,
119-
// topicCategory: topic.tag,
120-
// projectId,
121-
// projectStatus
122-
// }
123-
// }
124-
// }
112+
tag: topic.tag,
113+
onSuccessAnalytics: {
114+
eventType: EventTypes.track,
115+
eventPayload: {
116+
event: 'Project Topic Created',
117+
properties: {
118+
text: topic.body,
119+
topicCategory: topic.tag,
120+
projectId,
121+
projectStatus
122+
}
123+
}
124+
}
125125
}
126126
})
127127
}
@@ -141,25 +141,25 @@ export function loadFeedComments(feedId, tag, postIds) {
141141
}
142142

143143
export function addFeedComment(feedId, tag, comment) {
144-
return (dispatch/*, getState*/) => {
145-
// const projectStatus = getState().projectState.project.status
144+
return (dispatch, getState) => {
145+
const projectStatus = getState().projectState.project.status
146146
return dispatch({
147147
type: CREATE_PROJECT_FEED_COMMENT,
148148
payload: addTopicPost(feedId, comment),
149149
meta: {
150150
feedId,
151-
tag
152-
// analytics: {
153-
// eventType: EventTypes.track,
154-
// eventPayload: {
155-
// event: 'Project Topic Comment Created',
156-
// properties: {
157-
// topicCategory: tag,
158-
// topicId: feedId,
159-
// projectStatus
160-
// }
161-
// }
162-
// }
151+
tag,
152+
onSuccessAnalytics: {
153+
eventType: EventTypes.track,
154+
eventPayload: {
155+
event: 'Project Topic Comment Created',
156+
properties: {
157+
topicCategory: tag,
158+
topicId: feedId,
159+
projectStatus
160+
}
161+
}
162+
}
163163
}
164164
})
165165
}

0 commit comments

Comments
 (0)