-
- {/* */}
-
-
-
-
CMP - All Users
-
-
-
-
- {/* */}
-
-
-
-
-
-
-
-
-
-
-
-
-
- Name |
- email |
- Profile Image |
- Phone No. |
- Register At |
- Action |
-
-
-
- {currentUser && currentUser.map((item, index) =>
-
-
- {item?.name} |
- {item?.email} |
-
-
- |
- {item?.phone} |
-
-
-
-
- {new Date(`${item?.createdAt}`).toDateString()} , {`${formatAMPM(item?.createdAt)}`}
-
- |
-
-
-
-
-
-
-
-
-
-
- |
-
- )}
-
-
-
- {/* */}
-
-
-
-
-
- {/* */}
+ return (
+ <>
+
+
+
+ {/* */}
+
-
- >
- );
+ {/* */}
+
+
+
+
+
+
+
+
+
+
+ Customer Name |
+ Unique Id |
+ {/* Profile Image | */}
+
+ Date Registered |
+ Last Purchase |
+ Orders |
+ Action |
+
+
+
+ {currentUser &&
+ currentUser.map((item, index) => (
+
+ {item?.name} |
+ {item?._id} |
+ {/*
+
+ | */}
+
+
+ {new Date(
+ `${item?.createdAt}`
+ ).toDateString()}
+
+ {" "}
+ , {`${formatAMPM(item?.createdAt)}`}
+
+ |
+ last Purchase |
+ order count |
+
+
+
+
+
+ |
+
+ ))}
+
+
+
+ {/* */}
+
+
+
+
+
+ {/* */}
+
+
+
+ >
+ );
}
export default users;
diff --git a/src/views/UserAddress/addUserAddress.js b/src/views/customerDetails/addUserAddress.js
similarity index 100%
rename from src/views/UserAddress/addUserAddress.js
rename to src/views/customerDetails/addUserAddress.js
diff --git a/src/views/UserAddress/editUserAddress.js b/src/views/customerDetails/editUserAddress.js
similarity index 100%
rename from src/views/UserAddress/editUserAddress.js
rename to src/views/customerDetails/editUserAddress.js
diff --git a/src/views/UserAddress/mainAddress.js b/src/views/customerDetails/mainAddress.js
similarity index 100%
rename from src/views/UserAddress/mainAddress.js
rename to src/views/customerDetails/mainAddress.js
diff --git a/src/views/customerDetails/orderDetails.js b/src/views/customerDetails/orderDetails.js
new file mode 100644
index 0000000..3d7d50d
--- /dev/null
+++ b/src/views/customerDetails/orderDetails.js
@@ -0,0 +1,70 @@
+import axios from "axios";
+import React, { useState, useEffect } from "react";
+import { isAutheticated } from "src/auth";
+import swal from "sweetalert";
+
+const OrderDetails = ({ _id, setLoading1 }) => {
+ const token = isAutheticated();
+ const [userOrder, setUserOrder] = useState();
+ // const [loading, setLoading] = useState(true);
+
+ const getOrders = async () => {
+ try {
+ const response = await axios.get(`/api/v1/admin/users/orders/${_id}`, {
+ headers: {
+ Authorization: `Bearer ${token}`,
+ },
+ });
+ setUserOrder(response.data.order);
+ setLoading1(false);
+ } catch (error) {
+ console.error("Error fetching orders:", error);
+ swal({
+ title: "Warning",
+ text: error.message,
+ icon: "error",
+ button: "Close",
+ dangerMode: true,
+ });
+ setLoading1(false);
+ }
+ };
+
+ useEffect(() => {
+ getOrders();
+ }, [_id]);
+ console.log(userOrder, "userOrder");
+
+ // if (loading) {
+ // return
Loading...
;
+ // }
+
+ return (
+ <>
+
+ {userOrder?.length > 0
+ ? new Date(userOrder[0]?.createdAt).toLocaleString("en-IN", {
+ weekday: "short",
+ month: "short",
+ day: "numeric",
+ year: "numeric",
+ hour: "numeric",
+ minute: "numeric",
+ hour12: true,
+ })
+ : userOrder
+ ? "No Purchase"
+ : "Error"}
+ |
+
+ {userOrder?.length > 0
+ ? userOrder?.length
+ : userOrder
+ ? "No Order"
+ : "Error"}
+ |
+ >
+ );
+};
+
+export default OrderDetails;
diff --git a/src/views/UserAddress/userTable.js b/src/views/customerDetails/userTable.js
similarity index 75%
rename from src/views/UserAddress/userTable.js
rename to src/views/customerDetails/userTable.js
index 64d5b88..9d44431 100644
--- a/src/views/UserAddress/userTable.js
+++ b/src/views/customerDetails/userTable.js
@@ -17,32 +17,34 @@ import {
import SearchIcon from "@mui/icons-material/Search";
import Fuse from "fuse.js";
import { Typography } from "@material-ui/core";
+import OrderDetails from "./orderDetails";
const UserTable = () => {
const token = isAutheticated();
const [query, setQuery] = useState("");
const navigate = useNavigate();
const [loading, setLoading] = useState(true);
+ const [loading1, setLoading1] = useState(true);
const [success, setSuccess] = useState(true);
- const [userAddress, setUserAddress] = useState([]);
+ const [users, setUsers] = useState([]);
const [currentPage, setCurrentPage] = useState(1);
const [itemPerPage, setItemPerPage] = useState(10);
- const [showData, setShowData] = useState(userAddress);
+ const [showData, setShowData] = useState(users);
const handleShowEntries = (e) => {
setCurrentPage(1);
setItemPerPage(e.target.value);
};
- const getUserAddressess = async () => {
+ const getUsers = async () => {
axios
- .get(`/api/user-address/getAddressess`, {
+ .get(`/api/v1/admin/users`, {
headers: {
Authorization: `Bearer ${token}`,
},
})
.then((res) => {
- setUserAddress(res.data?.userAddress);
+ setUsers(res.data.users);
setLoading(false);
})
.catch((error) => {
@@ -58,57 +60,58 @@ const UserTable = () => {
};
useEffect(() => {
- getUserAddressess();
+ getUsers();
}, [success]);
- console.log(userAddress);
+ console.log(users);
useEffect(() => {
const loadData = () => {
const indexOfLastPost = currentPage * itemPerPage;
const indexOfFirstPost = indexOfLastPost - itemPerPage;
- setShowData(userAddress.slice(indexOfFirstPost, indexOfLastPost));
+ setShowData(users.slice(indexOfFirstPost, indexOfLastPost));
};
loadData();
- }, [currentPage, itemPerPage, userAddress]);
+ }, [currentPage, itemPerPage, users]);
+ console.log(users);
- const handleDelete = (id) => {
- swal({
- title: "Are you sure?",
- icon: "error",
- buttons: {
- Yes: { text: "Yes", value: true },
- Cancel: { text: "Cancel", value: "cancel" },
- },
- }).then((value) => {
- if (value === true) {
- axios
- .delete(`/api/user-address/deleteAddress/${id}`, {
- headers: {
- "Access-Control-Allow-Origin": "*",
- Authorization: `Bearer ${token}`,
- },
- })
- .then((res) => {
- swal({
- title: "Deleted",
- text: "Address Deleted successfully!",
- icon: "success",
- button: "ok",
- });
- setSuccess((prev) => !prev);
- })
- .catch((err) => {
- swal({
- title: "Warning",
- text: "Something went wrong!",
- icon: "error",
- button: "Retry",
- dangerMode: true,
- });
- });
- }
- });
- };
+ // const handleDelete = (id) => {
+ // swal({
+ // title: "Are you sure?",
+ // icon: "error",
+ // buttons: {
+ // Yes: { text: "Yes", value: true },
+ // Cancel: { text: "Cancel", value: "cancel" },
+ // },
+ // }).then((value) => {
+ // if (value === true) {
+ // axios
+ // .delete(`/api/user-address/deleteAddress/${id}`, {
+ // headers: {
+ // "Access-Control-Allow-Origin": "*",
+ // Authorization: `Bearer ${token}`,
+ // },
+ // })
+ // .then((res) => {
+ // swal({
+ // title: "Deleted",
+ // text: "Address Deleted successfully!",
+ // icon: "success",
+ // button: "ok",
+ // });
+ // setSuccess((prev) => !prev);
+ // })
+ // .catch((err) => {
+ // swal({
+ // title: "Warning",
+ // text: "Something went wrong!",
+ // icon: "error",
+ // button: "Retry",
+ // dangerMode: true,
+ // });
+ // });
+ // }
+ // });
+ // };
return (
@@ -125,10 +128,10 @@ const UserTable = () => {
"
>
- Users
+ All Customers
-
*/}