diff --git a/donutshop_ecommerce/src/app/cart/page.js b/donutshop_ecommerce/src/app/cart/page.js index 91110cf..bd138a6 100644 --- a/donutshop_ecommerce/src/app/cart/page.js +++ b/donutshop_ecommerce/src/app/cart/page.js @@ -1,16 +1,39 @@ "use client" -import React, { useContext } from 'react' +import React, { useContext, useEffect, useState } from 'react' import { CartContext, productTotal } from '../../components/AppContext' import Image from 'next/image'; import { IoMdCloseCircleOutline } from "react-icons/io"; +import AddressInfo from '../../components/layout/AddressInfo'; +import useProfile from '../../components/UseProfile'; const CartPage = () => { const {cartProducts, removeCartProduct} = useContext(CartContext); + const [address, setAddress] = useState({}) + const {data:profileCheckoutData} = useProfile() + + useEffect(() => { + if(profileCheckoutData?.city){ + const {phoneNumber, streetAddress, city, stateProvince, zipCode, country} = profileCheckoutData; + const addressFormProfile = {phoneNumber, streetAddress, city, stateProvince, zipCode, country} + setAddress(addressFormProfile) + } + }, [profileCheckoutData]) + + function handleAddresschange(propName, value){ + setAddress(prevAddress => ({...prevAddress, [propName]:value})); + } + + //checkout to Stripe + function handleCheckout(ev){ + fetch('/api/checkout', { + + }) + } //cart total - let total = 0 + let subtotal = 0 for(const p of cartProducts){ - total += productTotal(p) + subtotal += productTotal(p) } @@ -18,7 +41,7 @@ const CartPage = () => {
My cart
-Sub-total ${total}
+subtotal
+${subtotal}
+Delivery Fees
+$4.99
+Order total
+${subtotal + 5}
+Summary
+Shipping Address
+ +Loading...
} if(status === 'unauthenticated'){ diff --git a/donutshop_ecommerce/src/app/users/page.js b/donutshop_ecommerce/src/app/users/page.js index 7a4c418..720714d 100644 --- a/donutshop_ecommerce/src/app/users/page.js +++ b/donutshop_ecommerce/src/app/users/page.js @@ -7,13 +7,13 @@ import Link from 'next/link'; const Userspage = () => { const {data, loading} = useProfile(); - const [users, setUser] = useState([]); + const [users, setUsers] = useState([]); useEffect(() => { - fetch('api/users').then(response => { + fetch('/api/users').then(response => { response.json().then(users => { - setUser(users) + setUsers(users) }) }) }, []) diff --git a/donutshop_ecommerce/src/components/layout/AddressInfo.js b/donutshop_ecommerce/src/components/layout/AddressInfo.js new file mode 100644 index 0000000..74eb039 --- /dev/null +++ b/donutshop_ecommerce/src/components/layout/AddressInfo.js @@ -0,0 +1,38 @@ +import React from 'react' + +const AddressInfo = ({addressProps, setAddressProps}) => { + const {phoneNumber, streetAddress, city, stateProvince, zipCode, country} = addressProps; + + return ( + <> +