Below is the code for checking if the current user has left a review on this listing and, if not, creating a review object and dispatching it to the backend
const [rating, setRating] = useState('');
const [body, setBody] = useState('');
const handleClick = () => {
const newReview = {userId, rating, body, listingId}
dispatch(createReview(newReview));
closeCreateModal();
}
const reviewExists =
reviews.some(listingReview => listingReview.userId === userId);
return(
<>
{ reviewExists ? (
<div id='review-create-modal-background'>
<div id='review-create-modal'>
<div id='review-create-modal-content'>
<div id='review-already-left'>You have already left a Review!</div>
<button onClick={() => closeCreateModal()}>Ok</button>
</div>
</div>
</div>
) : (
<div id='review-create-modal-background'>
<div id='review-create-modal'>
<div id='review-create-modal-content'>
<div id='review-create-title'>Leave a Review!</div>
<select onChange={((e)=> setRating(e.target.value))} id='review-create-rating'>
<option selected disabled>Choose a rating</option>
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
<option value="4" >4</option>
<option value="5" >5</option>
</select>
<textarea onChange={((e)=> setBody(e.target.value))}
id='review-create-text'
/>
<button onClick={handleClick}>Leave Review</button>
</div>
</div>
</div>
)
}
</>
)