+
+ TRANSACTIONS
+
+ {transactions.length > 0 ? (
+ <>
+
+
+
+ | TransactionID |
+ User |
+ Product |
+ Date |
+ Status |
+ Action |
+
+
+
+ {transactions.map((t) => (
+
+ | {t.TransactionID} |
+ {t.UserName ? t.UserName : "N/A"} |
+ {t.ProductName ? t.ProductName : "N/A"} |
+ {t.Date} |
+ {t.PaymentStatus} |
+
+ {
+ handleRemoveTransaction(t.TransactionID);
+ }}
+ className="hover:text-red-600 cursor-pointer transition-all text-xl"
+ />
+ |
+
+ ))}
+
+
+
+ >
+ ) : (
+
+ No transaction exists!
+
+ )}
+
+ );
+}
diff --git a/frontend/src/pages/UserDashboard.jsx b/frontend/src/pages/UserDashboard.jsx
new file mode 100644
index 0000000..9cab96d
--- /dev/null
+++ b/frontend/src/pages/UserDashboard.jsx
@@ -0,0 +1,91 @@
+import { useEffect, useState } from "react";
+import { getUsers, removeUser } from "../api/admin";
+import { MdDelete } from "react-icons/md";
+import Pagination from "../components/Pagination";
+
+export default function UserDashboard() {
+ const [users, setUsers] = useState([]);
+ const [total, setTotal] = useState(0);
+ const [currentPage, setCurrentPage] = useState(1);
+
+ let pageLimit = 10;
+
+ const onChangePage = (page, limit = 10) => {
+ setCurrentPage(page);
+ fetchUsers(page, limit);
+ };
+
+ const fetchUsers = (page = 1, limit = 10) => {
+ getUsers(page, limit).then(({ users, total }) => {
+ setUsers(users);
+ setTotal(total);
+ });
+ };
+
+ const handleRemoveUser = (id) => {
+ removeUser(id)
+ .then((res) => {
+ fetchUsers(currentPage);
+ })
+ .catch((err) => {
+ console.log(err);
+ });
+ };
+
+ //Get user when initialize the component
+ useEffect(fetchUsers, []);
+
+ return (
+