Skip to content
Pouch and redux integration. With pouch in control this time around.
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
auth
.babelrc
.gitignore
.npmignore
.vim.custom
README.md
actions.es6
get-key.es6
get-pouch.es6
index.es6
lookup.es6
package.json
reducer.es6
watch-sync.es6

README.md

pouch-redux

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.

Pre-requisites

Your redux store must use the thunk and promise middlewares.

What does it give me?

Not much. Just a set of helpers to ease the binding.

pouch reducer

TODO

wall

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);
}

auth

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.

Why?

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.

You can’t perform that action at this time.