Move analytics out of Winamp library

This commit is contained in:
Jordan Eldredge 2018-04-10 17:29:09 -07:00
parent 547c819919
commit aeb9522a47
3 changed files with 25 additions and 17 deletions

View file

@ -17,6 +17,7 @@ import {
SET_BALANCE,
SET_BAND_VALUE
} from "./actionTypes";
import analyticsMiddleware from "./analyticsMiddleware";
import {
hideAbout,
@ -51,6 +52,20 @@ Raven.config(sentryDsn, {
release: typeof COMMITHASH !== "undefined" ? COMMITHASH : "DEV"
}).install();
const ravenMiddleware = createMiddleware(Raven, {
filterBreadcrumbActions,
stateTransformer: state => ({
...state,
display: {
...state.display,
skinGenLetterWidths: "[[REDACTED]]",
skinImages: "[[REDACTED]]",
skinCursors: "[[REDACTED]]",
skinRegion: "[[REDACTED]]"
}
})
});
// Don't prompt user to install Winamp2-js. It's probably not
// what they want.
window.addEventListener("beforeinstallprompt", e => {
@ -114,19 +129,7 @@ Raven.context(() => {
],
enableHotkeys: true,
__initialState: initialState,
__customMiddleware: createMiddleware(Raven, {
filterBreadcrumbActions,
stateTransformer: state => ({
...state,
display: {
...state.display,
skinGenLetterWidths: "[[REDACTED]]",
skinImages: "[[REDACTED]]",
skinCursors: "[[REDACTED]]",
skinRegion: "[[REDACTED]]"
}
})
})
__customMiddlewares: [analyticsMiddleware, ravenMiddleware]
});
winamp.renderWhenReady(document.getElementById("app"));

View file

@ -3,15 +3,20 @@ import thunk from "redux-thunk";
import { composeWithDevTools } from "redux-devtools-extension";
import reducer from "./reducers";
import mediaMiddleware from "./mediaMiddleware";
import analyticsMiddleware from "./analyticsMiddleware";
import { merge } from "./utils";
import { UPDATE_TIME_ELAPSED, STEP_MARQUEE } from "./actionTypes";
import analyticsMiddleware from "./analyticsMiddleware";
const compose = composeWithDevTools({
actionsBlacklist: [UPDATE_TIME_ELAPSED, STEP_MARQUEE]
});
const getStore = (media, actionEmitter, customMiddleware, stateOverrides) => {
const getStore = (
media,
actionEmitter,
customMiddlewares = [],
stateOverrides
) => {
let initialState;
if (stateOverrides) {
initialState = merge(
@ -35,7 +40,7 @@ const getStore = (media, actionEmitter, customMiddleware, stateOverrides) => {
thunk,
mediaMiddleware(media),
emitterMiddleware,
customMiddleware,
...customMiddlewares,
analyticsMiddleware
].filter(Boolean)
)

View file

@ -57,7 +57,7 @@ class Winamp {
this.store = getStore(
this.media,
this._actionEmitter,
this.options.__customMiddleware,
this.options.__customMiddlewares,
this.options.__initialState
);
this.store.dispatch({