Skip to content

Commit a1e5ba7

Browse files
authored
VADC-1158: Update Team Projects Modal for use case where user does not have teams available (#1557)
1 parent a251089 commit a1e5ba7

File tree

2 files changed

+71
-40
lines changed

2 files changed

+71
-40
lines changed

src/Analysis/SharedUtils/TeamProject/TeamProjectModal/TeamProjectModal.jsx

+68-40
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
} from 'antd';
66
import LoadingErrorMessage from '../../LoadingErrorMessage/LoadingErrorMessage';
77
import './TeamProjectModal.css';
8+
import { useHistory } from 'react-router-dom';
89

910
const TeamProjectModal = ({
1011
isModalOpen,
@@ -15,32 +16,18 @@ const TeamProjectModal = ({
1516
selectedTeamProject,
1617
setSelectedTeamProject,
1718
}) => {
19+
const history = useHistory();
1820
const closeAndUpdateTeamProject = () => {
1921
setIsModalOpen(false);
2022
setBannerText(selectedTeamProject);
2123
localStorage.setItem('teamProject', selectedTeamProject);
2224
};
23-
24-
let modalContent = (
25-
<Modal
26-
open={isModalOpen}
27-
className='team-project-modal'
28-
title='Team Projects'
29-
closable={false}
30-
maskClosable={false}
31-
keyboard={false}
32-
footer={false}
33-
>
34-
<div className='spinner-container'>
35-
<Spin /> Retrieving the list of team projects.
36-
<br />
37-
Please wait...
38-
</div>
39-
</Modal>
40-
);
25+
const redirectToHomepage = () => {
26+
history.push('/');
27+
};
4128

4229
if (status === 'error') {
43-
modalContent = (
30+
return (
4431
<Modal
4532
open={isModalOpen}
4633
className='team-project-modal'
@@ -57,43 +44,84 @@ const TeamProjectModal = ({
5744
);
5845
}
5946
if (data) {
60-
modalContent = (
47+
if (data.teams.length > 0) {
48+
return (
49+
<Modal
50+
className='team-project-modal'
51+
title='Team Projects'
52+
open={isModalOpen}
53+
onCancel={() => setIsModalOpen(false)}
54+
closable={localStorage.getItem('teamProject')}
55+
maskClosable={localStorage.getItem('teamProject')}
56+
keyboard={localStorage.getItem('teamProject')}
57+
footer={[
58+
<Button
59+
key='submit'
60+
type='primary'
61+
disabled={!selectedTeamProject}
62+
onClick={() => closeAndUpdateTeamProject()}
63+
>
64+
Submit
65+
</Button>,
66+
]}
67+
>
68+
<div className='team-project-modal_modal-description'>
69+
Please select your team.
70+
</div>
71+
<Select
72+
id='input-selectTeamProjectDropDown'
73+
labelInValue
74+
defaultValue={selectedTeamProject}
75+
onChange={(e) => setSelectedTeamProject(e.value)}
76+
placeholder='-select one of the team projects below-'
77+
fieldNames={{ label: 'teamName', value: 'teamName' }}
78+
options={data.teams}
79+
dropdownStyle={{ width: '100%' }}
80+
/>
81+
</Modal>
82+
);
83+
}
84+
return (
6185
<Modal
86+
open={isModalOpen}
6287
className='team-project-modal'
6388
title='Team Projects'
64-
open={isModalOpen}
65-
onCancel={() => setIsModalOpen(false)}
66-
closable={localStorage.getItem('teamProject')}
67-
maskClosable={localStorage.getItem('teamProject')}
68-
keyboard={localStorage.getItem('teamProject')}
89+
closable={false}
90+
maskClosable={false}
91+
keyboard={false}
6992
footer={[
7093
<Button
7194
key='submit'
7295
type='primary'
73-
disabled={!selectedTeamProject}
74-
onClick={() => closeAndUpdateTeamProject()}
96+
onClick={redirectToHomepage}
7597
>
76-
Submit
98+
Ok
7799
</Button>,
78100
]}
79101
>
80102
<div className='team-project-modal_modal-description'>
81-
Please select your team.
103+
Please reach out to <a href='mailto:[email protected]'>[email protected]</a> to gain access to the system
82104
</div>
83-
<Select
84-
id='input-selectTeamProjectDropDown'
85-
labelInValue
86-
defaultValue={selectedTeamProject}
87-
onChange={(e) => setSelectedTeamProject(e.value)}
88-
placeholder='-select one of the team projects below-'
89-
fieldNames={{ label: 'teamName', value: 'teamName' }}
90-
options={data.teams}
91-
dropdownStyle={{ width: '100%' }}
92-
/>
93105
</Modal>
94106
);
95107
}
96-
return <React.Fragment>{modalContent}</React.Fragment>;
108+
return (
109+
<Modal
110+
open={isModalOpen}
111+
className='team-project-modal'
112+
title='Team Projects'
113+
closable={false}
114+
maskClosable={false}
115+
keyboard={false}
116+
footer={false}
117+
>
118+
<div className='spinner-container'>
119+
<Spin /> Retrieving the list of team projects.
120+
<br />
121+
Please wait...
122+
</div>
123+
</Modal>
124+
);
97125
};
98126

99127
TeamProjectModal.propTypes = {

src/Analysis/SharedUtils/TeamProject/TeamProjectModal/TeamProjectModal.stories.jsx

+3
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,6 @@ MockedLoading.args = { ...successArgs, status: 'loading', data: null };
4040

4141
export const MockedError = Template.bind({});
4242
MockedError.args = { ...successArgs, status: 'error', data: null };
43+
44+
export const MockedNoTeams = Template.bind({});
45+
MockedNoTeams.args = { ...successArgs, data: {teams: []} };

0 commit comments

Comments
 (0)