{"library":"redux-action-analytics-middleware","title":"Redux Action Analytics Middleware","description":"A Redux middleware that triggers analytics callbacks for whitelisted actions. Current stable version is 2.8.0. The project has an active release cadence with periodic dependency updates. Key differentiators: decoupled from any specific analytics tool, consolidates analytics logic in middleware, provides pre- and post-action state to callbacks, and uses Flow types. It strips no data from actions, so callbacks must handle sensitive information.","language":"javascript","status":"active","last_verified":"Sat Apr 25","install":{"commands":["npm install redux-action-analytics-middleware"],"cli":null},"imports":["import AnalyticsMiddleware from 'redux-action-analytics-middleware'","import AnalyticsMiddleware from 'redux-action-analytics-middleware'","import AnalyticsMiddleware from 'redux-action-analytics-middleware'"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import AnalyticsMiddleware from 'redux-action-analytics-middleware'\nimport { createStore, applyMiddleware } from 'redux'\n\nconst trackCallback = (action, preState, postState) => {\n  console.log('Tracked action:', action)\n  console.log('State change:', preState, '->', postState)\n}\n\nconst trackableActions = ['USER_LOGIN', 'PURCHASE_ITEM']\n\nconst middleware = AnalyticsMiddleware({\n  trackCallback,\n  trackableActions\n})\n\nconst reducer = (state = { count: 0 }, action) => {\n  switch (action.type) {\n    case 'INCREMENT':\n      return { ...state, count: state.count + 1 }\n    default:\n      return state\n  }\n}\n\nconst store = createStore(reducer, applyMiddleware(middleware))\n\nstore.dispatch({ type: 'USER_LOGIN' }) // Triggers analytics\nstore.dispatch({ type: 'INCREMENT' }) // Not tracked","lang":"javascript","description":"Configures the analytics middleware with a simple console.log callback and a whitelist of action types, then creates a Redux store with it.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}