import React, { useEffect } from 'react' import { connect } from 'react-redux'; import cn from 'classnames'; import { SideMenuitem, SavedSearchList, Progress, Popup } from 'UI' import stl from './sessionMenu.css'; import { fetchList, fetchWatchdogStatus } from 'Duck/watchdogs'; import { setActiveFlow, clearEvents } from 'Duck/filters'; import { setActiveTab } from 'Duck/sessions'; function SessionsMenu(props) { const { activeFlow, activeTab, watchdogs = [], keyMap, wdTypeCount, fetchList, fetchWatchdogStatus, toggleRehydratePanel } = props; const onMenuItemClick = (filter) => { props.onMenuItemClick(filter) if (activeFlow && activeFlow.type === 'flows') { props.setActiveFlow(null) } } useEffect(() => { fetchList() 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' })} />
{ watchdogs.filter(item => item.visible).map(item => ( onMenuItemClick(item)} /> ))}
onMenuItemClick({ name: 'Bookmarks', type: 'bookmark' })} />
) } export default connect(state => ({ watchdogs: state.getIn(['watchdogs', 'list']).sortBy(i => i.order), 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']), }), { fetchList, fetchWatchdogStatus, setActiveFlow, clearEvents, setActiveTab })(SessionsMenu);