react-tna
v1.2.3
Published
React hook library, ready to use, written in Typescript.
Downloads
118
Readme
react-tna
React hook, libs, utils, react UI framework, library, ready to use, written in TypeScript.
💫 Introduction
This is a React hooks library, written in TypeScript and easy to use. It provides a set of hooks that enables you to build your React applications faster. The hooks are built upon the principles of DRY (Don't Repeat Yourself). There are hooks for most common use cases you might need.
The library is designed to be as minimal as possible. It is fully tree-shakable (using the ESM version), meaning that you only import the hooks you need, and the rest will be removed from your bundle making the cost of using this library negligible. Most hooks are extensively tested and are being used in production environments.
🚀 Installation
To install the library, run:
npm install react-tna
or
yarn add react-tna
📖 Usage
Here's an example of how to use one of the hooks:
import { useLocalStorage } from 'react-tna'
function Component() {
const [value, setValue] = useLocalStorage('my-localStorage-key', 0)
return (
<div>
<p>Stored value: {value}</p>
<button onClick={() => setValue(value + 1)}>Increment</button>
</div>
)
}
📚 Features
- Easy to Use: Minimal setup and easy integration.
- TypeScript Support: Fully typed for a great developer experience.
- Tree-Shakable: Import only what you need.
- Production-Ready: Extensively tested and used in production.
🪝 Available Hooks
useBoolean
— handles boolean state with useful utility functions.useClickAnyWhere
— handles click events anywhere on the document.useCopyToClipboard
— copies text to the clipboard using the Clipboard API.useCountdown
— manages countdown.useCounter
— manages a counter with increment, decrement, reset, and setCount functionalities.useDarkMode
— returns the current state of the dark mode.useDebounceCallback
— creates a debounced version of a callback function.useDebounceValue
— returns a debounced version of the provided value, along with a function to update it.useDocumentTitle
— sets the document title.useEventCallback
— creates a memoized event callback.useEventListener
— attaches event listeners to DOM elements, the window, or media query lists.useHover
— tracks whether a DOM element is being hovered over.useIntersectionObserver
— tracks the intersection of a DOM element with its containing element or the viewport using the Intersection Observer API.useInterval
— creates an interval that invokes a callback function at a specified delay using the setInterval API.useIsClient
— determines if the code is running on the client side (in the browser).useIsMounted
— determines if the component is currently mounted.useIsomorphicLayoutEffect
— uses either useLayoutEffect or useEffect based on the environment (client-side or server-side).useLocalStorage
— uses the localStorage API to persist state across page reloads.useMap
— manages a key-value Map state with setter actions.useMediaQuery
— tracks the state of a media query using the Match Media API.useOnClickOutside
— handles clicks outside a specified element.usePrevious
— stores the previous value of a state.useReadLocalStorage
— reads a value from localStorage, closely related to useLocalStorage().useResizeObserver
— observes the size of an element using the ResizeObserver API.useScreen
— tracks the screen dimensions and properties.useScript
— dynamically loads scripts and tracking their loading status.useScrollLock
— A custom hook that locks and unlocks scroll.useSessionStorage
— uses the sessionStorage API to persist state across page reloads.useStep
— manages and navigates between steps in a multi-step process.useTernaryDarkMode
— manages ternary (system, dark, light) dark mode with local storage support.useTimeout
— handles timeouts in React components using the setTimeout API.useToggle
— manages a boolean toggle state in React components.useUnmount
— runs a cleanup function when the component is unmounted.useWindowSize
— tracks the size of the window.
🤝 Contributing
Contributions are welcome! If you have ideas, suggestions, or find bugs, feel free to open an issue or submit a pull request.
Running Locally
Clone the repository:
git clone https://github.com/your-repo/react-tna.git
Install dependencies:
cd react-tna npm install
Start the development server:
npm run dev
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.