728x90
๋ง์ดํ์ด์ง - ๊ด์ฌ๋์ ๋์์ธ ๋ฐ๊ฟ

๊ทธ๋ฆฌ๊ณ ์ฅ๋ฐ๊ตฌ๋์ ๋ฐ๋ก ๋ฃ์ ์ ์๋๋ก ๋ฒํผ ์ถ๊ฐํจ
<div
onClick={() => {
AddCart(book);
}}
className="interestBtn"
>
์ฅ๋ฐ๊ตฌ๋
</div>
๊ทธ๋ฆฌ๊ณ ์ด ๋ฒํผ์ book์ ์ ๋ณด(db์์ ๋ฐ์์จ)๊ฐ ๋ค์ด์์
์ด ์ ๋ณด๋ค์ ๊ทธ๋๋ก ์ฅ๋ฐ๊ตฌ๋์ ๋ฃ์ด์ค๊ฑฐ๋ผ์
๊ฒ์ ๊ฒฐ๊ณผ์์ ๊ด์ฌ ๋์๋ก DB์ ์ฅํ ๋ ํ๋๋ฅผ ๋ ์ถ๊ฐํจ
//์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐ
const AddCart = async (book) => {
if (!confirm("์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐํ๊ฒ ์ต๋๊น?")) {
alert("์ทจ์");
return;
}
if (!user) {
alert("๋ก๊ทธ์ธ์ด ํ์ํ ์๋น์ค์
๋๋ค.");
navigate("/user/login"); // Redirect to login page
return;
}
//DB์ ์ ์ฅํ๋ค.
try {
await addDoc(collection(db, "cart"), {
//์ปฌ๋ ์
๋ช
-interestBooks
interestBook: book.interestBook, //book id
bookTitle: book.bookTitle, //book title
bookCover: book.bookCover, //book cover
bookLink: book.bookLink, //book link
bookAuthor: book.bookAuthor, //book author
bookPublisher: book.bookPublisher, //book publisher
salesPrice: book.salesPrice, // book sales Price
amount: 1,
createdAt: Date.now(), // ์์ฑ์ผ์ ์ค๋
username: user.displayName, // ์ ์ ์ด๋ฆ
userId: user.uid, // ์ ์ ์์ด๋
});
alert("์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐ๋์์ต๋๋ค!");
if (confirm("์ฅ๋ฐ๊ตฌ๋๋ก ์ด๋ํ์๊ฒ ์ต๋๊น?")) {
navigate("/user/cart");
}
try {
//์ฟผ๋ฆฌ๋ฌธ ์์ฑ
const q = query(
collection(db, "interestBooks"), // ์ญ์ ํ ์ปฌ๋ ์
์ง์
where("userId", "==", user.uid), // ํ์ฌ ๋ก๊ทธ์ธ๋์ด์๋ ์ ์ ์ ๊ฐ์ ๊ฒ
where("interestBook", "==", book.interestBook) //book.isbn ์ผ๋ก ์ฐพ์
);
const querySnapshot = await getDocs(q);
querySnapshot.forEach(async (doc) => {
try {
await deleteDoc(doc.ref); //์ญ์ ํ๋ค.
setAddedCart(false);
} catch (error) {
console.error("Error deleting document:", error);
}
});
} catch (error) {
console.error("Error querying document:", error);
}
} catch (error) {
console.log(error); //์๋ฌ๋ ์ฝ์์ ์ถ๋ ฅ
}
};
์ญ์ ๋คํ๋ฉด ์ฅ๋ฐ๊ตฌ๋๋ก ์ด๋ ํ ๊ฑด์ง ์ฌ๋ถ ๋ฌผ์ด๋ณด๊ณ
ํ์ธ ๋๋ฅด๋ฉด
navigate๋ก ์ฅ๋ฐ๊ตฌ๋๋ก ์ด๋ํจ
์ทจ์ ๋๋ฌ๋ ์ฅ๋ฐ๊ตฌ๋๋ก ์ด๋ํ์ง๋ ์์ง๋ง ๊ด์ฌ ๋ชฉ๋ก์์๋ ์ญ์ ๊ฐ ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
'FRONTEND > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [React-BookStore] ๊ฒฐ์ ํ๊ธฐ -> ์ฃผ๋ฌธ์๋ฃ ์ฐฝ ๋์ด๊ฐ๊ธฐ/ ์ฃผ๋ฌธ ๋ด์ญ ์กฐํ (0) | 2023.12.15 |
|---|---|
| ๋ฆฌ์กํธ ๋ค์ ์ฐํธ๋ฒํธ ๊ฒ์ API ์ฌ์ฉํ๊ธฐ (0) | 2023.12.15 |
| [React-BookStore] ์ฅ๋ฐ๊ตฌ๋ ์์ฑ (0) | 2023.12.14 |
| [React-BookStore] ์ฅ๋ฐ๊ตฌ๋์ ๋ฐ์ดํฐ ์ถ๊ฐ (0) | 2023.12.13 |
| [React-BookStore] ๋ง์ดํ์ด์ง - ๊ด์ฌ ๋์ (0) | 2023.12.13 |