Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3365d253a0 | |||
| 0777de9290 | |||
| 20adf3439c |
@@ -1,8 +1,8 @@
|
||||
import Razorpay from "razorpay";
|
||||
|
||||
const razorpay = new Razorpay({
|
||||
key_id: process.env.NEXT_RAZORPAY_CLIENT_ID,
|
||||
key_secret: process.env.NEXT_RAZORPAY_SECRET_KEY,
|
||||
key_id: "rzp_live_REdeGZclfm8KFo",
|
||||
key_secret: "BXgwGPsYhxgUYsozCr2uoEZC",
|
||||
});
|
||||
|
||||
export async function POST(req) {
|
||||
|
||||
@@ -27,7 +27,7 @@ export const ProductContextProvider = ({ children }) => {
|
||||
fetchCategory();
|
||||
}, []);
|
||||
|
||||
const cartFn = async (variantId, designId, quantity) => {
|
||||
const cartFn = async (variantId, designId, quantity, showToast = true) => {
|
||||
|
||||
try{
|
||||
const response = await authAxios.post('/orders/cart/manage_item/',{
|
||||
@@ -35,7 +35,9 @@ export const ProductContextProvider = ({ children }) => {
|
||||
design: designId,
|
||||
quantity: quantity
|
||||
})
|
||||
toast.success('Modified Cart Successfully!')
|
||||
if (showToast) {
|
||||
toast.success('Modified Cart Successfully!')
|
||||
}
|
||||
return response
|
||||
}
|
||||
catch(error){
|
||||
|
||||
@@ -83,7 +83,7 @@ const PaymentComponent = ({ amount, onSuccess }) => {
|
||||
const order = await createOrder();
|
||||
|
||||
const options = {
|
||||
key: "rzp_test_Xf4wnkvQQeUnCq",
|
||||
key: "rzp_live_REdeGZclfm8KFo",
|
||||
amount: order.amount,
|
||||
currency: order.currency,
|
||||
name: "Rudraksha",
|
||||
|
||||
@@ -78,8 +78,8 @@ const ProductGallery = ({ productId }) => {
|
||||
<div
|
||||
className="relative mb-4 h-full"
|
||||
ref={imageContainerRef}
|
||||
onMouseMove={handleMouseMove}
|
||||
onMouseLeave={handleMouseLeave}
|
||||
// onMouseMove={handleMouseMove}
|
||||
// onMouseLeave={handleMouseLeave}
|
||||
>
|
||||
<Image
|
||||
src={`${backendUrl}${productImages[currentImageIndex]}`}
|
||||
|
||||
@@ -79,9 +79,8 @@ const ShippingPolicy = () => {
|
||||
</h2>
|
||||
<p className="text-lg mt-6">
|
||||
Note: Gupta Rudraksha only uses the expedited shipping options and
|
||||
ensures the fastest delivery using any of the above courier services
|
||||
based on their estimated delivery date. BlueDart is used for
|
||||
deliveries all over India.
|
||||
ensures the fastest delivery using any courier services
|
||||
based on their estimated delivery date.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
"use client";
|
||||
import React, { useContext, useEffect, useState } from "react";
|
||||
import { Trash2, Plus } from "lucide-react";
|
||||
@@ -43,12 +44,12 @@ const ShoppingCart = () => {
|
||||
}, []);
|
||||
|
||||
|
||||
const handleQuantityChange = async (variantId, designId, quantityChange) => {
|
||||
const response = await cartFn(variantId, designId, quantityChange);
|
||||
const handleQuantityChange = async (variantId, designId, quantityChange, showToast = true) => {
|
||||
const response = await cartFn(variantId, designId, quantityChange, showToast);
|
||||
console.log(response)
|
||||
if (response?.status == 200 || response?.status == 204) {
|
||||
setCartItems((prev) => {
|
||||
if (!prev) return prev;
|
||||
|
||||
|
||||
const updatedItems = prev[0].items.map((item) => {
|
||||
if (item.variant.id === variantId && item?.design?.id === designId) {
|
||||
@@ -86,6 +87,15 @@ const ShoppingCart = () => {
|
||||
}
|
||||
};
|
||||
|
||||
const clearCart = async () => {
|
||||
if (!cartItems || !cartItems[0]?.items?.length) return;
|
||||
|
||||
for (const item of cartItems[0].items) {
|
||||
await handleQuantityChange(item.variant.id, item.design?.id, -item.quantity, false);
|
||||
}
|
||||
toast.success('Cart cleared successfully!');
|
||||
};
|
||||
|
||||
if (!cartItems) {
|
||||
return null;
|
||||
}
|
||||
@@ -138,14 +148,6 @@ const ShoppingCart = () => {
|
||||
}
|
||||
};
|
||||
|
||||
if (!cartItems) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!cartItems[0]?.items?.length) {
|
||||
return <EmptyCart />;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="w-full bg-white">
|
||||
<div className="w-full px-4 md:px-8 max-w-[1600px] mx-auto font-['Inter']">
|
||||
@@ -232,8 +234,8 @@ const ShoppingCart = () => {
|
||||
size={18}
|
||||
onClick={() =>
|
||||
handleQuantityChange(
|
||||
item.variant.id,
|
||||
item.design.id,
|
||||
item?.variant?.id,
|
||||
item?.design?.id,
|
||||
-item.quantity
|
||||
)
|
||||
}
|
||||
@@ -250,7 +252,10 @@ const ShoppingCart = () => {
|
||||
<button className="text-[#c19a5b] hover:text-[#ab885b] font-medium order-2 sm:order-1">
|
||||
<Link href="/">← CONTINUE SHOPPING</Link>
|
||||
</button>
|
||||
<button className="text-[#c19a5b] hover:text-[#ab885b] sm:ml-auto font-medium order-1 sm:order-2">
|
||||
<button
|
||||
onClick={clearCart}
|
||||
className="text-[#c19a5b] hover:text-[#ab885b] sm:ml-auto font-medium order-1 sm:order-2"
|
||||
>
|
||||
CLEAR SHOPPING CART
|
||||
</button>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user