From 82e03978b89938219958032efb1448cc76baa181 Mon Sep 17 00:00:00 2001 From: Saumit Date: Sat, 27 Sep 2025 02:14:26 +0530 Subject: Initial snapshot - OpenTelemetry demo 2.1.3 -f --- src/frontend/components/Cart/CartDetail.tsx | 81 +++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/frontend/components/Cart/CartDetail.tsx (limited to 'src/frontend/components/Cart/CartDetail.tsx') diff --git a/src/frontend/components/Cart/CartDetail.tsx b/src/frontend/components/Cart/CartDetail.tsx new file mode 100644 index 0000000..4d777e4 --- /dev/null +++ b/src/frontend/components/Cart/CartDetail.tsx @@ -0,0 +1,81 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +import { useRouter } from 'next/router'; +import { useCallback } from 'react'; +import CartItems from '../CartItems'; +import CheckoutForm from '../CheckoutForm'; +import { IFormData } from '../CheckoutForm/CheckoutForm'; +import SessionGateway from '../../gateways/Session.gateway'; +import { useCart } from '../../providers/Cart.provider'; +import { useCurrency } from '../../providers/Currency.provider'; +import * as S from '../../styles/Cart.styled'; + +const { userId } = SessionGateway.getSession(); + +const CartDetail = () => { + const { + cart: { items }, + emptyCart, + placeOrder, + } = useCart(); + const { selectedCurrency } = useCurrency(); + const { push } = useRouter(); + + const onPlaceOrder = useCallback( + async ({ + email, + state, + streetAddress, + country, + city, + zipCode, + creditCardCvv, + creditCardExpirationMonth, + creditCardExpirationYear, + creditCardNumber, + }: IFormData) => { + const order = await placeOrder({ + userId, + email, + address: { + streetAddress, + state, + country, + city, + zipCode, + }, + userCurrency: selectedCurrency, + creditCard: { + creditCardCvv, + creditCardExpirationMonth, + creditCardExpirationYear, + creditCardNumber, + }, + }); + + push({ + pathname: `/cart/checkout/${order.orderId}`, + query: { order: JSON.stringify(order) }, + }); + }, + [placeOrder, push, selectedCurrency] + ); + + return ( + +
+ + Shopping Cart + + Empty Cart + + + +
+ +
+ ); +}; + +export default CartDetail; -- cgit v1.2.3