Skip to content
This repository has been archived by the owner on Mar 5, 2019. It is now read-only.

ui: Use redux-promise-middleware to asynchronously request entity lists from the API #162

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

aspiers
Copy link
Member

@aspiers aspiers commented Mar 23, 2017

Add a stub EntityListContainer component, and from its componentWillMount, use redux-promise-middleware (which is similar to thunk but even more ideal for making asynchronous API calls) to fetch a list of all entities from the API.

Currently the actions and API call are triggered correctly, but we still need to add reducers to handle the actions, and then we need to hook the resulting store data up to the UI to actually display the list of entities retrieved.

This is part one of the implementation of #143.

@aspiers aspiers self-assigned this Mar 23, 2017
@aspiers aspiers requested a review from elischutze March 23, 2017 22:17
To correctly support both thunk middleware and Redux Devtools, we use
the convenient redux-devtools-extension library to compose thunk with
the middleware enhancer, and then use that as the final argument to
createStore().
This will allow us to see lists of people, organisations, and government
offices, and eventually click on each one to examine it.
We'll use this for asynchronous fetching of data from the Rails API
into the Redux store.
This lets us group request-related functions together.
This dispatches the FETCH_ENTITIES action whose payload is an axios
request object.  redux-promise-middleware will handle this by executing
the request's promise, and then magically dispatching
FETCH_ENTITIES_{PENDING,FULFILLED,REJECTED} actions according to the 3
possible stages of the conversation with the API endpoint.

Currently these 3 actions are not handled by any reducer; that will come
in subsequent commits.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant