Selectors for the basic API reducer and for the pagination API reducer.
state: Object
- Redux stateentityKey: String
- Entity name (e.g. 'users', 'user').typeId?: String
- API type ID (e.g. 'fetch', 'delete')itemId?: String
- entity item ID (e.g. 'userId', 'postId')
import { apiSelector } from '@ackee/redux-utils';
apiSelector(state, 'users');
apiSelector(state, 'users', 'create');
apiSelector(state, 'users', 'fetch', 1);
Identical to the api
selector above, but it additionally returns offset
property: offset = (page - 1) * amount
.
state: Object
- Redux stateentityKey: String
- Entity name (e.g. 'users', 'user').typeId: String
- API type ID (e.g. 'fetch', 'delete')itemId?: String
- entity item ID (e.g. 'userId', 'postId')
import { paginationApiSelector } from '@ackee/redux-utils';
paginationApiSelector(state, 'user', 'create');
paginationApiSelector(state, 'users', 'fetch', 1);
These selectors are defined for following Redux state structures:
const state = {
api: {
[entityKey]: {
[typeIdA]: {},
[typeIdB]: {
[itemId]: {},
placeholder: {},
},
},
},
};
const state = {
api: {
// entity keys:
users: {
// type IDs:
create: {
inProgress: false,
// ...
},
fetch: {
// item IDs:
userId1: {
inProgress: true,
// ...
},
placeholder: {
inProgress: false,
// ...
},
},
},
},
};