// import React, { useState, useEffect } from "react";
// import { Link } from "react-router-dom";
// import axios from "axios";
// import { isAutheticated } from "src/auth";
// function DispatchedOrders() {
// const token = isAutheticated();
// const [loading, setLoading] = useState(true);
// const [success, setSuccess] = useState(true);
// const [dispatchedOrdersData, setDispatchedOrdersData] = useState([]);
// const [currentPage, setCurrentPage] = useState(1);
// const [itemPerPage, setItemPerPage] = useState(10);
// const [showData, setShowData] = useState(dispatchedOrdersData);
// const handleShowEntries = (e) => {
// setCurrentPage(1);
// setItemPerPage(e.target.value);
// };
// useEffect(() => {
// function getDispatchedOrder() {
// axios
// .get(`/api/order/getAll/dispatched`, {
// headers: {
// "Access-Control-Allow-Origin": "*",
// Authorization: `Bearer ${token}`,
// },
// })
// .then((res) => {
// setDispatchedOrdersData(res.data.order);
// console.log(res.data.order);
// setLoading(false);
// })
// .catch((err) => {
// console.log(err);
// setLoading(false);
// });
// }
// getDispatchedOrder();
// }, []);
// useEffect(() => {
// const loadData = () => {
// const indexOfLastPost = currentPage * itemPerPage;
// const indexOfFirstPost = indexOfLastPost - itemPerPage;
// setShowData(
// dispatchedOrdersData.slice(indexOfFirstPost, indexOfLastPost)
// );
// };
// loadData();
// }, [currentPage, itemPerPage, dispatchedOrdersData]);
// return (
//
//
//
//
//
//
//
// Dispatched Orders
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
// Order ID |
// Customer |
// Order value |
// Order At |
// Status |
// Actions |
//
//
//
// {!loading && showData.length === 0 && (
//
//
// No Data Available
// |
//
// )}
// {loading ? (
//
//
// Loading...
// |
//
// ) : (
// showData.map((order, i) => {
// return (
//
// {order?.orderID} |
//
// {order?.user?.name}
// |
//
// ₹{order?.total_amount}
// |
//
// {new Date(order?.paidAt).toLocaleString(
// "en-IN",
// {
// month: "short",
// day: "numeric",
// year: "numeric",
// hour: "2-digit",
// minute: "numeric",
// hour12: true,
// }
// )}
// |
//
//
// {order?.orderStatus}
//
// |
//
// {/* */}
//
//
//
// |
//
// );
// })
// )}
//
//
//
//
//
//
// Showing {currentPage * itemPerPage - itemPerPage + 1} to{" "}
// {Math.min(
// currentPage * itemPerPage,
// dispatchedOrdersData.length
// )}{" "}
// of {dispatchedOrdersData.length} entries
//
//
//
//
//
// -
// setCurrentPage((prev) => prev - 1)}
// >
// Previous
//
//
// {!(currentPage - 1 < 1) && (
// -
//
// setCurrentPage((prev) => prev - 1)
// }
// >
// {currentPage - 1}
//
//
// )}
// -
//
// {currentPage}
//
//
// {!(
// (currentPage + 1) * itemPerPage - itemPerPage >
// dispatchedOrdersData.length - 1
// ) && (
// -
// {
// setCurrentPage((prev) => prev + 1);
// }}
// >
// {currentPage + 1}
//
//
// )}
// -
// dispatchedOrdersData.length - 1
// )
// ? "paginate_button page-item next"
// : "paginate_button page-item next disabled"
// }
// >
// setCurrentPage((prev) => prev + 1)}
// >
// Next
//
//
//
//
//
//
//
//
//
//
//
//
//
// );
// }
// export default DispatchedOrders;
import React, { useState, useEffect } from "react";
import {
Box,
Button,
Paper,
Table,
TableBody,
TableCell,
TableContainer,
TableHead,
TableRow,
Typography,
TablePagination,
TextField,
MenuItem,
FormControl,
InputLabel,
Select,
Skeleton,
} from "@mui/material";
import { useNavigate } from "react-router-dom";
import axios from "axios";
import { isAutheticated } from "src/auth";
const DispatchedOrders = () => {
const [orders, setOrders] = useState([]);
const [loading, setLoading] = useState(true);
const [page, setPage] = useState(0);
const [rowsPerPage, setRowsPerPage] = useState(5);
const [totalOrders, setTotalOrders] = useState(0);
const [searchField, setSearchField] = useState("Order ID");
const [searchText, setSearchText] = useState("");
const navigate = useNavigate();
const token = isAutheticated();
// Fetch orders with pagination
const fetchOrders = async (page, limit) => {
setLoading(true);
try {
const response = await axios.get("/api/get-dispatched-order-admin", {
headers: {
Authorization: `Bearer ${token}`,
},
params: {
page: page + 1, // Adjusting for zero-based index in the UI
limit,
searchField,
searchText,
},
});
console.log(response);
setOrders(response?.data?.dispatchedOrders);
setTotalOrders(response?.data?.totalOrders);
} catch (error) {
console.error("Error fetching orders:", error);
} finally {
setLoading(false);
}
};
useEffect(() => {
fetchOrders(page, rowsPerPage);
}, [page, rowsPerPage, searchField, searchText]);
const handleSearchChange = (event) => {
setSearchText(event.target.value);
};
const handleSearchFieldChange = (event) => {
setSearchField(event.target.value);
};
const handleChangePage = (event, newPage) => {
setPage(newPage);
};
const handleChangeRowsPerPage = (event) => {
setRowsPerPage(parseInt(event.target.value, 10));
setPage(0);
};
const filteredOrders = orders?.filter((order) => {
if (searchField === "Order ID") {
return order.uniqueId.toLowerCase().includes(searchText.toLowerCase());
}
if (searchField === "Status") {
return order.status.toLowerCase().includes(searchText.toLowerCase());
}
return true;
});
return (
Dispatched Order Placed List
Search By
Order ID
Order Date
Items
Order Value
Status
Action
{loading ? (
Array.from(new Array(rowsPerPage)).map((_, index) => (
))
) : filteredOrders.length > 0 ? (
filteredOrders.map((order) => (
{order.uniqueId}
{new Date(order.createdAt).toDateString()}
, {formatAMPM(order.createdAt)}
{order.orderItem.length}
{order.grandTotal.toFixed(2)}
{order.status}
))
) : (
Data not found
)}
);
};
// Helper function to format time as AM/PM
const formatAMPM = (date) => {
var hours = new Date(date).getHours();
var minutes = new Date(date).getMinutes();
var ampm = hours >= 12 ? "PM" : "AM";
hours = hours % 12;
hours = hours ? hours : 12;
minutes = minutes < 10 ? "0" + minutes : minutes;
var strTime = hours + ":" + minutes + " " + ampm;
return strTime;
};
export default DispatchedOrders;