From 735b86d7781d4ed96cb2e7ca53eeef095eca1625 Mon Sep 17 00:00:00 2001 From: nick-delirium Date: Tue, 25 Feb 2025 10:15:49 +0100 Subject: [PATCH] ui: fix pathname reset --- .../app/components/Dashboard/NewDashboard.tsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/frontend/app/components/Dashboard/NewDashboard.tsx b/frontend/app/components/Dashboard/NewDashboard.tsx index 60295de5c..cf9ce517d 100644 --- a/frontend/app/components/Dashboard/NewDashboard.tsx +++ b/frontend/app/components/Dashboard/NewDashboard.tsx @@ -3,6 +3,7 @@ import { observer } from 'mobx-react-lite'; import { useStore } from 'App/mstore'; import { withRouter, RouteComponentProps } from 'react-router-dom'; import { Loader } from 'UI'; +import { withSiteId, dashboard, metrics } from "App/routes"; import DashboardRouter from './components/DashboardRouter'; import withPermissions from 'HOCs/withPermissions'; @@ -15,13 +16,19 @@ interface RouterProps { function NewDashboard(props: RouteComponentProps) { const { history, match: { params: { siteId, dashboardId } } } = props; const { dashboardStore } = useStore(); + const initId = React.useRef(siteId) const loading = dashboardStore.isLoading; - const isMetricDetails = history.location.pathname.includes('/metrics/') || history.location.pathname.includes('/metric/'); - const isDashboardDetails = history.location.pathname.includes('/dashboard/'); - const isAlertsDetails = history.location.pathname.includes('/alert/'); - - const shouldHideMenu = isMetricDetails || isDashboardDetails || isAlertsDetails; + const isDbMetric = /\/dashboard\/\d+\/metric\/\d+/.test(history.location.pathname); + const isMetricListMetric = /\/metrics\/\d+/.test(history.location.pathname); useEffect(() => { + if (siteId !== initId.current) { + if (isMetricListMetric) { + history.push(withSiteId(metrics(), siteId)) + } + if (isDbMetric) { + history.push(withSiteId(dashboard(), siteId)) + } + } dashboardStore.fetchList().then((resp) => { if (parseInt(dashboardId) > 0) { dashboardStore.selectDashboardById(dashboardId);