// import React, { useState } from "react"; // import { // useGetWishlistQuery, // useRemoveFromWishlistMutation, // } from "../../features/wishlist/wishlistApi"; // import WishlistEmpty from "./WishlistEmpty"; // import AddToCart from "../../pages/Cart/AddToCart"; // import { useAddToCartMutation } from "../../features/cart/cartAPI"; // import { useNavigate } from "react-router-dom"; // const Wishlist = () => { // const navigate = useNavigate(); // const [addToCart] = useAddToCartMutation(); // const { data, isLoading, isError } = useGetWishlistQuery(); // const [removeFromWishlist] = useRemoveFromWishlistMutation(); // const [confirmModal, setConfirmModal] = useState({ // show: false, // productId: null, // productName: "", // }); // const wishlistItems = data?.data?.wishlist || []; // // Loading // if (isLoading) // return ( //

// Loading your wishlist... //

// ); // if (isError) return ; // // Empty // if (wishlistItems.length === 0) return ; // const handleRemove = async (productId) => { // try { // await removeFromWishlist(productId).unwrap(); // setConfirmModal({ show: false, productId: null, productName: "" }); // } catch (error) { // console.log("Remove failed", error); // } // }; // const fallbackImage = "/default-product.png"; // return ( //
//

// My Wishlist //

//
// {wishlistItems.map((item) => { // const image = // item?.product?.images?.gallery?.[0] || // item?.product?.variants?.[0]?.images?.[0] || // fallbackImage; // return ( //
// {/* Product Image */} //
// (e.target.src = fallbackImage)} // alt={item?.product?.name || "Product"} // className="object-cover h-full w-full transition-transform duration-500 group-hover:scale-105" // /> // {/* Remove Button */} // //
// {/* Product Info */} //
//

// {item?.product?.name || "Unknown Product"} //

// {/* Price */} // {item?.product?.basePrice && ( //

// ₹ {item.product.basePrice.toLocaleString()} //

// )} // {/* Added Date */} //

// Added on{" "} // // {new Date(item.createdAt).toLocaleDateString()} // //

// {/* Add To Cart Component */} // {/* Buttons */} //
// //
//
//
// ); // })} //
// {/* Confirmation Modal */} // {confirmModal.show && ( //
//
//

// Are you sure you want to delete
// // {confirmModal.productName} // {" "} // from your wishlist? //

//
// // //
//
//
// )} //
// ); // }; // export default Wishlist; import React, { useState } from "react"; import { useGetWishlistQuery, useRemoveFromWishlistMutation, } from "../../features/wishlist/wishlistApi"; import { useAddToCartMutation } from "../../features/cart/cartAPI"; import WishlistEmpty from "./WishlistEmpty"; import { useNavigate } from "react-router-dom"; const Wishlist = () => { const navigate = useNavigate(); const { data, isLoading, isError } = useGetWishlistQuery(); const [addToCart] = useAddToCartMutation(); const [removeFromWishlist] = useRemoveFromWishlistMutation(); const [confirm, setConfirm] = useState(null); const wishlist = data?.data?.wishlist || []; const fallbackImage = "/default-product.png"; if (isLoading) { return (
Loading wishlist…
); } if (isError || wishlist.length === 0) { return ; } const handleAddToCart = async (item) => { const token = localStorage.getItem("token"); if (!token) { alert("Please login first to add product to cart"); navigate("/login"); return; } try { await addToCart({ productId: item.productId, quantity: 1, }).unwrap(); await removeFromWishlist(item.productId).unwrap(); navigate("/cart"); } catch (err) { console.error(err); } }; return (

My Wishlist ({wishlist.length} items)

{wishlist.map((item) => { const image = item?.product?.images?.gallery?.[0] || item?.product?.variants?.[0]?.images?.[0] || fallbackImage; return (
{/* Image */}
(e.target.src = fallbackImage)} alt={item?.product?.name} className="h-full w-full object-contain p-6" /> {/* Remove */}
{/* Content */}

{item?.product?.category || "Product"}

{item?.product?.name}

₹ {item?.product?.basePrice?.toLocaleString()}

); })}
{/* Confirm Modal */} {confirm && (

Remove item?

Are you sure you want to remove{" "} {confirm.product?.name} {" "} from your wishlist?

)}
); }; export default Wishlist;