my orders

 avatar
unknown
plain_text
4 years ago
3.0 kB
5
Indexable
import axios from "axios";
import React, { useEffect, useState } from "react";
import useAuth from "../../hooks/useAuth";

const MyOrders = () => {
  const { user } = useAuth();
  const [orders, setOrders] = useState([]);
  const email = user.email;
  //   useEffect(() => {
  //     fetch(`http://localhost:5000/myOrders/${user?.email}`)
  //       .then((res) => res.json())
  //       .then((data) => setOrders(data));
  //   }, [user.email]);

  useEffect(() => {
    axios
      .get(`http://localhost:5000/myOrders/${email}`)
      .then((res) => setOrders(res.data));
  }, []);

  const handleDelete = (id) => {
    const proceed = window.confirm("Are you sure, you want to delete ?");
    if (proceed) {
      axios.delete(`http://localhost:5000/deleteOrder/${id}`).then((res) => {
        if (res.data.deletedCount > 0) {
          const remaining = orders.filter((service) => service._id !== id);
          setOrders(remaining);
        }
      });
    }
  };
  if (!orders || orders.length === 0) {
    return (
      <div className="container  text-center" style={{ marginBottom: "380px" }}>
        <div>
          <img
            className="img-fluid"
            src="https://i.ibb.co/277JQj1/nos-removebg-preview-1.png"
            alt=""
          />
        </div>
        <h2 className="text-danger">No Result Found !</h2>
      </div>
    );
  } else {
    return (
      <div className="container" style={{ marginBottom: "300px" }}>
        <div className="row mt-5">
          {orders.map((service) => {
            return (
              <div className="col-sm-6 my-4 ">
                <div className=" d-sm-flex   align-items-center shadow-lg h-100 rounded .justify-content-center">
                  <div className="w-50  d-flex justify-content-center align-items-center">
                    <img
                      src={service.img}
                      className="img-fluid w-75 pt-4 pt-sm-0 "
                      alt=""
                    />
                  </div>
                  <div className="card-body">
                    <p>
                      Status:{" "}
                      <span
                        className={
                          service.status === "Pending"
                            ? "text-danger"
                            : "text-success"
                        }
                      >
                        {service.status}
                      </span>
                    </p>

                    <h4 className="card-title">{service.name}</h4>

                    <button
                      className="btn btn-danger px-4"
                      onClick={() => handleDelete(service._id)}
                    >
                      Cancel
                    </button>
                  </div>
                </div>
              </div>
            );
          })}
        </div>
      </div>
    );
  }
};

export default MyOrders;
Editor is loading...