contentful-redux
This library provides an implementation of the Contentful sync API for redux and reselect. contentful-redux
handles the complete synchronization workflow (including cyclic link resolution, localization, and incremental syncing) and lets you consume your contents from Contentful as easy-to-use selectors.
If you are not already familiar with redux (and reselect), you should familiarize yourself with those first before trying to integrate contentful-redux into your project.
Installation
contentful-redux
is provided as a collection of CommonJS modules, which can be installed using npm:
npm install --save contententful@5 contentful-redux
or using yarn:
yarn add contentful@5 contentful-redux
Usage
- Setup contentful-redux (
contentful.js
):
;; const actions reducer middleware selectors = ;
- Include the contentful reducer in your reducer:
;; const reducer = ;
- Include the contentful middleware in your redux store configuration:
;; const configureStore = { return ;};
- Derive your reselect selectors from the base selectors provided by contentful-redux:
;; const myModelEntities = ;
- Dispatch a sync action whenever you want:
;;
API Documentation
contentfulRedux(options)
Option | Required | Default | Description |
---|---|---|---|
accessToken |
yes | - | Your contentful CDA access token |
clientParams |
no | {} |
Additional arguments to be passed to createClient |
createClient |
yes | - | The desired variant of the contentful.js client factory method |
localeSelector |
no | () => null |
A selector returning the locale to be used, e.g.(state) => state.currentLocale |
space |
yes | - | The id of the contentful space to by synced |
stateSelector |
yes | - | A selector returning the portion of the state which is managed by the contentful-redux reducer, e.g.(state) => state.contentful |
Action creators
The following redux action creators are provided by contentful-redux
:
sync([spaceId])
Argument | Required | Default | Description |
---|---|---|---|
spaceId |
no | options.space |
The id of the space to be synced. There must be a middleware installed wich is registered with the same space id |
Selectors
The following reselect selectors are provided by contentful-redux
:
Selector | Returns | Description |
---|---|---|
assets |
array |
A list of all known assets in the contentful space |
contentTypes |
object |
A map from content type ids to the meta information about the corresponding content type |
defaultLocale |
object |
The locale which is defined as default of the contentful space |
entries |
array |
A list of all known entries in the contentful space |
isSyncing |
boolean |
true while a sync operation is in progress |
lastSync |
object |
Meta-information about the results of the last sync attempt |
locales |
array |
The locales which are defined for the contentful space |
space |
object |
Meta-information about your contentful space |
Changelog
License
This software is licensed under the MIT License. View the license.
Copyright © 2018 Leo Schweizer