From 72e71b714dc060091929c5637a0669aa7e4a198c Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Wed, 2 Apr 2025 15:57:37 +0200 Subject: [PATCH] fix: link to "view more insights" from dashboard goes to status modal (#9684) Updates the link from the project dashboard page to take you to the project status modal instead of the old insights page. We didn't have a way to auto-open the modal before, so I added a query param to control it. --- .../ProjectSetupComplete.tsx | 2 +- .../src/component/project/Project/Project.tsx | 27 ++++++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/frontend/src/component/personalDashboard/ProjectSetupComplete.tsx b/frontend/src/component/personalDashboard/ProjectSetupComplete.tsx index 2ac7092fe4..bde881fe44 100644 --- a/frontend/src/component/personalDashboard/ProjectSetupComplete.tsx +++ b/frontend/src/component/personalDashboard/ProjectSetupComplete.tsx @@ -149,7 +149,7 @@ export const ProjectSetupComplete: FC<{ /> {projectHealthTrend !== 'unknown' && ( - + View more insights )} diff --git a/frontend/src/component/project/Project/Project.tsx b/frontend/src/component/project/Project/Project.tsx index 3f9b88da21..72658d1860 100644 --- a/frontend/src/component/project/Project/Project.tsx +++ b/frontend/src/component/project/Project/Project.tsx @@ -32,7 +32,13 @@ import ProjectFlags from './ProjectFlags'; import ProjectHealth from './ProjectHealth/ProjectHealth'; import { useRequiredPathParam } from 'hooks/useRequiredPathParam'; import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; -import { Navigate, Route, Routes, useLocation } from 'react-router-dom'; +import { + Navigate, + Route, + Routes, + useLocation, + useSearchParams, +} from 'react-router-dom'; import { DeleteProjectDialogue } from './DeleteProject/DeleteProjectDialogue'; import { ProjectLog } from './ProjectLog/ProjectLog'; import { ChangeRequestOverview } from 'component/changeRequest/ChangeRequestOverview/ChangeRequestOverview'; @@ -116,11 +122,24 @@ const ProjectStatusSvgWithMargin = styled(ProjectStatusSvg)(({ theme }) => ({ })); const ProjectStatus = () => { - const [projectStatusOpen, setProjectStatusOpen] = useState(false); + const [searchParams, setSearchParams] = useSearchParams(); + const [projectStatusOpen, setProjectStatusOpen] = useState( + searchParams.has('project-status'), + ); + const toggleStatusModal = (open: boolean) => () => { + if (open) { + searchParams.set('project-status', ''); + } else { + searchParams.delete('project-status'); + } + setSearchParams(searchParams); + setProjectStatusOpen(open); + }; + return ( <> setProjectStatusOpen(true)} + onClick={toggleStatusModal(true)} startIcon={} data-loading-project > @@ -128,7 +147,7 @@ const ProjectStatus = () => { setProjectStatusOpen(false)} + close={toggleStatusModal(false)} /> );