diff --git a/src/components/AddBookModal.jsx b/src/components/AddBookModal.jsx index 0ce4a86..e8fd7a5 100644 --- a/src/components/AddBookModal.jsx +++ b/src/components/AddBookModal.jsx @@ -4,7 +4,7 @@ import CloseButton from "../customs/CloseButton"; import { motion } from "framer-motion"; import { useFormik } from "formik"; import * as Yup from "yup"; -import { setDoc, doc } from "firebase/firestore"; +import { setDoc, doc, arrayUnion } from "firebase/firestore"; import { db } from "../firebase"; import { useDispatch, useSelector } from "react-redux"; import { addBooks } from "../store/books/booksSlice"; @@ -94,7 +94,7 @@ function AddBookModal({ isAddBookModalOpen, setIsAddBookModalOpen }) { bookTitle: formik.values.bookTitle, author: formik.values.author, genres: formik.values.genres, - price: !formik.values.isChecked ? formik.values.price : 0, + price: !formik.values.isChecked ? formik.values.price || 0 : 0, description: formik.values.description, image: fileUrl, isChecked: formik.values.isChecked, @@ -103,6 +103,10 @@ function AddBookModal({ isAddBookModalOpen, setIsAddBookModalOpen }) { // rating: 0, uid: userUID, images: [], + ratersUID: arrayUnion(), + rating: 0, + totalRaters: 0, + totalRating: 0, }); dispatch(addBooks({ ...formik.values, id: uniqueID, uid: userUID })); diff --git a/src/components/BookCard.jsx b/src/components/BookCard.jsx index dbd4d68..d4f5889 100644 --- a/src/components/BookCard.jsx +++ b/src/components/BookCard.jsx @@ -1,5 +1,5 @@ -import React, { useState } from "react"; -// import ReactStars from "react-rating-stars-component"; +import React, { useState, useEffect } from "react"; +import ReactStars from "react-rating-stars-component"; import { Link, useHistory } from "react-router-dom"; import { BOOKS_ROUTE } from "../routes"; import { AiOutlineHeart, AiFillHeart, AiOutlineDelete } from "react-icons/ai"; @@ -21,6 +21,8 @@ import { changeDropdown } from "../store/dropdownSlice"; import { useTranslation } from "react-i18next"; import MoonLoader from "react-spinners/MoonLoader"; import { deleteBook } from "../store/books/booksSlice"; +import { toast } from "react-toastify"; +import { setRatings } from "../store/ratingsSlice"; function BookCard({ user_uid, image, genres, title, price, rating, id }) { const user = useSelector(selectorUser); @@ -36,6 +38,9 @@ function BookCard({ user_uid, image, genres, title, price, rating, id }) { dispatch(changeDropdown(genre)); } + const [currentRating, setCurrentRating] = useState(rating); + const books = useSelector((state) => state.books); + const genreButtons = genres?.map((genre, index) => { return (