I am trying to update my state Variable which is an Object with boolean variables inside it, I am updating my state inside useEffect once the data (an api call response which I am fetching based on button click) is available. This data is then used to call my another component which is a Modal, incase of no data availability I will be showing another Modal. When I close the Popup I should update the state variable.
const [modalState,setModalState] =
useState<IModalState>({
showNoUsersModal: false,
showModal: false,
});
useEffect(() => {
if (data && data.length > 0 ) {
setModalState({
...modalState,
showModal: true,
showNoUsersModal: false,
});
} else if (data && data.length == 0) {
setModalState({
...modalState,
showModal: false,
showNoUsersModal: true,
});
}
});
const onApplicationSuccess=()=>{
setModalState({
...modalState,
showModal: false,
showNoUsersModal: false,
});
}
const onClose=()=>{
setModalState({
...modalState,
showModal: false,
showNoUsersModal: false,
});
}
return (
<div>
{modalState.showNoUsersModal && (
<NoUsersFoundModal
onCancel={() =>
setModalState({
...modalState,
showModal: false,
showNoUsersModal: false,
})
}
/>
)}
{modalState.showModal && (
<SomeOtherModal
onCancel={() =>
setModalState({
...modalState,
showModal: false,
showNoUsersModal: false,
})
}
/>
)}
</div>
)