A modern, server-safe collection of essential & experimental React hooks – built with ❤️ by the Khulnasoft team.
Compatible with React 18+
npm i reactumnpm i reactum@experimental react@experimental react-dom@experimentalA curated set of utility hooks, optimized for modern React apps:
| Hook | Description |
|---|---|
useBattery |
Monitor battery status |
useClickAway |
Trigger when clicking outside an element |
useCopyToClipboard |
Copy content to clipboard |
useCounter |
Simple counter logic |
useDebounce |
Debounce any fast-changing value |
useDefault |
Revert to default when input is invalid |
useDocumentTitle |
Set document title dynamically |
useFavicon |
Change tab icon programmatically |
useGeolocation |
Access user geolocation |
useHistoryState |
Sync state with browser history |
useHover |
Detect hover state |
useIdle |
Detect user inactivity |
useIntersectionObserver |
Track element visibility |
useIsClient |
Check if rendering on client |
useIsFirstRender |
Run logic only on first render |
useList |
Manage arrays in state |
useLocalStorage |
Persist state in localStorage |
useLockBodyScroll |
Prevent page scroll |
useLongPress |
Handle long-press events |
useMap |
Map-like state management |
useMeasure |
Measure DOM elements |
useMediaQuery |
Respond to CSS media queries |
useMouse |
Track mouse position |
useNetworkState |
Monitor online/offline status |
useObjectState |
Mergeable object state hook |
useOrientation |
Track screen orientation |
usePreferredLanguage |
Detect user's language preference |
usePrevious |
Access previous value |
useQueue |
FIFO queue state |
useRenderCount |
Count component renders |
useRenderInfo |
Detailed render tracking |
useScript |
Dynamically load scripts |
useSessionStorage |
Persist state in sessionStorage |
useSet |
Set-based state |
useThrottle |
Throttle changing values |
useToggle |
Simple boolean toggle |
useVisibilityChange |
Detect tab visibility changes |
useWindowScroll |
Track scroll position |
useWindowSize |
Track window size |
Bleeding-edge features under active development:
| Hook | Description |
|---|---|
useContinuousRetry |
Retry logic with exponential backoff |
useCountdown |
Countdown timer |
useEventListener |
Add/remove DOM event listeners |
useFetch |
Lightweight data fetching |
useInterval |
Run interval-based logic |
useIntervalWhen |
Conditional interval execution |
useKeyPress |
Keyboard key tracking |
useLogger |
Lifecycle logging for components |
usePageLeave |
Detect mouse leaving the page |
useRandomInterval |
Randomized interval execution |
useTimeout |
Delay logic using timeout |
Full documentation with examples and demos available at:
Found a bug? Want a new hook? Fork, commit, and send a PR!
We welcome all contributions – big or small.
git clone https://github.com/khulnasoft/reactum.git
cd reactum
npm install
npm run devThis project is licensed under the MIT License.
License scanning provided by FOSSA.
Built with 🛠️ by Khulnasoft • Star us on GitHub ⭐