diff --git a/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx b/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx
index 07266a103..776761381 100644
--- a/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx
+++ b/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx
@@ -4,7 +4,6 @@ import SessionHeader from './components/SessionHeader';
import NotesList from './components/Notes/NoteList';
import { connect, DefaultRootState } from 'react-redux';
import LatestSessionsMessage from './components/LatestSessionsMessage';
-import RecordingStatus from 'Shared/SessionsTabOverview/components/RecordingStatus';
function SessionsTabOverview({
activeTab,
@@ -18,7 +17,6 @@ function SessionsTabOverview({
siteId: string;
}) {
const activeSite: any = sites.find((s: any) => s.id === siteId);
- const hasNoRecordings = !activeSite || !activeSite.recorded;
return (
diff --git a/frontend/app/layout/SideMenu.tsx b/frontend/app/layout/SideMenu.tsx
index 9e57add1a..efea409ef 100644
--- a/frontend/app/layout/SideMenu.tsx
+++ b/frontend/app/layout/SideMenu.tsx
@@ -2,30 +2,39 @@ import React from 'react';
import { Divider, Menu, Typography, Drawer, Button, Space } from 'antd';
import SVG from 'UI/SVG';
import * as routes from 'App/routes';
-import { client, CLIENT_DEFAULT_TAB, CLIENT_TABS, withSiteId } from 'App/routes';
+import { bookmarks, client, CLIENT_DEFAULT_TAB, CLIENT_TABS, fflags, notes, sessions, withSiteId } from 'App/routes';
import { RouteComponentProps, withRouter } from 'react-router-dom';
import { categories as main_menu, MENU, preferences, PREFERENCES_MENU } from './data';
import { connect } from 'react-redux';
import { MODULES } from 'Components/Client/Modules';
import cn from 'classnames';
import { Icon } from 'UI';
-import { ArrowRightOutlined } from '@ant-design/icons';
import SupportModal from 'App/layout/SupportModal';
+import { setActiveTab } from 'Duck/search';
const { Text } = Typography;
+const TabToUrlMap = {
+ all: sessions() as '/sessions',
+ bookmark: bookmarks() as '/bookmarks',
+ notes: notes() as '/notes',
+ flags: fflags() as '/feature-flags'
+};
-interface Props {
+
+interface Props extends RouteComponentProps {
siteId?: string;
modules: string[];
+ setActiveTab: (tab: any) => void;
+ activeTab: string;
}
-function SideMenu(props: RouteComponentProps
) {
+function SideMenu(props: Props) {
// @ts-ignore
- const { siteId, modules } = props;
- const isPreferencesActive = props.location.pathname.includes('/client/');
+ const { activeTab, siteId, modules, location } = props;
+ const isPreferencesActive = location.pathname.includes('/client/');
const [supportOpen, setSupportOpen] = React.useState(false);
let menu = isPreferencesActive ? preferences : main_menu;
@@ -50,6 +59,14 @@ function SideMenu(props: RouteComponentProps) {
});
});
+ React.useEffect(() => {
+ const currentLocation = location.pathname;
+ const tab = Object.keys(TabToUrlMap).find((tab: keyof typeof TabToUrlMap) => currentLocation.includes(TabToUrlMap[tab]));
+ if (tab && tab !== activeTab) {
+ props.setActiveTab({ type: tab });
+ }
+ }, [location.pathname]);
+
const menuRoutes: any = {
exit: () => props.history.push(withSiteId(routes.sessions(), siteId)),
@@ -90,7 +107,7 @@ function SideMenu(props: RouteComponentProps) {
};
const isMenuItemActive = (key: string) => {
- const { pathname } = props.location;
+ const { pathname } = location;
const activeRoute = menuRoutes[key];
if (activeRoute) {
const route = activeRoute();
@@ -154,5 +171,6 @@ function SideMenu(props: RouteComponentProps) {
}
export default withRouter(connect((state: any) => ({
- modules: state.getIn(['user', 'account', 'settings', 'modules']) || []
-}))(SideMenu));
+ modules: state.getIn(['user', 'account', 'settings', 'modules']) || [],
+ activeTab: state.getIn(['search', 'activeTab', 'type']),
+}), { setActiveTab })(SideMenu));