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