Easy redux setup for react.
its not a typo, its just thicc
- Added
cacheStorage
option in configureApi- INDEXEDDB (buggy)
- LOCALSTORAGE
- WEBSQL
- Added
clearCache()
function inreq
- Added
cacheKey
option inget
,list
andshow
- Added
cancelAll()
function inreq
- Added Header override
- *Added transform state
import { configureApi } from 'react-reqq';
export const store = configureApi({
endpoint: process.env.REACT_APP_END_POINT,
});
// import { Provider } from 'react-redux';
<Provider store={store}>
...
</Provider>
import { req } from 'react-reqq`
req.get({
key: 'foo',
url: '/users',
params: {
q: 'juan',
}
});
useSelector
of react-redux
or use the helpers
*see below.
import { useSelector } from 'react-redux';
const data = useSelector((state) => state.api.foo);
req.post({
key: 'foo',
url: '/users',
payload: {
name: 'juan',
}
});
req.put({
key: 'foo',
url: '/users/1',
payload: {
name: 'juan',
}
});
req.remove({
key: 'foo',
url: '/users/1'
});
req.set('isFoo', true);
must have id
property in the response
req.list({
key: 'foo',
url: '/users',
transform: res => ({
data: res.users, // array
meta: res.meta, // for pagination *optional for meta
}),
});
req.show({
key: 'foo',
url: '/users/1'
id: 1,
});
useApiShow(key
, id
)
import { useApiShow } from 'react-reqq';
const data = useApiShow('foo', '1');
useApiLoading(key
, get|post|put|remove|list|?id
)
import { useApiLoading } from 'react-reqq';
const isLoading = useApiLoading('foo', 'get');
useApiList(key
)
import { useApiList } from 'react-reqq';
const [list, meta] = useApiList('foo');
useApiShow(key
, id
)
import { useApiShow } from 'react-reqq';
const data = useApiShow('foo', '1');
Use .list
+.show
for data with id
, .show
updates the .list
item if id
is found in .list
's response.
- endpoint [string] - Root endpoint [http://localhost:8000]
- requestHeaders [function] - Set headers on request.
- onError [function] - When an error occured during request.
req.get({
...
// Calls on success response
onSuccess: () => { ... },
// Calls on error response
onError: () => { ... },
});
req.get({
...
// Transforms response before storing
transform: () => {
// transform data here
return { ... };
},
// Cache response to local storage. `false` clears cache
cache: true,
});