@randy.tarampi/jsx
Version:
Some common JSX components for www.randytarampi.ca
92 lines (81 loc) • 2.16 kB
JavaScript
import _isFunction from "lodash/isFunction";
import { CRISP_CHAT_CLOSED, CRISP_CHAT_OPENED, CRISP_MESSAGE_SENT, CRISP_SESSION_LOADED, CRISP_USER_AVATAR_CHANGED, CRISP_USER_EMAIL_CHANGED, CRISP_USER_NICKNAME_CHANGED, CRISP_USER_PHONE_CHANGED, CRISP_WEBSITE_AVAILABILITY_CHANGED } from "../actions/crisp";
import metrics from "@randy.tarampi/redux-metrics";
export var metricsMiddleware = () => next => action => {
next(action);
var trackReduxAction = metrics && metrics.api && _isFunction(metrics.api.trackReduxAction) && metrics.api.trackReduxAction;
if (!trackReduxAction) {
return;
}
switch (action.type) {
case CRISP_CHAT_CLOSED:
trackReduxAction([action, {
crisp: {
chat: "closed"
}
}]);
break;
case CRISP_CHAT_OPENED:
trackReduxAction([action, {
crisp: {
chat: "open"
}
}]);
break;
case CRISP_SESSION_LOADED:
trackReduxAction([action, {
crisp: {
session_id: action.payload
}
}]);
break;
case CRISP_MESSAGE_SENT:
trackReduxAction([action, {
crisp: {
user_id: action.payload.user.user_id
},
user: {
name: action.payload.user.nickname
}
}]);
break;
case CRISP_USER_AVATAR_CHANGED:
trackReduxAction([action, {
user: {
avatar: action.payload
}
}]);
break;
case CRISP_USER_EMAIL_CHANGED:
trackReduxAction([action, {
user: {
email: action.payload
}
}]);
break;
case CRISP_USER_NICKNAME_CHANGED:
trackReduxAction([action, {
user: {
name: action.payload
}
}]);
break;
case CRISP_USER_PHONE_CHANGED:
trackReduxAction([action, {
user: {
phone: action.payload
}
}]);
break;
case CRISP_WEBSITE_AVAILABILITY_CHANGED:
trackReduxAction([action, {
app: {
availability: action.payload
}
}]);
break;
default:
trackReduxAction([action]);
}
};
export default metricsMiddleware;