mirror of
https://github.com/Unleash/unleash.git
synced 2025-05-12 01:17:04 +02:00
Refactor: cleaner project status modal link handling (#9694)
Removes random booleans, uses more explicit functions.
This commit is contained in:
parent
9a4eb059e6
commit
07d11c7a87
@ -126,21 +126,21 @@ const ProjectStatus = () => {
|
|||||||
const [projectStatusOpen, setProjectStatusOpen] = useState(
|
const [projectStatusOpen, setProjectStatusOpen] = useState(
|
||||||
searchParams.has('project-status'),
|
searchParams.has('project-status'),
|
||||||
);
|
);
|
||||||
const toggleStatusModal = (open: boolean, clickedLink?: boolean) => {
|
const openStatusModal = () => {
|
||||||
if (open) {
|
searchParams.set('project-status', '');
|
||||||
searchParams.set('project-status', '');
|
setSearchParams(searchParams);
|
||||||
setSearchParams(searchParams);
|
setProjectStatusOpen(true);
|
||||||
} else if (!clickedLink) {
|
};
|
||||||
searchParams.delete('project-status');
|
const closeStatusModal = () => {
|
||||||
setSearchParams(searchParams);
|
searchParams.delete('project-status');
|
||||||
}
|
setSearchParams(searchParams);
|
||||||
setProjectStatusOpen(open);
|
setProjectStatusOpen(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<ProjectStatusButton
|
<ProjectStatusButton
|
||||||
onClick={() => toggleStatusModal(true)}
|
onClick={openStatusModal}
|
||||||
startIcon={<ProjectStatusSvgWithMargin />}
|
startIcon={<ProjectStatusSvgWithMargin />}
|
||||||
data-loading-project
|
data-loading-project
|
||||||
>
|
>
|
||||||
@ -148,7 +148,8 @@ const ProjectStatus = () => {
|
|||||||
</ProjectStatusButton>
|
</ProjectStatusButton>
|
||||||
<ProjectStatusModal
|
<ProjectStatusModal
|
||||||
open={projectStatusOpen}
|
open={projectStatusOpen}
|
||||||
close={(clickedLink) => toggleStatusModal(false, clickedLink)}
|
onClose={closeStatusModal}
|
||||||
|
onFollowLink={() => setProjectStatusOpen(false)}
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
@ -124,10 +124,11 @@ const FeedbackButton = styled(Button)(({ theme }) => ({
|
|||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
open: boolean;
|
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 { openFeedback } = useFeedback('projectStatus', 'manual');
|
||||||
const createFeedbackContext = () => {
|
const createFeedbackContext = () => {
|
||||||
openFeedback({
|
openFeedback({
|
||||||
@ -143,11 +144,11 @@ export const ProjectStatusModal = ({ open, close }: Props) => {
|
|||||||
return (
|
return (
|
||||||
<DynamicSidebarModal
|
<DynamicSidebarModal
|
||||||
open={open}
|
open={open}
|
||||||
onClose={() => close(false)}
|
onClose={onClose}
|
||||||
label='Project status'
|
label='Project status'
|
||||||
onClick={(e: React.SyntheticEvent) => {
|
onClick={(e: React.SyntheticEvent) => {
|
||||||
if (e.target instanceof HTMLAnchorElement) {
|
if (e.target instanceof HTMLAnchorElement) {
|
||||||
close(true);
|
onFollowLink();
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@ -188,7 +189,7 @@ export const ProjectStatusModal = ({ open, close }: Props) => {
|
|||||||
variant='text'
|
variant='text'
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
createFeedbackContext();
|
createFeedbackContext();
|
||||||
close(false);
|
onClose();
|
||||||
}}
|
}}
|
||||||
size='small'
|
size='small'
|
||||||
>
|
>
|
||||||
@ -196,8 +197,7 @@ export const ProjectStatusModal = ({ open, close }: Props) => {
|
|||||||
</FeedbackButton>
|
</FeedbackButton>
|
||||||
</p>
|
</p>
|
||||||
</FeedbackContainer>
|
</FeedbackContainer>
|
||||||
|
<Button variant='outlined' onClick={onClose}>
|
||||||
<Button variant='outlined' onClick={() => close(false)}>
|
|
||||||
Close
|
Close
|
||||||
</Button>
|
</Button>
|
||||||
</CloseRow>
|
</CloseRow>
|
||||||
|
Loading…
Reference in New Issue
Block a user