lore-hook-auth
Provides an action and reducer dedicated to fetching the current user
Provides an action and reducer dedicated to fetching the current user
Let's say you're building an application that consumes an API that returns information about the current user from the endpoint /user
.
In order to retrieve the current user, we need three things in place:
Unlike the build-in blueprints, this flow is special in that the action will always communicate with the same endpoint (/user
) and the reducer will only store a single object, as opposed to a set of objects like the built-in find
, byId
and byCid
reducers.
Without this hook, if you wanted to retrieve the current user, you would need to generate the following files yourself:
src
|-actions
|-currentUser
|-get.js
|-models
|-currentUser.js
|-reducers
|-currentUser.js
The currentUser
model would describe the API endpoint, currentUser.get
action would retrieve the user, and the currentUser
reducer would store the user.
This hook prevents you from needing to create the custom action
and reducer
. Instead, you only need to create the model and specify what endpoint the action should fetch the current user from.
Here is an example currentUser
model, that sets the endpoint to be /user
(matching our API):
module.exports = {
endpoint: 'user'
}
Once this model exists (and assuming the modelName
field in the config matches the name of this model) you can fetch the current user through a lore.connect
call like this:
lore.connect(function(getState, props) {
return {
user: getState('currentUser')
};
})