import React, { useEffect } from 'react' import { connect } from 'react-redux'; import cn from 'classnames'; import { SideMenuitem, SavedSearchList, Progress, Popup, Icon, CircularLoader } from 'UI' import stl from './sessionMenu.css'; import { fetchWatchdogStatus } from 'Duck/watchdogs'; import { setActiveFlow, clearEvents } from 'Duck/filters'; import { setActiveTab } from 'Duck/sessions'; import { issues_types } from 'Types/session/issue' import { fetchList as fetchSessionList } from 'Duck/sessions'; function SessionsMenu(props) { const { activeFlow, activeTab, watchdogs = [], keyMap, wdTypeCount, fetchWatchdogStatus, toggleRehydratePanel, filters, sessionsLoading } = props; const onMenuItemClick = (filter) => { props.onMenuItemClick(filter) if (activeFlow && activeFlow.type === 'flows') { props.setActiveFlow(null) } } useEffect(() => { fetchWatchdogStatus() }, []) const capturingAll = props.captureRate && props.captureRate.get('captureAll'); return (
Sessions
{capturingAll && Manage} { !capturingAll && (
} content={ `Capturing ${props.captureRate.get('rate')}% of all sessions. Click to manage capture rate. ` } size="tiny" inverted position="top right" /> )}
onMenuItemClick({ name: 'All', type: 'all' })} />
{ issues_types.filter(item => item.visible).map(item => ( onMenuItemClick(item)} /> ))}
Assist
{ activeTab.type === 'live' && (
!sessionsLoading && props.fetchSessionList(filters.toJS())} > { sessionsLoading ? : }
)}
} iconName="person" active={activeTab.type === 'live'} onClick={() => onMenuItemClick({ name: 'Assist', type: 'live' })} />
onMenuItemClick({ name: 'Bookmarks', type: 'bookmark' })} />
) } export default connect(state => ({ activeTab: state.getIn([ 'sessions', 'activeTab' ]), keyMap: state.getIn([ 'sessions', 'keyMap' ]), wdTypeCount: state.getIn([ 'sessions', 'wdTypeCount' ]), activeFlow: state.getIn([ 'filters', 'activeFlow' ]), captureRate: state.getIn(['watchdogs', 'captureRate']), filters: state.getIn([ 'filters', 'appliedFilter' ]), sessionsLoading: state.getIn([ 'sessions', 'loading' ]), }), { fetchWatchdogStatus, setActiveFlow, clearEvents, setActiveTab, fetchSessionList })(SessionsMenu);