react-repostream
v1.2.0
Published
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
Downloads
9
Readme
React RepoStream
React RepoStream is a package that provides React hooks for integrating RepoStream, a state management library, into your React applications. It allows you to easily connect to the RepoStream and handle state changes and errors within your components.
Installation
To use React RepoStream in your project, follow these steps:
- Install the package via npm:
npm install react-repostream --save
- Import the hooks into your project:
import { useRepoStream, useStreamError } from 'react-repostream';
useRepoStream Hook
The useRepoStream
hook allows you to connect to a RepoStream instance and retrieve the state associated with the specified states.
Usage
import { useRepoStream } from 'react-repostream';
const MyComponent = () => {
const repo = /* your RepoStream instance */;
const states = /* an array of states to connect to */;
const [state, stream] = useRepoStream(repo, states);
// Access and render the state in your component
return (
<div>
<p>Current State: {state}</p>
</div>
);
};
The useRepoStream
hook takes the RepoStream instance and an array of states as arguments and returns the RepoStream stream and the current state associated with the stream. Whenever the state changes, the component will re-render with the updated state.
useStreamError Hook
The useStreamError
hook allows you to handle errors emitted by the RepoStream stream.
Usage
import { useStreamError } from 'react-repostream';
const MyComponent = () => {
const stream = /* your RepoStream stream */;
useStreamError((error) => {
// Handle the error in your component
console.error(error);
}, stream);
// Rest of your component code
};
The useStreamError
hook takes a callback function and the RepoStream stream as arguments. It sets up a listener for error events emitted by the stream. Whenever an error occurs, the provided callback function will be executed with the error object.
Contributing
Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request.
License
This project is licensed under the MIT License.