react-tidy
Version:
A collection of atomic, independent, typed, tested and documented React custom hooks
116 lines (72 loc) • 4.46 kB
Markdown
# React Tidy
A collection of atomic, independent, typed, tested and documented React custom hooks.
[](https://bundlephobia.com/result?p=react-tidy)
[](https://github.com/webneat/react-tidy/actions?query=workflow:"Tests")
[](https://coveralls.io/github/webNeat/react-tidy?branch=master)
[](https://libraries.io/npm/react-tidy)
[](https://www.npmjs.com/package/react-tidy)
[](LICENSE)
## Contents
- [What is React Tidy?](#what-is-react-tidy)
- [Features](#features)
- [Installation](#installation)
- [List of Custom Hooks](#list-of-custom-hooks)
- [Contributing](#contributing)
- [Changelog](#changelog)
## What is React Tidy?
**React Tidy** is a library of utility custom hooks. It's like [lodash](https://lodash.com/) for React hooks. The goal is to provide a collection of tiny hooks that solve common problems or make writing React components easier.
## Features
To keep the library **tidy**, all included hooks are:
- **Atomic**: only does **one thing** and does it well.
- **Independent**: does not depend on any external library/configuration/context to work. Just import and call it.
- **Typed**: can infer the type of its arguments and give the correct type in return.
- **Tested**: has meaningfull tests that cover all uses cases.
- **Documented**: has it's own README describing the arguments, return and giving a usage example.
## Installation
Install using `npm`
```
npm install react-tidy
```
Or using `yarn`
```
yarn add react-tidy
```
## List of Custom Hooks
- [useIsMounted](src/useIsMounted) Avoid using/updating state of unmounted components.
- [useInstance](src/useInstance) Create an instance of any class and make your component react to its changes.
- [usePrevious](src/usePrevious) Track previous values of a variable.
- [useRefresh](src/useRefresh) Rerender your React component whenever you want.
- [useStorage](src/useStorage) read and write items on browser storages the React way.
## Contributing
You can contribute to this library in many ways, including:
- **Reporting bugs**: Simply open an issue and describe the bug. Please include a code snippet to reproduce the bug, it really helps to solve the problem quickly.
- **Suggesting new hooks**: If you have a common use case that you think worth having its own hook, open an issue and we will discuss it. Do you already have an implementation for it? great, make a pull request and I will review it. Please make sure your code is consistent with the rest of the codebase and use [Prettier](https://prettier.io/) and [EditorConfig](https://editorconfig.org/) to format your files.
Those are just examples, any issue or pull request is welcome :)
## Changelog
**1.3.7 (April 17th 2023)**
- Update dev dependencies and Node version on Github actions.
**1.3.6 (August 21th, 2022)**
- Update dev dependencies.
**1.3.5 (April 2nd, 2022)**
- Update dev dependencies.
**1.3.4 (March 3rd, 2022)**
- Fix [Can't import the named export 'useMemo' from non EcmaScript module](https://github.com/webNeat/react-tidy/issues/40)
**1.3.3 (February 27th, 2022)**
- Using `parcel` instead of `tsdx` and `yarn` instead of `npm`.
**1.3.2 (November 13th, 2021)**
- Updating dev dependencies.
**1.3.1 (May 27th, 2021)**
- Updating dev dependencies and improving docs.
**1.3.0 (January 7th, 2021)**
- Add [useInstance](src/useInstance) hook.
- Fix a bug on [useStorage](src/useStorage) when setting the item to `null`.
**1.2.1 (January 2nd, 2021)**
Fix the bug of [usePrevious](src/usePrevious) not being exported.
**1.2.0 (January 2nd, 2021)**
Add [usePrevious](src/usePrevious) hook.
**1.1.1 (December 29, 2020)**
Upgrade dev dependencies.
**1.1.0 (October 9, 2020)**
Make [useStorage](src/useStorage) able to work on the server to enable SSR.
**1.0.0 (September 23, 2020)**
The first official release containing 3 hooks [useIsMounted](src/useIsMounted), [useRefresh](src/useRefresh) and [useStorage](src/useStorage).