jvaneyken / cloudbnb

0 stars 0 forks source link

Cloudbnb

Screen Shot 2023-05-29 at 3 58 07 PM

Live site

About

List of technologies used

Home Page

Make a Reservation

Making a Reservation

Leave a Review

Leaving a review

Code Snippets

Creating a Review

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>
            )
            }
        </>
    )