Declarative AJAX requests and automatic network state management for single-page applications
Small useQuery
update - useQuery
response object also contains stopPolling
memoized callback for convenience.
Added support for short polling - automatic repeating a given query each defined number of seconds. In details:
meta.poll
, which you can add to any of your query, like:const fetchBooks = () => ({
type: 'FETCH_BOOKS',
request: '/books',
meta: { poll: 10 },
});
which would dispatch fetchBooks
every 10 seconds
stopPolling
action, with the same signature as abortRequests
resetRequests
from now on also stops all pollings for relevant query typesssr: 'server'
in handleRequests
This is a very big release, no backward changes but many new features:
useQuery
and useMutation
got many new props, allowing to get auto fetching, auto resetting, suspense support, SSR suspense, throwing errors to catch by error boundaryRequestsProvider
component, which allows to change defaults for hooks and can setup Redux store for you optionallyRequestsErrorBoundary
helperSee https://redux-requests.klisiczynski.com/docs/guides/usage-with-react for details
This release added mostly several things which were needed for new version of React bindings:
joinRequest
action, so that you can attach to a pending request and get its response promiseresetRequests
not to reset cached queriesaddWatcher
and removeWatcher
actions - those are probably needed only for UI bindings like React internallydisableRequestsPromise
option to handleRequest
, for now probably useful only with new suspense SSR mode for ReactAdded support for tracking download and upload progress. See release for core 1.3.0.
Added support for tracking download and upload progress. See release for core 1.3.0.
Added support for tracking download and upload progress. See release for core 1.3.0.
Added support for tracking download and upload progress. For now available only for axios
and graphql
drivers. Also, due to complexity, for now batched requests are not supported, albeit this is a very rare edge case anyway. How to use it? Just add meta.measureDownloadProgress
or meta.measureUploadProgress
to your actions and read downloadProgress
and uploadProgress
from any selectors! Thanks @iwan-uschka for this brilliant idea!
Added useDispatchRequest
hook - this is just an alias for useDispatch
from react-redux
, but with a better Typescript typing.
You could learn all details here.
Typescript related additions:
LocalMutationAction
interfacecreateRequestsStore
function to decorate store
with dispatchRequest
method - alias for dispatch
but with better typingsRequestsStore
passed instead of normal store, the only difference is that you get an access to dispatchRequest
methodaction
prop to getQuery
and getQuerySelector
to automatically infer data
genericResponseData
utility typeYou could learn all details in docs.