https://github.com/iaseth/awesome-custom-hooks
A collection of awesome custom React Hooks that I frequently use.
https://github.com/iaseth/awesome-custom-hooks
List: awesome-custom-hooks
custom-hooks npm npm-package react react-hooks reactjs
Last synced: 3 months ago
JSON representation
A collection of awesome custom React Hooks that I frequently use.
- Host: GitHub
- URL: https://github.com/iaseth/awesome-custom-hooks
- Owner: iaseth
- License: mit
- Created: 2023-04-10T02:42:40.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-04-19T13:04:32.000Z (over 3 years ago)
- Last Synced: 2024-05-22T12:44:43.437Z (about 2 years ago)
- Topics: custom-hooks, npm, npm-package, react, react-hooks, reactjs
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/awesome-custom-hooks
- Size: 158 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# awesome-custom-hooks
* [`useStateLogger`](https://awesome-custom-hooks.netlify.app/useStateLogger)
- [src/prod/dev/useStateLogger.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/dev/useStateLogger.ts)
- [src/dev/dev/useStateLoggerDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/dev/useStateLoggerDebug.ts)
- `return [x, setXSafe];`
* [`useOnMount`](https://awesome-custom-hooks.netlify.app/useOnMount)
- [src/prod/reactplus/useOnMount.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/reactplus/useOnMount.ts)
- [src/dev/reactplus/useOnMountDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/reactplus/useOnMountDebug.ts)
- `return 0;`
* [`useOnUnmount`](https://awesome-custom-hooks.netlify.app/useOnUnmount)
- [src/prod/reactplus/useOnUnmount.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/reactplus/useOnUnmount.ts)
- [src/dev/reactplus/useOnUnmountDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/reactplus/useOnUnmountDebug.ts)
- `return 0;`
* [`useOnUpdate`](https://awesome-custom-hooks.netlify.app/useOnUpdate)
- [src/prod/reactplus/useOnUpdate.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/reactplus/useOnUpdate.ts)
- [src/dev/reactplus/useOnUpdateDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/reactplus/useOnUpdateDebug.ts)
- `return 0;`
* [`useBoolean`](https://awesome-custom-hooks.netlify.app/useBoolean)
- [src/prod/booleans/useBoolean.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/booleans/useBoolean.ts)
- [src/dev/booleans/useBooleanDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/booleans/useBooleanDebug.ts)
- `return [x, setXSafe, toggleX];`
* [`useToggle`](https://awesome-custom-hooks.netlify.app/useToggle)
- [src/prod/booleans/useToggle.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/booleans/useToggle.ts)
- [src/dev/booleans/useToggleDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/booleans/useToggleDebug.ts)
- `return [x, toggleX];`
* [`useVisibility`](https://awesome-custom-hooks.netlify.app/useVisibility)
- [src/prod/booleans/useVisibility.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/booleans/useVisibility.ts)
- [src/dev/booleans/useVisibilityDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/booleans/useVisibilityDebug.ts)
- `return [v, toggleV];`
* [`useHidden`](https://awesome-custom-hooks.netlify.app/useHidden)
- [src/prod/booleans/useHidden.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/booleans/useHidden.ts)
- [src/dev/booleans/useHiddenDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/booleans/useHiddenDebug.ts)
- `return [hidden, toggleHidden];`
* [`useCounter`](https://awesome-custom-hooks.netlify.app/useCounter)
- [src/prod/numbers/useCounter.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/numbers/useCounter.ts)
- [src/dev/numbers/useCounterDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/numbers/useCounterDebug.ts)
- `return [count, incrementCount, decrementCount, resetCount];`
* [`useDegree`](https://awesome-custom-hooks.netlify.app/useDegree)
- [src/prod/numbers/useDegree.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/numbers/useDegree.ts)
- [src/dev/numbers/useDegreeDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/numbers/useDegreeDebug.ts)
- `return [degree, setDegreeSafe];`
* [`useDigit`](https://awesome-custom-hooks.netlify.app/useDigit)
- [src/prod/numbers/useDigit.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/numbers/useDigit.ts)
- [src/dev/numbers/useDigitDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/numbers/useDigitDebug.ts)
- `return [digit, setDigitSafe];`
* [`useInteger`](https://awesome-custom-hooks.netlify.app/useInteger)
- [src/prod/numbers/useInteger.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/numbers/useInteger.ts)
- [src/dev/numbers/useIntegerDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/numbers/useIntegerDebug.ts)
- `return [integer, setIntegerSafe];`
* [`useNumber`](https://awesome-custom-hooks.netlify.app/useNumber)
- [src/prod/numbers/useNumber.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/numbers/useNumber.ts)
- [src/dev/numbers/useNumberDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/numbers/useNumberDebug.ts)
- `return [number, setNumberSafe];`
* [`usePercent`](https://awesome-custom-hooks.netlify.app/usePercent)
- [src/prod/numbers/usePercent.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/numbers/usePercent.ts)
- [src/dev/numbers/usePercentDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/numbers/usePercentDebug.ts)
- `return [percent, setPercentSafe];`
* [`useRandom`](https://awesome-custom-hooks.netlify.app/useRandom)
- [src/prod/numbers/useRandom.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/numbers/useRandom.ts)
- [src/dev/numbers/useRandomDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/numbers/useRandomDebug.ts)
- `return 0;`
* [`useTime`](https://awesome-custom-hooks.netlify.app/useTime)
- [src/prod/datetime/useTime.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/datetime/useTime.ts)
- [src/dev/datetime/useTimeDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/datetime/useTimeDebug.ts)
- `return 0;`
* [`useDate`](https://awesome-custom-hooks.netlify.app/useDate)
- [src/prod/datetime/useDate.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/datetime/useDate.ts)
- [src/dev/datetime/useDateDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/datetime/useDateDebug.ts)
- `return 0;`
* [`useDateTime`](https://awesome-custom-hooks.netlify.app/useDateTime)
- [src/prod/datetime/useDateTime.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/datetime/useDateTime.ts)
- [src/dev/datetime/useDateTimeDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/datetime/useDateTimeDebug.ts)
- `return 0;`
* [`useDayOfMonth`](https://awesome-custom-hooks.netlify.app/useDayOfMonth)
- [src/prod/datetime/useDayOfMonth.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/datetime/useDayOfMonth.ts)
- [src/dev/datetime/useDayOfMonthDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/datetime/useDayOfMonthDebug.ts)
- `return 0;`
* [`useDayOfWeek`](https://awesome-custom-hooks.netlify.app/useDayOfWeek)
- [src/prod/datetime/useDayOfWeek.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/datetime/useDayOfWeek.ts)
- [src/dev/datetime/useDayOfWeekDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/datetime/useDayOfWeekDebug.ts)
- `return 0;`
* [`useMonth`](https://awesome-custom-hooks.netlify.app/useMonth)
- [src/prod/datetime/useMonth.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/datetime/useMonth.ts)
- [src/dev/datetime/useMonthDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/datetime/useMonthDebug.ts)
- `return 0;`
* [`useYear`](https://awesome-custom-hooks.netlify.app/useYear)
- [src/prod/datetime/useYear.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/datetime/useYear.ts)
- [src/dev/datetime/useYearDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/datetime/useYearDebug.ts)
- `return 0;`
* [`useString`](https://awesome-custom-hooks.netlify.app/useString)
- [src/prod/strings/useString.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/strings/useString.ts)
- [src/dev/strings/useStringDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/strings/useStringDebug.ts)
- `return 0;`
* [`useText`](https://awesome-custom-hooks.netlify.app/useText)
- [src/prod/strings/useText.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/strings/useText.ts)
- [src/dev/strings/useTextDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/strings/useTextDebug.ts)
- `return 0;`
* [`useArray`](https://awesome-custom-hooks.netlify.app/useArray)
- [src/prod/arrays/useArray.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/arrays/useArray.ts)
- [src/dev/arrays/useArrayDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/arrays/useArrayDebug.ts)
- `return 0;`
* [`useArrayIndex`](https://awesome-custom-hooks.netlify.app/useArrayIndex)
- [src/prod/arrays/useArrayIndex.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/arrays/useArrayIndex.ts)
- [src/dev/arrays/useArrayIndexDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/arrays/useArrayIndexDebug.ts)
- `return 0;`
* [`useObject`](https://awesome-custom-hooks.netlify.app/useObject)
- [src/prod/objects/useObject.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/objects/useObject.ts)
- [src/dev/objects/useObjectDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/objects/useObjectDebug.ts)
- `return 0;`
* [`useEnum`](https://awesome-custom-hooks.netlify.app/useEnum)
- [src/prod/misc/useEnum.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/misc/useEnum.ts)
- [src/dev/misc/useEnumDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/misc/useEnumDebug.ts)
- `return 0;`
* [`useTable`](https://awesome-custom-hooks.netlify.app/useTable)
- [src/prod/misc/useTable.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/misc/useTable.ts)
- [src/dev/misc/useTableDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/misc/useTableDebug.ts)
- `return 0;`
* [`useColor`](https://awesome-custom-hooks.netlify.app/useColor)
- [src/prod/css/useColor.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/css/useColor.ts)
- [src/dev/css/useColorDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/css/useColorDebug.ts)
- `return 0;`
* [`useFetch`](https://awesome-custom-hooks.netlify.app/useFetch)
- [src/prod/fetch/useFetch.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/fetch/useFetch.ts)
- [src/dev/fetch/useFetchDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/fetch/useFetchDebug.ts)
- `return [data];`
* [`useFetchJSON`](https://awesome-custom-hooks.netlify.app/useFetchJSON)
- [src/prod/fetch/useFetchJSON.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/fetch/useFetchJSON.ts)
- [src/dev/fetch/useFetchJSONDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/fetch/useFetchJSONDebug.ts)
- `return [data];`
* [`useFetchXML`](https://awesome-custom-hooks.netlify.app/useFetchXML)
- [src/prod/fetch/useFetchXML.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/fetch/useFetchXML.ts)
- [src/dev/fetch/useFetchXMLDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/fetch/useFetchXMLDebug.ts)
- `return [doc];`
* [`useAddEventListener`](https://awesome-custom-hooks.netlify.app/useAddEventListener)
- [src/prod/events/useAddEventListener.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/events/useAddEventListener.ts)
- [src/dev/events/useAddEventListenerDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/events/useAddEventListenerDebug.ts)
- `return 0;`
* [`useEvent`](https://awesome-custom-hooks.netlify.app/useEvent)
- [src/prod/events/useEvent.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/events/useEvent.ts)
- [src/dev/events/useEventDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/events/useEventDebug.ts)
- `return 0;`
* [`useWindowEvent`](https://awesome-custom-hooks.netlify.app/useWindowEvent)
- [src/prod/events/useWindowEvent.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/events/useWindowEvent.ts)
- [src/dev/events/useWindowEventDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/events/useWindowEventDebug.ts)
- `return 0;`
* [`useKeyDownEvent`](https://awesome-custom-hooks.netlify.app/useKeyDownEvent)
- [src/prod/events/useKeyDownEvent.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/events/useKeyDownEvent.ts)
- [src/dev/events/useKeyDownEventDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/events/useKeyDownEventDebug.ts)
- `return 0;`
* [`useWheelEvent`](https://awesome-custom-hooks.netlify.app/useWheelEvent)
- [src/prod/events/useWheelEvent.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/events/useWheelEvent.ts)
- [src/dev/events/useWheelEventDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/events/useWheelEventDebug.ts)
- `return 0;`
* [`useSetInterval`](https://awesome-custom-hooks.netlify.app/useSetInterval)
- [src/prod/events/useSetInterval.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/events/useSetInterval.ts)
- [src/dev/events/useSetIntervalDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/events/useSetIntervalDebug.ts)
- `return 0;`
* [`useSetTimeout`](https://awesome-custom-hooks.netlify.app/useSetTimeout)
- [src/prod/events/useSetTimeout.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/events/useSetTimeout.ts)
- [src/dev/events/useSetTimeoutDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/events/useSetTimeoutDebug.ts)
- `return 0;`
* [`useWindowSize`](https://awesome-custom-hooks.netlify.app/useWindowSize)
- [src/prod/window/useWindowSize.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/window/useWindowSize.ts)
- [src/dev/window/useWindowSizeDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/window/useWindowSizeDebug.ts)
- `return [windowSize];`
* [`useWindowHeight`](https://awesome-custom-hooks.netlify.app/useWindowHeight)
- [src/prod/window/useWindowHeight.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/window/useWindowHeight.ts)
- [src/dev/window/useWindowHeightDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/window/useWindowHeightDebug.ts)
- `return [windowHeight];`
* [`useWindowWidth`](https://awesome-custom-hooks.netlify.app/useWindowWidth)
- [src/prod/window/useWindowWidth.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/window/useWindowWidth.ts)
- [src/dev/window/useWindowWidthDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/window/useWindowWidthDebug.ts)
- `return [windowWidth];`
* [`useMousePosition`](https://awesome-custom-hooks.netlify.app/useMousePosition)
- [src/prod/mouse/useMousePosition.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/mouse/useMousePosition.ts)
- [src/dev/mouse/useMousePositionDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/mouse/useMousePositionDebug.ts)
- `return [x, y];`
* [`useHoverIn`](https://awesome-custom-hooks.netlify.app/useHoverIn)
- [src/prod/mouse/useHoverIn.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/mouse/useHoverIn.ts)
- [src/dev/mouse/useHoverInDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/mouse/useHoverInDebug.ts)
- `return 0;`
* [`useHoverOut`](https://awesome-custom-hooks.netlify.app/useHoverOut)
- [src/prod/mouse/useHoverOut.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/mouse/useHoverOut.ts)
- [src/dev/mouse/useHoverOutDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/mouse/useHoverOutDebug.ts)
- `return 0;`
* [`useClickIn`](https://awesome-custom-hooks.netlify.app/useClickIn)
- [src/prod/mouse/useClickIn.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/mouse/useClickIn.ts)
- [src/dev/mouse/useClickInDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/mouse/useClickInDebug.ts)
- `return 0;`
* [`useClickOut`](https://awesome-custom-hooks.netlify.app/useClickOut)
- [src/prod/mouse/useClickOut.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/mouse/useClickOut.ts)
- [src/dev/mouse/useClickOutDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/mouse/useClickOutDebug.ts)
- `return 0;`
* [`useArrowKeyPress`](https://awesome-custom-hooks.netlify.app/useArrowKeyPress)
- [src/prod/keyboard/useArrowKeyPress.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/prod/keyboard/useArrowKeyPress.ts)
- [src/dev/keyboard/useArrowKeyPressDebug.ts](https://github.com/iaseth/awesome-custom-hooks/blob/master/src/dev/keyboard/useArrowKeyPressDebug.ts)
- `return 0;`