Fetch client plugin and redux bindings for dealing with goalie 412 responses
npm install @synapsestudios/fetch-client-goalieThese are helpers that allow a frontend using redux and fetch-client to respond to the 412 error returned by a server using goalie, and to prompt users to reload their app.
First add the package
```
npm i --save @synapsestudios/fetch-client-goalie
Next register the fetch-client plugin. You must pass your redux store in to the plugin.
`
import Client from '@synapsestudios/fetch-client';
import { createPlugin } from '@synapsestudios/fetch-client-goalie';
import store from '../redux-store';
const client = new Client({ url: 'http://api.com' });
client.addPlugin(createPlugin('1.0.0', store));
`
Finally register the reducer
`
import { shouldUpdateReducer } from '@synapsestudios/fetch-client-goalie';
const reducers = combineReducers({
//... your other reducers
shouldUpdate: shouldUpdateReducer,
});
`
If the "shouldUpdate" value in your reducer is ever true then you know that the api
is returning 412 errors and you should prompt your user to update. Here's an example
using react:
`
import React from 'react';
import { connect } from 'react-redux';
const Component = ({shouldUpdate}) => {
if (shouldUpdate) {
return
return
export default connect(state => ({
shouldUpdate: state.shouldUpdate
}))(Component);
``