diff --git a/src/pages/CheckoutPage.tsx b/src/pages/CheckoutPage.tsx index b6b8a79..151a0e8 100644 --- a/src/pages/CheckoutPage.tsx +++ b/src/pages/CheckoutPage.tsx @@ -6,7 +6,7 @@ import { import Navbar from '../components/Navbar'; import { Footer } from '../components/Footer'; import { ImageWithFallback } from '../components/figma/ImageWithFallback'; -import { useNavigate } from 'react-router-dom'; +import { useLocation, useNavigate } from 'react-router-dom'; import { useAddCardToCartMutation, useGetCheckoutPageDataQuery } from '../Redux/services/cards.service'; import LoadingSpinner from '../components/LoadingSpinner'; import { toast } from 'sonner'; @@ -187,9 +187,9 @@ function CheckoutConfigCard({ if (bookingId) { navigate(`/payment/${bookingId}`) } else { - throw new Error(response?.error?.data?.message) + throw new Error(response?.error?.data?.message) } - } catch (error:any) { + } catch (error: any) { toast.error(error.message); } } @@ -307,6 +307,7 @@ export function CheckoutPage({ currentPage, }: any) { const navigate = useNavigate(); + const location = useLocation() // Default item (you can pass via props later) const baseUrl = import.meta.env.VITE_BASE_URL; @@ -320,11 +321,12 @@ export function CheckoutPage({ const flexiCard = checkoutPageData?.cards[0] ?? null const unlimitedCard = checkoutPageData?.cards[1] ?? null const attractions = checkoutPageData?.attractions ?? []; - - const [checkoutItem, setCheckoutItem] = useState(flexiCard); + + const selectedCard = location.state?.selectedCard === "selective_pass" ? flexiCard : unlimitedCard + const [checkoutItem, setCheckoutItem] = useState(selectedCard); useEffect(() => { - setCheckoutItem(flexiCard) + setCheckoutItem(selectedCard) }, [cards]) if (isLoading) { diff --git a/src/pages/PassesPage.tsx b/src/pages/PassesPage.tsx index 3396a39..2900536 100644 --- a/src/pages/PassesPage.tsx +++ b/src/pages/PassesPage.tsx @@ -166,11 +166,10 @@ export function PassesPage({ return () } - - const handleCheckoutClick = () => { + const handleCheckoutClick = (cardTypeName:string) => { console.log('Proceeding to checkout for user:', user); // Add your checkout logic here - navigate('/checkout'); + navigate('/checkout', { state: { selectedCard: cardTypeName } }); }; const handleSignInClick = () => { @@ -283,7 +282,7 @@ export function PassesPage({ ? "bg-primary hover:bg-primary/90 text-white hover:shadow-lg" : "bg-gray-400 hover:bg-gray-400 text-white hover:shadow-md" }`} - onClick={user ? handleCheckoutClick : handleSignInClick} + onClick={() => user ? handleCheckoutClick(cards[0]?.cardType?.cardTypeName) : handleSignInClick} disabled={selectedPass !== passTypes[0].id} > @@ -373,7 +372,7 @@ export function PassesPage({ }`} disabled={selectedPass !== passTypes[1].id} - onClick={user ? handleCheckoutClick : handleSignInClick} + onClick={() => user ? handleCheckoutClick(cards[1]?.cardType?.cardTypeName) : handleSignInClick} > {user ? 'PURCHASE NOW' : 'LOGIN TO BUY PASS'}