You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.6 KiB
JavaScript
78 lines
2.6 KiB
JavaScript
import Message from "../../components/Message";
|
|
import Loader from "../../components/Loader";
|
|
import { Link } from "react-router-dom";
|
|
import { useGetMyOrdersQuery } from "../../redux/api/orderApiSlice";
|
|
|
|
const UserOrder = () => {
|
|
const { data: orders, isLoading, error } = useGetMyOrdersQuery();
|
|
console.log(orders)
|
|
return (
|
|
<div className="container mx-auto">
|
|
<h2 className="text-2xl font-semibold mb-4">My Orders</h2>
|
|
|
|
{isLoading ? (
|
|
<Loader />
|
|
) : error ? (
|
|
<Message variant="danger">{error?.data?.error || error.error}</Message>
|
|
) : (
|
|
<table className="w-full">
|
|
<thead>
|
|
<tr>
|
|
<td className="py-2">IMAGE</td>
|
|
<td className="py-2">ID</td>
|
|
<td className="py-2">DATE</td>
|
|
<td className="py-2">TOTAL</td>
|
|
<td className="py-2">PAID</td>
|
|
<td className="py-2">DELIVERED</td>
|
|
<td className="py-2"></td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{orders.map((order) => (
|
|
<tr key={order._id}>
|
|
<img
|
|
src={order.orderItems[0].image}
|
|
alt={order.user}
|
|
className="w-[6rem] mb-5"
|
|
/>
|
|
|
|
<td className="py-2">{order._id}</td>
|
|
<td className="py-2">{order.createdAt.substring(0, 10)}</td>
|
|
<td className="py-2">$ {order.totalPrice}</td>
|
|
<td className="py-2">{order.isPaid ? (
|
|
<p className="p-1 text-center bg-green-400 w-[6rem] rounded-full">
|
|
Completed
|
|
</p>
|
|
): (
|
|
<p className="p-1 text-center bg-red-400 w-[6rem] rounded-full">
|
|
Pending
|
|
</p>
|
|
)}</td>
|
|
<td className="py-2 px-2">{order.isDelivered ? (
|
|
<p className="p-1 text-center bg-green-400 w-[6rem] rounded-full">
|
|
Completed
|
|
</p>
|
|
): (
|
|
<p className="p-1 text-center bg-red-400 w-[6rem] rounded-full">
|
|
Pending
|
|
</p>
|
|
)}</td>
|
|
|
|
<td className="px-2 py-2">
|
|
<Link to={`/order/${order._id}`}>
|
|
<button className="bg-pink-400 text-black py-2 px-3 rounded">
|
|
View Details
|
|
</button>
|
|
</Link>
|
|
</td>
|
|
</tr>
|
|
))}
|
|
</tbody>
|
|
</table>
|
|
)}
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default UserOrder;
|