Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. // useOrders.js
  2. import { useState, useEffect } from 'react';
  3. import OrderService from './OrderService';
  4.  
  5. function useOrders() {
  6. const [orders, setOrders] = useState([]);
  7.  
  8. function createDeleteHandler(id) {
  9. return async function () {
  10. await OrderService.delete(id);
  11. setOrders(orders.filter(order => order.id !== id));
  12. }
  13. }
  14.  
  15. function getDeletableOrders() {
  16. return orders.map(order => ({
  17. ...order,
  18. delete: createDeleteHandler(order.id),
  19. });
  20. }
  21.  
  22. async function fetchOrders() {
  23. const apiOrders = await OrderService.get();
  24. setOrders(apiOrders);
  25. }
  26.  
  27. useEffect(() => {
  28. fetchOrders();
  29. }, []);
  30.  
  31. return {
  32. orders: getDeletableOrders(),
  33. };
  34. }
  35.  
  36. export default useOrders;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement