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);