// 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 //
//
//
//
//
//
//
//
//
//
//
// //
//
//
//
// // // // // // // // // // // // // {!loading && showData.length === 0 && ( // // // // )} // {loading ? ( // // // // ) : ( // showData.map((order, i) => { // return ( // // // // // // // // // ); // }) // )} // //
Order IDCustomerOrder valueOrder AtStatusActions
//
No Data Available
//
// Loading... //
{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;