From f45dee703450c42521884f8e0da8ae49f652b8c6 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 16 Dec 2022 11:22:45 +0700 Subject: item cart delete confirmation --- src/pages/shop/cart.js | 53 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 10 deletions(-) (limited to 'src/pages/shop/cart.js') diff --git a/src/pages/shop/cart.js b/src/pages/shop/cart.js index 06ac94b4..0baaccd1 100644 --- a/src/pages/shop/cart.js +++ b/src/pages/shop/cart.js @@ -10,15 +10,21 @@ import TrashIcon from "../../icons/trash.svg"; import { LazyLoadImage } from "react-lazy-load-image-component"; import apiOdoo from "../../helpers/apiOdoo"; import currencyFormat from "../../helpers/currencyFormat"; +import { createSlug } from "../../helpers/slug"; +import ConfirmAlert from "../../components/ConfirmAlert"; +import { toast } from "react-hot-toast"; import 'react-lazy-load-image-component/src/effects/blur.css'; -import { createSlug } from "../../helpers/slug"; export default function Cart() { const [products, setProducts] = useState([]); const [totalPriceBeforeTax, setTotalPriceBeforeTax] = useState(0); const [totalTaxAmount, setTotalTaxAmount] = useState(0); const [totalDiscountAmount, setTotalDiscountAmount] = useState(0); + const [deleteConfirmation, setDeleteConfirmation] = useState({ + productId: null, + show: false + }); const getProducts = async () => { let cart = getCart(); @@ -91,12 +97,29 @@ export default function Cart() { updateCart(productId, quantity); } - const deleteItem = (productId) => { + const showDeleteConfirmation = (productId) => { + setDeleteConfirmation({ + productId: productId, + show: true + }); + } + + const hideDeleteConfirmation = () => { + setDeleteConfirmation({ + productId: null, + show: false + }); + } + + const deleteItem = () => { + const productId = deleteConfirmation.productId; let productIndexToUpdate = products.findIndex((product) => product.id == productId); let productsToUpdate = products; productsToUpdate.splice(productIndexToUpdate, 1); setProducts([...productsToUpdate]); deleteItemCart(productId); + hideDeleteConfirmation(); + toast.success('Berhasil menghapus 1 item dari keranjang', { duration: 1500 }); } const toggleProductToProcess = (productId) => { @@ -108,8 +131,15 @@ export default function Cart() { return ( <> +
+ {/* jsx-start: Progress Bar */}
@@ -154,9 +184,12 @@ export default function Cart() {
- {product.parent.name} {product.attributes.length > 0 ? `- ${product.attributes.join(', ')}` : ''} + {product.parent.name} -

{product.code ? product.code : '-'}

+

+ {product.code || '-'} + {product.attributes.length > 0 ? ` | ${product.attributes.join(', ')}` : ''} +

{currencyFormat(product.price.price_discount)}

{product.price.discount_percentage > 0 ? ( @@ -169,15 +202,15 @@ export default function Cart() {

{currencyFormat(product.quantity * product.price.price_discount)}

-
+
@@ -207,7 +240,7 @@ export default function Cart() {

Ringkasan Pesanan

{getProductsToProcess().length > 0 ? ( -

{getProductsToProcess().length} Barang

+

{getProductsToProcess().length} Barang

) : ''}

-- cgit v1.2.3