From 07d11c7a878a271e88aedc078ebf0c5a2c7b787c Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Thu, 3 Apr 2025 14:29:03 +0200 Subject: [PATCH] Refactor: cleaner project status modal link handling (#9694) Removes random booleans, uses more explicit functions. --- .../src/component/project/Project/Project.tsx | 23 ++++++++++--------- .../ProjectStatus/ProjectStatusModal.tsx | 14 +++++------ 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/frontend/src/component/project/Project/Project.tsx b/frontend/src/component/project/Project/Project.tsx index db0abf5668..ca0620f8fc 100644 --- a/frontend/src/component/project/Project/Project.tsx +++ b/frontend/src/component/project/Project/Project.tsx @@ -126,21 +126,21 @@ const ProjectStatus = () => { const [projectStatusOpen, setProjectStatusOpen] = useState( searchParams.has('project-status'), ); - const toggleStatusModal = (open: boolean, clickedLink?: boolean) => { - if (open) { - searchParams.set('project-status', ''); - setSearchParams(searchParams); - } else if (!clickedLink) { - searchParams.delete('project-status'); - setSearchParams(searchParams); - } - setProjectStatusOpen(open); + const openStatusModal = () => { + searchParams.set('project-status', ''); + setSearchParams(searchParams); + setProjectStatusOpen(true); + }; + const closeStatusModal = () => { + searchParams.delete('project-status'); + setSearchParams(searchParams); + setProjectStatusOpen(false); }; return ( <> toggleStatusModal(true)} + onClick={openStatusModal} startIcon={} data-loading-project > @@ -148,7 +148,8 @@ const ProjectStatus = () => { toggleStatusModal(false, clickedLink)} + onClose={closeStatusModal} + onFollowLink={() => setProjectStatusOpen(false)} /> ); diff --git a/frontend/src/component/project/Project/ProjectStatus/ProjectStatusModal.tsx b/frontend/src/component/project/Project/ProjectStatus/ProjectStatusModal.tsx index 3b510d1e5b..c093597d2c 100644 --- a/frontend/src/component/project/Project/ProjectStatus/ProjectStatusModal.tsx +++ b/frontend/src/component/project/Project/ProjectStatus/ProjectStatusModal.tsx @@ -124,10 +124,11 @@ const FeedbackButton = styled(Button)(({ theme }) => ({ type Props = { open: boolean; - close: (clickedLink?: boolean) => void; + onClose: () => void; + onFollowLink: () => void; }; -export const ProjectStatusModal = ({ open, close }: Props) => { +export const ProjectStatusModal = ({ open, onClose, onFollowLink }: Props) => { const { openFeedback } = useFeedback('projectStatus', 'manual'); const createFeedbackContext = () => { openFeedback({ @@ -143,11 +144,11 @@ export const ProjectStatusModal = ({ open, close }: Props) => { return ( close(false)} + onClose={onClose} label='Project status' onClick={(e: React.SyntheticEvent) => { if (e.target instanceof HTMLAnchorElement) { - close(true); + onFollowLink(); } }} > @@ -188,7 +189,7 @@ export const ProjectStatusModal = ({ open, close }: Props) => { variant='text' onClick={() => { createFeedbackContext(); - close(false); + onClose(); }} size='small' > @@ -196,8 +197,7 @@ export const ProjectStatusModal = ({ open, close }: Props) => {

- -