@@ -2,12 +2,15 @@ import { useState, useEffect } from 'react';
22import { useDispatch } from 'react-redux' ;
33import { get } from 'lib/web' ;
44import { updateQuery } from 'redux/actions/queries' ;
5+ import { useRouter } from 'next/router' ;
56
67export default function useFetch ( url , params = { } , options = { } ) {
78 const dispatch = useDispatch ( ) ;
89 const [ data , setData ] = useState ( ) ;
10+ const [ status , setStatus ] = useState ( ) ;
911 const [ error , setError ] = useState ( ) ;
1012 const [ loading , setLoadiing ] = useState ( false ) ;
13+ const { basePath } = useRouter ( ) ;
1114 const keys = Object . keys ( params )
1215 . sort ( )
1316 . map ( key => params [ key ] ) ;
@@ -18,11 +21,12 @@ export default function useFetch(url, params = {}, options = {}) {
1821 setLoadiing ( true ) ;
1922 setError ( null ) ;
2023 const time = performance . now ( ) ;
21- const data = await get ( url , params ) ;
24+ const { data, status } = await get ( ` ${ basePath } ${ url } ` , params ) ;
2225
2326 dispatch ( updateQuery ( { url, time : performance . now ( ) - time , completed : Date . now ( ) } ) ) ;
2427
2528 setData ( data ) ;
29+ setStatus ( status ) ;
2630 onDataLoad ( data ) ;
2731 } catch ( e ) {
2832 console . error ( e ) ;
@@ -46,5 +50,5 @@ export default function useFetch(url, params = {}, options = {}) {
4650 }
4751 } , [ url , ...keys , ...update ] ) ;
4852
49- return { data, error , loading , loadData } ;
53+ return { data, status , error , loading } ;
5054}
0 commit comments