Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

horizon-react-extend

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

horizon-react-extend

React bindings for horizon, fork from package horizon-react

  • 0.3.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

npm version GitHub issues

bitHound Overall Score bitHound Dependencies bitHound Code

horizon-react

React bindings for rethinkdb/horizon. This package just fork from react-horizon, only adding a update method to previous package.

Installation

npm i -S horizon-react-extend

Usage

Currently, horizon-react exports two enhancers. Similarly to react-redux, you'll have to first wrap a root component with a Connector which will initialize the horizon instance and then subscribe to data by using subscribe.

Example Root component:

import { Connector } from 'horizon-react';
import store from './store';
import TodoList from './components/TodoList';

// If you don't pass a horizon client instance, Connector will
// automatically create one for you
export default () => (
  <Connector store={store}>
    <TodoList />
  </Connector>
);

// if you pass a horizon client instance, you have to .connect() before
// you pass the instance to Connector
export default () => (
  <Connector store={store} horizon={horizon}>
    <TodoList />
  </Connector>
);

Example Subscribed component:

import { subscribe } from 'horizon-react';
import Todo from './Todo';

// simple subscription to the collection "todos"
const mapDataToProps = {
  todos: (hz) => hz('todos')
};

const TodoList = (props) => (
  <ul>
    {props.todos.map( todo => <Todo {...todo} /> )}
  </ul>
);

export default subscribe({
  mapDataToProps
})(TodoList)

Advanced Subscribed component:

import { subscribe } from 'horizon-react';
import Todo from './Todo';

// simple subscription to the collection "todos"
const mapDataToProps = {
  todos: (hz, props) => hz('todos').limit(props.limit)
};

// you can connect to redux state too
const mapStateToProps = (state, props) => ({
  ui: state.checkedTodos
});

const TodoList = (props) => (
  <ul>
    {props.todos.map( todo => <Todo {...todo} /> )}
  </ul>
);

export default subscribe({
  mapDataToProps,
  mapStateToProps
})(TodoList)

FAQ

Does this work with React Native?

It should! If not, please create a new issue!

Can I access the Horizon instance in the child components?

Yes, you can either directly use context to access .horizon or just use subscribe()(MyComponent). subscribe will pass the Horizon instance from the context down to your component as a prop horizon.

Example:

import { subscribe } from 'horizon-react';

const AddTodoButton = (props) => (
  <button onClick={() => {
    props.horizon('todos').store({ text: 'A new todo item.' });
  }}>
    Add a todo item.
  </button>
);

export default subscribe()(AddTodoButton);

Contributing

Pull Requests are very welcome!

If you find any issues, please report them via Github Issues!

License

(MIT)

Keywords

FAQs

Package last updated on 01 Aug 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc