123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- import React from 'react';
- import { Container, Typography, Paper, Link } from '@mui/material';
- import { Table, TableBody, TableContainer, TableHead, TableRow } from "@mui/material";
- import { StyledTableCell, StyledTableRow } from './StyledTableElements';
- import { COrdersPagination } from './Pagination';
- import { COrdersSearchInput } from './SearchInput';
- import { MyLink } from '.';
- import { useSelector } from 'react-redux';
- import { useGetOrdersCountQuery, useGetOrdersQuery } from '../reducers';
- const UsersList = ({ orders, fromPage, pageSize }) => {
- let headCells = [
- {
- id: '#',
- numeric: true,
- disablePadding: true,
- label: '#',
- align: "center"
- },
- {
- id: 'Date',
- numeric: true,
- disablePadding: true,
- label: 'Date',
- },
- {
- id: 'Order ID',
- numeric: true,
- disablePadding: true,
- label: 'Order ID',
- },
- {
- id: 'Total ($)',
- numeric: true,
- disablePadding: true,
- label: 'Total ($)',
- align: "right"
- },
- {
- id: 'Owner',
- numeric: true,
- disablePadding: true,
- label: 'Owner',
- align: "right"
- },
- {
- id: 'Note',
- numeric: true,
- disablePadding: true,
- label: 'Note',
- align: "right"
- },
- ]
- return (
- <>
- <Container maxWidth="lg">
- <COrdersSearchInput />
- <TableContainer component={Paper} >
- <Table sx={{ overflow: 'scroll' }} >
- <TableHead>
- <TableRow>
- {
- headCells.map(headCell => {
- return <StyledTableCell key={headCell.id} align={headCell.align}>{headCell.label}</StyledTableCell>
- })
- }
- </TableRow>
- </TableHead>
- {orders?.length > 0 && (
- <TableBody>
- {
- orders.map((order, index) => {
- return (
- <StyledTableRow key={order._id}>
- <StyledTableCell align="right" >
- <Typography>
- {(fromPage * pageSize) + index + 1}.
- </Typography>
- </StyledTableCell>
- <StyledTableCell >
- {new Date(+order.createdAt).toLocaleString()}
- </StyledTableCell>
- <StyledTableCell >
- <MyLink to={`/order/${order._id}`}>
- <Typography >
- {order._id}
- </Typography>
- </MyLink>
- </StyledTableCell>
- <StyledTableCell align="right" >
- <Typography >
- {order.total}
- </Typography>
- </StyledTableCell>
- <StyledTableCell align="right" >
- <Link href='#'>
- <Typography>
- {order.owner?.nick}
- </Typography>
- </Link>
- </StyledTableCell>
- <StyledTableCell align="right" >
- <Typography>
- {order.notes}
- </Typography>
- </StyledTableCell>
- </StyledTableRow>
- )
- })
- }
- </TableBody>
- )}
- <COrdersPagination />
- </Table>
- </TableContainer>
- </Container>
- </>
- )
- }
- const COrdersList = () => {
- let state = useSelector(state => state);
- const searchStr = state.frontend.ordersSearchStr;
- const fromPage = state.frontend.ordersPaging.fromPage;
- const pageSize = state.frontend.ordersPaging.pageSize;
- const ordersResult = useGetOrdersQuery({ fromPage, pageSize, searchStr });
- const ordersCountResult = useGetOrdersCountQuery({ searchStr });
- let isLoading = ordersResult.isLoading || ordersCountResult.isLoading;
- let orders = !isLoading && ordersResult.data?.OrderFind;
- return !isLoading && orders && <OrderList orders={orders} fromPage={fromPage} pageSize={pageSize} />
- }
- ////export { COrdersList };
|