import React, { useState, useContext } from 'react' import { useNavigate } from 'react-router-dom' import api from '../api' import { CartContext } from '../context/CartContext' import { AuthContext } from '../context/AuthContext' import '../styles/global.css' export default function Checkout() { const navigate = useNavigate() const { cart, total, clearCart } = useContext(CartContext) const { token, user } = useContext(AuthContext) const [loading, setLoading] = useState(false) const [formData, setFormData] = useState({ shipping_address: user?.address || '', shipping_city: user?.city || '', shipping_postal_code: user?.postal_code || '', shipping_country: user?.country || '', }) const handleChange = (e) => { setFormData({ ...formData, [e.target.name]: e.target.value, }) } const handleSubmit = async (e) => { e.preventDefault() if (!token) { navigate('/login') return } try { setLoading(true) const response = await api.post('/orders', formData) alert('Order placed successfully!') clearCart() navigate(`/orders/${response.data.id}`) } catch (error) { console.error('Error placing order:', error) alert('Error placing order') } finally { setLoading(false) } } return (

Checkout

Shipping Address

Payment Method

💳 Credit/Debit Card

Payment processing simulated

Order Summary

{cart.map((item, index) => (
{item.product.name} x{item.quantity} ${((item.product.discount_price || item.product.price) * item.quantity).toFixed(2)}
))}
Total: ${(total + 10 + total * 0.1).toFixed(2)}
) }