website/src/hooks/eventTrackingHook.js
import mirror from 'mirrorx' const gtag = window.gtag const getEpisodeById = (queue, episodeId) => { return queue ? queue.find(episode => episode.id === episodeId) : null} Function `eventTracking` has 48 lines of code (exceeds 25 allowed). Consider refactoring.export const eventTracking = mirror.hook((action, getState) => { switch (action.type) { case 'player/addToQueue': const toAddAudioUrl = action.data.audioUrl gtag('event', 'add_to_queue', { 'event_category': 'audio', 'event_label': toAddAudioUrl }) break case 'player/play': const toPlayAudioUrl = action.data.audioUrl gtag('event', 'play', { 'event_category': 'audio', 'event_label': toPlayAudioUrl }) break case 'player/removeFromQueue': const {queue} = getState().player const episodeId = action.data const removedEpisode = getEpisodeById(queue, episodeId) if (removedEpisode) { gtag('event', 'remove_from_queue', { 'event_category': 'audio', 'event_label': removedEpisode.audioUrl }) } break case 'player/playNextEpisode': const state = getState().player const currentlyPlaying = state.nowPlaying const newQueue = state.queue .slice() .filter(episode => episode.audioUrl !== currentlyPlaying.audioUrl) const nowPlaying = newQueue.shift() || {} gtag('event', 'play_next_episode', { 'event_category': 'audio', 'event_label': nowPlaying.audioUrl }) break case 'player/playNext': const episode = action.data gtag('event', 'play_next', { 'event_category': 'audio', 'event_label': episode.audioUrl }) break default: break }})