diff options
Diffstat (limited to 'packages/instant/src/redux/analytics_middleware.ts')
-rw-r--r-- | packages/instant/src/redux/analytics_middleware.ts | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/packages/instant/src/redux/analytics_middleware.ts b/packages/instant/src/redux/analytics_middleware.ts deleted file mode 100644 index 4b4d30213..000000000 --- a/packages/instant/src/redux/analytics_middleware.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { AssetProxyId } from '@0x/types'; -import { Web3Wrapper } from '@0x/web3-wrapper'; -import * as _ from 'lodash'; -import { Middleware } from 'redux'; - -import { ETH_DECIMALS } from '../constants'; -import { AccountState, StandardSlidingPanelContent } from '../types'; -import { analytics, AnalyticsEventOptions } from '../util/analytics'; - -import { Action, ActionTypes } from './actions'; - -import { State } from './reducer'; - -export const analyticsMiddleware: Middleware = store => next => middlewareAction => { - const prevState = store.getState() as State; - const prevAccount = prevState.providerState.account; - - const nextAction = next(middlewareAction) as Action; - - const curState = store.getState() as State; - const curAccount = curState.providerState.account; - - switch (nextAction.type) { - case ActionTypes.SetAccountStateReady: - if (curAccount.state === AccountState.Ready) { - const didJustTurnReady = prevAccount.state !== AccountState.Ready; - const didJustUpdateAddress = - prevAccount.state === AccountState.Ready && prevAccount.address !== curAccount.address; - const ethAddress = curAccount.address; - if (didJustTurnReady) { - analytics.trackAccountReady(ethAddress); - analytics.addUserProperties({ lastKnownEthAddress: ethAddress }); - analytics.addEventProperties({ ethAddress }); - } else if (didJustUpdateAddress) { - analytics.trackAccountAddressChanged(ethAddress); - analytics.addUserProperties({ lastKnownEthAddress: ethAddress }); - analytics.addEventProperties({ ethAddress }); - } - } - break; - case ActionTypes.SetAccountStateLocked: - if (prevAccount.state !== AccountState.Locked && curAccount.state === AccountState.Locked) { - // if we are moving from account not locked to account locked, track `Account - Locked` - analytics.trackAccountLocked(); - } - break; - case ActionTypes.UpdateAccountEthBalance: - if ( - curAccount.state === AccountState.Ready && - curAccount.ethBalanceInWei && - !_.isEqual(curAccount, prevAccount) - ) { - const ethBalanceInUnitAmount = Web3Wrapper.toUnitAmount( - curAccount.ethBalanceInWei, - ETH_DECIMALS, - ).toString(); - analytics.addUserProperties({ lastEthBalanceInUnitAmount: ethBalanceInUnitAmount }); - analytics.addEventProperties({ ethBalanceInUnitAmount }); - } - break; - case ActionTypes.UpdateSelectedAsset: - const selectedAsset = curState.selectedAsset; - if (selectedAsset) { - const assetName = selectedAsset.metaData.name; - const assetData = selectedAsset.assetData; - analytics.trackTokenSelectorChose({ - assetName, - assetData, - }); - - const selectedAssetEventProperties: AnalyticsEventOptions = { - selectedAssetName: assetName, - selectedAssetData: assetData, - }; - if (selectedAsset.metaData.assetProxyId === AssetProxyId.ERC20) { - selectedAssetEventProperties.selectedAssetDecimals = selectedAsset.metaData.decimals; - selectedAssetEventProperties.selectedAssetSymbol = selectedAsset.metaData.symbol; - } - analytics.addEventProperties(selectedAssetEventProperties); - } - break; - case ActionTypes.SetAvailableAssets: - const availableAssets = curState.availableAssets; - if (availableAssets) { - analytics.addEventProperties({ - numberAvailableAssets: availableAssets.length, - }); - } - break; - case ActionTypes.OpenStandardSlidingPanel: - const openSlidingContent = curState.standardSlidingPanelSettings.content; - if (openSlidingContent === StandardSlidingPanelContent.InstallWallet) { - analytics.trackInstallWalletModalOpened(); - } - break; - case ActionTypes.CloseStandardSlidingPanel: - const closeSlidingContent = curState.standardSlidingPanelSettings.content; - if (closeSlidingContent === StandardSlidingPanelContent.InstallWallet) { - analytics.trackInstallWalletModalClosed(); - } - break; - case ActionTypes.UpdateBaseCurrency: - analytics.trackBaseCurrencyChanged(curState.baseCurrency); - analytics.addEventProperties({ baseCurrency: curState.baseCurrency }); - } - - return nextAction; -}; |