Skip to content

Commit dfdc00e

Browse files
committed
Condensed modal states into single state
The modal component was being rendered multiple times which was unecessary. Additionally each modal component had a different state that was only being used to determine if that modal should be open or not. These states were condensed to one state to simplify the modal states
1 parent 401f04a commit dfdc00e

1 file changed

Lines changed: 37 additions & 14 deletions

File tree

app/components/Occupied/Occupied.tsx

Lines changed: 37 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,7 @@ import { useStylesLight, useStylesDark } from './helpers/muiHelper'
3939
const Occupied = React.memo(() => {
4040
const { setServicesData, app } = useContext(ApplicationContext);
4141
const { user, applications, getApplications, mode } = useContext(DashboardContext);
42-
const [serviceModalOpen, setServiceModalOpen] = useState<boolean>(false);
43-
const [personModalOpen, setPersonModalOpen] = useState<boolean>(false);
44-
const [envModalOpen, setEnvModalOpen] = useState<boolean>(false);
45-
const [addModalOpen, setAddModalOpen] = useState<boolean>(false);
46-
const [awsModalOpen, setAwsModalOpen] = useState<boolean>(false);
42+
const [ modal,setModal ] = useState({isOpen:false,type:''})
4743
const { appIndex } = useContext(ApplicationContext);
4844
const [searchTerm, setSearchTerm] = useState<string>('');
4945

@@ -56,9 +52,6 @@ const Occupied = React.memo(() => {
5652

5753
const classes = mode === 'light' ? useStylesLight({}) : useStylesDark({});
5854

59-
// const classes = useStylesTest({})
60-
console.log(classes)
61-
6255
return (
6356
<div className="entireArea">
6457
<div className="dashboardArea">
@@ -69,15 +62,17 @@ const Occupied = React.memo(() => {
6962
setSearchTerm={setSearchTerm}
7063
/>
7164
<DashboardIcons
72-
setPersonModalOpen={setPersonModalOpen}
65+
setModal={setModal}
7366
/>
7467
</section>
7568
</header>
7669

7770
<div className="cardContainer">
7871

7972
<div className="card" id="card-add">
80-
<Button className={classes.paper} onClick={() => setEnvModalOpen(true)}>
73+
<Button className={classes.paper} onClick={() => {
74+
setModal({isOpen:true,type:'envModal'})
75+
}}>
8176
<AddCircleOutlineTwoToneIcon className={classes.icon} />
8277
</Button>
8378
</div>
@@ -89,12 +84,40 @@ const Occupied = React.memo(() => {
8984
<ApplicationsCard
9085
application={application}
9186
i={i}
92-
setServiceModalOpen={setServiceModalOpen}
87+
setModal={setModal}
9388
classes={classes}
9489
/>
9590
))}
96-
97-
<Modal open={envModalOpen} onClose={() => setEnvModalOpen(false)}>
91+
92+
<Modal
93+
open={modal.isOpen}
94+
onClose={() => setModal({isOpen:false,type:''})}
95+
>
96+
{
97+
modal.type === 'envModal' ?
98+
<EnvModal setModal={setModal} />
99+
:
100+
modal.type === 'awsModal' ?
101+
<AwsModal setModal={setModal} />
102+
:
103+
modal.type === 'addModal' ?
104+
<AddModal setModal={setModal} />
105+
:
106+
modal.type === 'personalModal' ?
107+
<ProfileContainer setModal={setModal}/>
108+
:
109+
modal.type === 'serviceModal' ?
110+
<ServicesModal
111+
key={`key-${appIndex}`}
112+
i={appIndex}
113+
app={app}
114+
/>
115+
:
116+
<></>
117+
}
118+
</Modal>
119+
120+
{/* <Modal open={envModalOpen} onClose={() => setEnvModalOpen(false)}>
98121
<EnvModal
99122
setOpen={setEnvModalOpen}
100123
setAwsModalOpen={setAwsModalOpen}
@@ -116,7 +139,7 @@ const Occupied = React.memo(() => {
116139
117140
<Modal open={serviceModalOpen} onClose={() => setServiceModalOpen(false)}>
118141
<ServicesModal key={`key-${appIndex}`} i={appIndex} app={app} />
119-
</Modal>
142+
</Modal> */}
120143
</div>
121144
</div>
122145
</div>

0 commit comments

Comments
 (0)