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) => {
-
-