Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. import { useState, useEffect } from "react";
  2.  
  3. export const render = result => match =>
  4. result.pending ? match.pending()
  5. : result.error ? match.error(result.error)
  6. : result.data ? match.data(result.data)
  7. : null // prettier-ignore
  8.  
  9. export const useMatchFetch = url => {
  10. const [result, setResult] = useState({ pending: true, initial: true });
  11. const [fetchId, setFetchId] = useState(false)
  12.  
  13. useEffect(() => {
  14. setResult({...result, pending: true})
  15. fetch(url)
  16. .then(response => response.json())
  17. .then(data => setResult({ data, pending: false, initial: false }))
  18. .catch(error => setResult({ error, pending: false, initial: false }));
  19. }, [url, fetchId]);
  20.  
  21. const refetch = () => setFetchId(!fetchId)
  22.  
  23. return [result, refetch]
  24. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement