A set of helpers to ease the integration between PouchDB (and therefore CouchDB) and Redux that forces you to be in control of your actions using promises.
WIP WIP WIP.
Your redux store must use the thunk and promise middlewares.
Not much. Just a set of helpers to ease the binding.
TODO
TODO
// wall sample
import { connect } from 'react-redux';
import { load } from './actions';
import Authenticate from '../user/authenticate';
import knockKnockGo from 'panels/knock-knock-go';
import React from 'react';
function mapStateToProps(state, props) {
return state.pouch;
}
export default function pouchWall(ProtectedComponent) {
const PouchWall = props => (
props.isReady && props.auth.isReady ?
<ProtectedComponent {...props} /> :
<Authenticate {...props} />
);
const KnockKnockPouchWall = knockKnockGo(
props => props.isLoading,
props => props.error,
PouchWall,
props => !(props.isLoading || props.isReady || props.error) && props.dispatch(load())
);
return connect(mapStateToProps)(KnockKnockPouchWall);
}TODO
Redux understands actions and reducers. At UXtemple, we generally use it with React.
In pouch-redux/auth you will find a login and a logout action, a reducer that understands them
and a component to deal with login.
Here's a great read on handling authentication when you want to still go for an offline-first approach that works with a remote.
After working with redux-pouch for a while I got to the point in which the middleware, instead of
making things easier, just got on my way and didn't let me do more advanced stuff.