From 89cc748f643add99e0214538f646ceb60eef933d Mon Sep 17 00:00:00 2001 From: Solange Duhimbaze Ihirwe <159579750+solangeihirwe03@users.noreply.github.com> Date: Thu, 25 Jul 2024 15:01:26 +0200 Subject: [PATCH] [finished 187584874] seller delete item --- src/components/product/SellerProduct.tsx | 5 ++++- src/pages/seller/SellerCollection.tsx | 11 +++++++++++ src/utils/axios/axiosInstance.ts | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/components/product/SellerProduct.tsx b/src/components/product/SellerProduct.tsx index 19d6ed8d..0cc85d17 100644 --- a/src/components/product/SellerProduct.tsx +++ b/src/components/product/SellerProduct.tsx @@ -12,6 +12,7 @@ import { PuffLoader } from 'react-spinners'; import { Meta } from '../Meta'; import { deleteItem } from '../../store/features/product/sellerCollectionProductsSlice'; import ConfirmModal from './ConfirmModal'; +import { useNavigate } from 'react-router-dom'; const SellerProduct = ({ productId }: { productId: string }) => { const dispatch = useAppDispatch(); @@ -20,6 +21,7 @@ const SellerProduct = ({ productId }: { productId: string }) => { const [updatedProduct, setUpdatedProduct] = useState(null); const [showConfirm, setShowConfirm] = useState(false); const [itemToDelete, setItemToDelete] = useState(null); + const navigate = useNavigate() useEffect(() => { dispatch(fetchSingleSellerProduct(productId)); @@ -47,7 +49,8 @@ const SellerProduct = ({ productId }: { productId: string }) => { const handleDelete = async () => { if (updatedProduct) { await dispatch(deleteItem(itemToDelete)); - setShowConfirm(false); + setShowConfirm(false); + navigate('/seller/products'); } }; diff --git a/src/pages/seller/SellerCollection.tsx b/src/pages/seller/SellerCollection.tsx index c9144a14..4e0bce13 100644 --- a/src/pages/seller/SellerCollection.tsx +++ b/src/pages/seller/SellerCollection.tsx @@ -27,12 +27,23 @@ export default function SellerCollection() { const [showConfirm, setShowConfirm] = useState(false); const [itemToDelete, setItemToDelete] = useState<{ id: string; name: string } | null>(null); + const [products, setProducts] = useState(data?.products || []); + + useEffect(() => { + if (data?.products) { + setProducts(data.products); + } + }, [data]); const handleDelete = async () => { try { if (itemToDelete !== null) { await dispatch(deleteItem(itemToDelete.id)); + if (data?.products) { + const updatedProducts = data.products.filter(product => product.id !== itemToDelete.id); + dispatch(fetchSellerCollectionProduct()); + } setShowConfirm(false); setItemToDelete(null) } diff --git a/src/utils/axios/axiosInstance.ts b/src/utils/axios/axiosInstance.ts index 66960928..64c7edf2 100644 --- a/src/utils/axios/axiosInstance.ts +++ b/src/utils/axios/axiosInstance.ts @@ -1,6 +1,6 @@ /* eslint-disable */ import axios from "axios"; -export const URL = "http://localhost:5001" //https://e-commerce-ninjas-platform-backend.onrender.com"; +export const URL = "https://e-commerce-ninjas-platform-backend.onrender.com"; const axiosInstance = axios.create({ baseURL: `${URL}`, headers: {