Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
horizon-react
Advanced tools
React bindings for rethinkdb/horizon.
npm i -S horizon-react
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
});
// and also map dispatch
const mapDispatchToProps = (dispatch) => ({
onClickTodo: (todo) => dispatch({type: 'TOGGLE_TODO', payload: {...todo}})
});
const TodoList = (props) => (
<ul>
{props.todos.map( todo => <Todo {...todo} /> )}
</ul>
);
export default subscribe({
mapDataToProps,
mapStateToProps,
mapDispatchToProps
})(TodoList)
It should! If not, please create a new issue!
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);
Pull Requests are very welcome!
If you find any issues, please report them via Github Issues!
(MIT)
v0.3.3
FAQs
React bindings for horizon
The npm package horizon-react receives a total of 1 weekly downloads. As such, horizon-react popularity was classified as not popular.
We found that horizon-react demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
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.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.