Orders.jsx 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { useDispatch,useSelector } from 'react-redux';
  2. import { useEffect, useState } from 'react';
  3. import { Route } from 'react-router-dom';
  4. import s from './Orders.module.css';
  5. import { asyncGetOrders } from '../../redux/orders/operations';
  6. import {getOrders} from '../../redux/orders/selector';
  7. import Order from './Order/Order';
  8. import Pagination from '../PaginationBar/PaginationBar';
  9. const Orders = () => {
  10. const dispatch = useDispatch();
  11. const orders = useSelector(getOrders);
  12. const [page, setPage] = useState(1);
  13. const handlePageChange = (page) => setPage(page)
  14. useEffect(() => {
  15. dispatch(asyncGetOrders())
  16. }, [dispatch]);
  17. return (
  18. <Route>
  19. <ul className={s.orders_list}>
  20. {orders.length !== 0 && orders.slice((page-1)*5,(page*5)).map((order,i) => <Order key={i} order={order} />)}
  21. </ul>
  22. <Pagination
  23. page={page}
  24. total={Math.ceil(orders.length/5)}
  25. handlePageChange={handlePageChange}
  26. />
  27. </Route>
  28. );
  29. };
  30. export default Orders;