@oneplatformdev/hooks 0.1.0-9 → 0.1.0-90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/CHANGELOG.md +316 -0
  2. package/package.json +14 -19
  3. package/{dist/useEventListener → useEventListener}/useEventListener.d.ts +4 -2
  4. package/{dist/useEventListener → useEventListener}/useEventListener.d.ts.map +1 -1
  5. package/{dist/useHover → useHover}/useHover.d.ts +1 -1
  6. package/{dist/useHover → useHover}/useHover.d.ts.map +1 -1
  7. package/{dist/useOnClickOutside → useOnClickOutside}/useOnClickOutside.d.ts +1 -1
  8. package/{dist/useOnClickOutside → useOnClickOutside}/useOnClickOutside.d.ts.map +1 -1
  9. package/{dist/useResizeObserver → useResizeObserver}/useResizeObserver.d.ts +1 -1
  10. package/{dist/useResizeObserver → useResizeObserver}/useResizeObserver.d.ts.map +1 -1
  11. package/.babelrc +0 -12
  12. package/dist/CHANGELOG.md +0 -19
  13. package/dist/LICENSE +0 -21
  14. package/dist/README.md +0 -7
  15. package/dist/package.json +0 -68
  16. package/node_modules/@types/lodash.debounce/LICENSE +0 -21
  17. package/node_modules/@types/lodash.debounce/README.md +0 -23
  18. package/node_modules/@types/lodash.debounce/index.d.ts +0 -4
  19. package/node_modules/@types/lodash.debounce/package.json +0 -32
  20. package/node_modules/@types/react/LICENSE +0 -21
  21. package/node_modules/@types/react/README.md +0 -15
  22. package/node_modules/@types/react/canary.d.ts +0 -35
  23. package/node_modules/@types/react/compiler-runtime.d.ts +0 -4
  24. package/node_modules/@types/react/experimental.d.ts +0 -125
  25. package/node_modules/@types/react/global.d.ts +0 -160
  26. package/node_modules/@types/react/index.d.ts +0 -4206
  27. package/node_modules/@types/react/jsx-dev-runtime.d.ts +0 -45
  28. package/node_modules/@types/react/jsx-runtime.d.ts +0 -36
  29. package/node_modules/@types/react/package.json +0 -210
  30. package/node_modules/@types/react/ts5.0/canary.d.ts +0 -35
  31. package/node_modules/@types/react/ts5.0/experimental.d.ts +0 -125
  32. package/node_modules/@types/react/ts5.0/global.d.ts +0 -160
  33. package/node_modules/@types/react/ts5.0/index.d.ts +0 -4193
  34. package/node_modules/@types/react/ts5.0/jsx-dev-runtime.d.ts +0 -44
  35. package/node_modules/@types/react/ts5.0/jsx-runtime.d.ts +0 -35
  36. package/node_modules/@types/react/ts5.0/v18/global.d.ts +0 -160
  37. package/node_modules/@types/react/ts5.0/v18/index.d.ts +0 -4543
  38. package/node_modules/@types/react/ts5.0/v18/jsx-dev-runtime.d.ts +0 -45
  39. package/node_modules/@types/react/ts5.0/v18/jsx-runtime.d.ts +0 -36
  40. package/node_modules/@types/react/ts5.0/v18/ts5.0/global.d.ts +0 -160
  41. package/node_modules/@types/react/ts5.0/v18/ts5.0/index.d.ts +0 -4530
  42. package/node_modules/@types/react/ts5.0/v18/ts5.0/jsx-dev-runtime.d.ts +0 -44
  43. package/node_modules/@types/react/ts5.0/v18/ts5.0/jsx-runtime.d.ts +0 -35
  44. package/src/index.ts +0 -36
  45. package/src/useBoolean/index.ts +0 -1
  46. package/src/useBoolean/useBoolean.ts +0 -50
  47. package/src/useClickAnyWhere/index.ts +0 -1
  48. package/src/useClickAnyWhere/useClickAnyWhere.ts +0 -22
  49. package/src/useCopyToClipboard/index.ts +0 -1
  50. package/src/useCopyToClipboard/useCopyToClipboard.ts +0 -58
  51. package/src/useCountdown/index.ts +0 -1
  52. package/src/useCountdown/useCountdown.ts +0 -102
  53. package/src/useCounter/index.ts +0 -1
  54. package/src/useCounter/useCounter.ts +0 -52
  55. package/src/useDarkMode/index.ts +0 -1
  56. package/src/useDarkMode/useDarkMode.ts +0 -92
  57. package/src/useDebounceCallback/index.ts +0 -2
  58. package/src/useDebounceCallback/useDebounceCallback.ts +0 -115
  59. package/src/useDebounceValue/index.ts +0 -1
  60. package/src/useDebounceValue/useDebounceValue.ts +0 -67
  61. package/src/useDocumentTitle/index.ts +0 -1
  62. package/src/useDocumentTitle/useDocumentTitle.ts +0 -43
  63. package/src/useEventCallback/index.ts +0 -1
  64. package/src/useEventCallback/useEventCallback.ts +0 -40
  65. package/src/useEventListener/index.ts +0 -1
  66. package/src/useEventListener/useEventListener.ts +0 -121
  67. package/src/useHover/index.ts +0 -1
  68. package/src/useHover/useHover.ts +0 -37
  69. package/src/useIntersectionObserver/index.ts +0 -1
  70. package/src/useIntersectionObserver/useIntersectionObserver.ts +0 -186
  71. package/src/useInterval/index.ts +0 -1
  72. package/src/useInterval/useInterval.ts +0 -43
  73. package/src/useIsClient/index.ts +0 -1
  74. package/src/useIsClient/useIsClient.ts +0 -22
  75. package/src/useIsMobile/index.ts +0 -2
  76. package/src/useIsMobile/types.ts +0 -3
  77. package/src/useIsMobile/useIsMobile.tsx +0 -23
  78. package/src/useIsMounted/index.ts +0 -1
  79. package/src/useIsMounted/useIsMounted.ts +0 -15
  80. package/src/useIsomorphicLayoutEffect/index.ts +0 -1
  81. package/src/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts +0 -17
  82. package/src/useLocalStorage/index.ts +0 -1
  83. package/src/useLocalStorage/useLocalStorage.ts +0 -191
  84. package/src/useLockBody/index.ts +0 -1
  85. package/src/useLockBody/useLockBody.tsx +0 -12
  86. package/src/useMap/index.ts +0 -1
  87. package/src/useMap/useMap.ts +0 -83
  88. package/src/useMediaQuery/index.ts +0 -1
  89. package/src/useMediaQuery/useMediaQuery.ts +0 -83
  90. package/src/useOnClickOutside/index.ts +0 -1
  91. package/src/useOnClickOutside/useOnClickOutside.ts +0 -61
  92. package/src/useQueryString/index.ts +0 -1
  93. package/src/useQueryString/useQueryString.ts +0 -26
  94. package/src/useReadLocalStorage/index.ts +0 -1
  95. package/src/useReadLocalStorage/useReadLocalStorage.ts +0 -122
  96. package/src/useResizeObserver/index.ts +0 -1
  97. package/src/useResizeObserver/useResizeObserver.ts +0 -131
  98. package/src/useScreen/index.ts +0 -1
  99. package/src/useScreen/useScreen.ts +0 -106
  100. package/src/useScript/index.ts +0 -1
  101. package/src/useScript/useScript.ts +0 -142
  102. package/src/useScrollLock/index.ts +0 -1
  103. package/src/useScrollLock/useScrollLock.ts +0 -141
  104. package/src/useSessionStorage/index.ts +0 -1
  105. package/src/useSessionStorage/useSessionStorage.ts +0 -191
  106. package/src/useStep/index.ts +0 -1
  107. package/src/useStep/useStep.ts +0 -83
  108. package/src/useTernaryDarkMode/index.ts +0 -1
  109. package/src/useTernaryDarkMode/useTernaryDarkMode.ts +0 -81
  110. package/src/useTimeout/index.ts +0 -1
  111. package/src/useTimeout/useTimeout.ts +0 -44
  112. package/src/useToggle/index.ts +0 -1
  113. package/src/useToggle/useToggle.ts +0 -30
  114. package/src/useUnmount/index.ts +0 -1
  115. package/src/useUnmount/useUnmount.ts +0 -26
  116. package/src/useWindowSize/index.ts +0 -1
  117. package/src/useWindowSize/useWindowSize.ts +0 -100
  118. package/tsconfig.json +0 -10
  119. package/tsconfig.lib.json +0 -33
  120. package/vite.config.ts +0 -62
  121. /package/{dist/index.d.ts → index.d.ts} +0 -0
  122. /package/{dist/index.d.ts.map → index.d.ts.map} +0 -0
  123. /package/{dist/index.js → index.js} +0 -0
  124. /package/{dist/useBoolean → useBoolean}/index.d.ts +0 -0
  125. /package/{dist/useBoolean → useBoolean}/index.d.ts.map +0 -0
  126. /package/{dist/useBoolean → useBoolean}/index.js +0 -0
  127. /package/{dist/useBoolean → useBoolean}/useBoolean.d.ts +0 -0
  128. /package/{dist/useBoolean → useBoolean}/useBoolean.d.ts.map +0 -0
  129. /package/{dist/useBoolean → useBoolean}/useBoolean.js +0 -0
  130. /package/{dist/useClickAnyWhere → useClickAnyWhere}/index.d.ts +0 -0
  131. /package/{dist/useClickAnyWhere → useClickAnyWhere}/index.d.ts.map +0 -0
  132. /package/{dist/useClickAnyWhere → useClickAnyWhere}/index.js +0 -0
  133. /package/{dist/useClickAnyWhere → useClickAnyWhere}/useClickAnyWhere.d.ts +0 -0
  134. /package/{dist/useClickAnyWhere → useClickAnyWhere}/useClickAnyWhere.d.ts.map +0 -0
  135. /package/{dist/useClickAnyWhere → useClickAnyWhere}/useClickAnyWhere.js +0 -0
  136. /package/{dist/useCopyToClipboard → useCopyToClipboard}/index.d.ts +0 -0
  137. /package/{dist/useCopyToClipboard → useCopyToClipboard}/index.d.ts.map +0 -0
  138. /package/{dist/useCopyToClipboard → useCopyToClipboard}/index.js +0 -0
  139. /package/{dist/useCopyToClipboard → useCopyToClipboard}/useCopyToClipboard.d.ts +0 -0
  140. /package/{dist/useCopyToClipboard → useCopyToClipboard}/useCopyToClipboard.d.ts.map +0 -0
  141. /package/{dist/useCopyToClipboard → useCopyToClipboard}/useCopyToClipboard.js +0 -0
  142. /package/{dist/useCountdown → useCountdown}/index.d.ts +0 -0
  143. /package/{dist/useCountdown → useCountdown}/index.d.ts.map +0 -0
  144. /package/{dist/useCountdown → useCountdown}/index.js +0 -0
  145. /package/{dist/useCountdown → useCountdown}/useCountdown.d.ts +0 -0
  146. /package/{dist/useCountdown → useCountdown}/useCountdown.d.ts.map +0 -0
  147. /package/{dist/useCountdown → useCountdown}/useCountdown.js +0 -0
  148. /package/{dist/useCounter → useCounter}/index.d.ts +0 -0
  149. /package/{dist/useCounter → useCounter}/index.d.ts.map +0 -0
  150. /package/{dist/useCounter → useCounter}/index.js +0 -0
  151. /package/{dist/useCounter → useCounter}/useCounter.d.ts +0 -0
  152. /package/{dist/useCounter → useCounter}/useCounter.d.ts.map +0 -0
  153. /package/{dist/useCounter → useCounter}/useCounter.js +0 -0
  154. /package/{dist/useDarkMode → useDarkMode}/index.d.ts +0 -0
  155. /package/{dist/useDarkMode → useDarkMode}/index.d.ts.map +0 -0
  156. /package/{dist/useDarkMode → useDarkMode}/index.js +0 -0
  157. /package/{dist/useDarkMode → useDarkMode}/useDarkMode.d.ts +0 -0
  158. /package/{dist/useDarkMode → useDarkMode}/useDarkMode.d.ts.map +0 -0
  159. /package/{dist/useDarkMode → useDarkMode}/useDarkMode.js +0 -0
  160. /package/{dist/useDebounceCallback → useDebounceCallback}/index.d.ts +0 -0
  161. /package/{dist/useDebounceCallback → useDebounceCallback}/index.d.ts.map +0 -0
  162. /package/{dist/useDebounceCallback → useDebounceCallback}/index.js +0 -0
  163. /package/{dist/useDebounceCallback → useDebounceCallback}/useDebounceCallback.d.ts +0 -0
  164. /package/{dist/useDebounceCallback → useDebounceCallback}/useDebounceCallback.d.ts.map +0 -0
  165. /package/{dist/useDebounceCallback → useDebounceCallback}/useDebounceCallback.js +0 -0
  166. /package/{dist/useDebounceValue → useDebounceValue}/index.d.ts +0 -0
  167. /package/{dist/useDebounceValue → useDebounceValue}/index.d.ts.map +0 -0
  168. /package/{dist/useDebounceValue → useDebounceValue}/index.js +0 -0
  169. /package/{dist/useDebounceValue → useDebounceValue}/useDebounceValue.d.ts +0 -0
  170. /package/{dist/useDebounceValue → useDebounceValue}/useDebounceValue.d.ts.map +0 -0
  171. /package/{dist/useDebounceValue → useDebounceValue}/useDebounceValue.js +0 -0
  172. /package/{dist/useDocumentTitle → useDocumentTitle}/index.d.ts +0 -0
  173. /package/{dist/useDocumentTitle → useDocumentTitle}/index.d.ts.map +0 -0
  174. /package/{dist/useDocumentTitle → useDocumentTitle}/index.js +0 -0
  175. /package/{dist/useDocumentTitle → useDocumentTitle}/useDocumentTitle.d.ts +0 -0
  176. /package/{dist/useDocumentTitle → useDocumentTitle}/useDocumentTitle.d.ts.map +0 -0
  177. /package/{dist/useDocumentTitle → useDocumentTitle}/useDocumentTitle.js +0 -0
  178. /package/{dist/useEventCallback → useEventCallback}/index.d.ts +0 -0
  179. /package/{dist/useEventCallback → useEventCallback}/index.d.ts.map +0 -0
  180. /package/{dist/useEventCallback → useEventCallback}/index.js +0 -0
  181. /package/{dist/useEventCallback → useEventCallback}/useEventCallback.d.ts +0 -0
  182. /package/{dist/useEventCallback → useEventCallback}/useEventCallback.d.ts.map +0 -0
  183. /package/{dist/useEventCallback → useEventCallback}/useEventCallback.js +0 -0
  184. /package/{dist/useEventListener → useEventListener}/index.d.ts +0 -0
  185. /package/{dist/useEventListener → useEventListener}/index.d.ts.map +0 -0
  186. /package/{dist/useEventListener → useEventListener}/index.js +0 -0
  187. /package/{dist/useEventListener → useEventListener}/useEventListener.js +0 -0
  188. /package/{dist/useHover → useHover}/index.d.ts +0 -0
  189. /package/{dist/useHover → useHover}/index.d.ts.map +0 -0
  190. /package/{dist/useHover → useHover}/index.js +0 -0
  191. /package/{dist/useHover → useHover}/useHover.js +0 -0
  192. /package/{dist/useIntersectionObserver → useIntersectionObserver}/index.d.ts +0 -0
  193. /package/{dist/useIntersectionObserver → useIntersectionObserver}/index.d.ts.map +0 -0
  194. /package/{dist/useIntersectionObserver → useIntersectionObserver}/index.js +0 -0
  195. /package/{dist/useIntersectionObserver → useIntersectionObserver}/useIntersectionObserver.d.ts +0 -0
  196. /package/{dist/useIntersectionObserver → useIntersectionObserver}/useIntersectionObserver.d.ts.map +0 -0
  197. /package/{dist/useIntersectionObserver → useIntersectionObserver}/useIntersectionObserver.js +0 -0
  198. /package/{dist/useInterval → useInterval}/index.d.ts +0 -0
  199. /package/{dist/useInterval → useInterval}/index.d.ts.map +0 -0
  200. /package/{dist/useInterval → useInterval}/index.js +0 -0
  201. /package/{dist/useInterval → useInterval}/useInterval.d.ts +0 -0
  202. /package/{dist/useInterval → useInterval}/useInterval.d.ts.map +0 -0
  203. /package/{dist/useInterval → useInterval}/useInterval.js +0 -0
  204. /package/{dist/useIsClient → useIsClient}/index.d.ts +0 -0
  205. /package/{dist/useIsClient → useIsClient}/index.d.ts.map +0 -0
  206. /package/{dist/useIsClient → useIsClient}/index.js +0 -0
  207. /package/{dist/useIsClient → useIsClient}/useIsClient.d.ts +0 -0
  208. /package/{dist/useIsClient → useIsClient}/useIsClient.d.ts.map +0 -0
  209. /package/{dist/useIsClient → useIsClient}/useIsClient.js +0 -0
  210. /package/{dist/useIsMobile → useIsMobile}/index.d.ts +0 -0
  211. /package/{dist/useIsMobile → useIsMobile}/index.d.ts.map +0 -0
  212. /package/{dist/useIsMobile → useIsMobile}/index.js +0 -0
  213. /package/{dist/useIsMobile → useIsMobile}/types.d.ts +0 -0
  214. /package/{dist/useIsMobile → useIsMobile}/types.d.ts.map +0 -0
  215. /package/{dist/useIsMobile → useIsMobile}/types.js +0 -0
  216. /package/{dist/useIsMobile → useIsMobile}/useIsMobile.d.ts +0 -0
  217. /package/{dist/useIsMobile → useIsMobile}/useIsMobile.d.ts.map +0 -0
  218. /package/{dist/useIsMobile → useIsMobile}/useIsMobile.js +0 -0
  219. /package/{dist/useIsMounted → useIsMounted}/index.d.ts +0 -0
  220. /package/{dist/useIsMounted → useIsMounted}/index.d.ts.map +0 -0
  221. /package/{dist/useIsMounted → useIsMounted}/index.js +0 -0
  222. /package/{dist/useIsMounted → useIsMounted}/useIsMounted.d.ts +0 -0
  223. /package/{dist/useIsMounted → useIsMounted}/useIsMounted.d.ts.map +0 -0
  224. /package/{dist/useIsMounted → useIsMounted}/useIsMounted.js +0 -0
  225. /package/{dist/useIsomorphicLayoutEffect → useIsomorphicLayoutEffect}/index.d.ts +0 -0
  226. /package/{dist/useIsomorphicLayoutEffect → useIsomorphicLayoutEffect}/index.d.ts.map +0 -0
  227. /package/{dist/useIsomorphicLayoutEffect → useIsomorphicLayoutEffect}/index.js +0 -0
  228. /package/{dist/useIsomorphicLayoutEffect → useIsomorphicLayoutEffect}/useIsomorphicLayoutEffect.d.ts +0 -0
  229. /package/{dist/useIsomorphicLayoutEffect → useIsomorphicLayoutEffect}/useIsomorphicLayoutEffect.d.ts.map +0 -0
  230. /package/{dist/useIsomorphicLayoutEffect → useIsomorphicLayoutEffect}/useIsomorphicLayoutEffect.js +0 -0
  231. /package/{dist/useLocalStorage → useLocalStorage}/index.d.ts +0 -0
  232. /package/{dist/useLocalStorage → useLocalStorage}/index.d.ts.map +0 -0
  233. /package/{dist/useLocalStorage → useLocalStorage}/index.js +0 -0
  234. /package/{dist/useLocalStorage → useLocalStorage}/useLocalStorage.d.ts +0 -0
  235. /package/{dist/useLocalStorage → useLocalStorage}/useLocalStorage.d.ts.map +0 -0
  236. /package/{dist/useLocalStorage → useLocalStorage}/useLocalStorage.js +0 -0
  237. /package/{dist/useLockBody → useLockBody}/index.d.ts +0 -0
  238. /package/{dist/useLockBody → useLockBody}/index.d.ts.map +0 -0
  239. /package/{dist/useLockBody → useLockBody}/index.js +0 -0
  240. /package/{dist/useLockBody → useLockBody}/useLockBody.d.ts +0 -0
  241. /package/{dist/useLockBody → useLockBody}/useLockBody.d.ts.map +0 -0
  242. /package/{dist/useLockBody → useLockBody}/useLockBody.js +0 -0
  243. /package/{dist/useMap → useMap}/index.d.ts +0 -0
  244. /package/{dist/useMap → useMap}/index.d.ts.map +0 -0
  245. /package/{dist/useMap → useMap}/index.js +0 -0
  246. /package/{dist/useMap → useMap}/useMap.d.ts +0 -0
  247. /package/{dist/useMap → useMap}/useMap.d.ts.map +0 -0
  248. /package/{dist/useMap → useMap}/useMap.js +0 -0
  249. /package/{dist/useMediaQuery → useMediaQuery}/index.d.ts +0 -0
  250. /package/{dist/useMediaQuery → useMediaQuery}/index.d.ts.map +0 -0
  251. /package/{dist/useMediaQuery → useMediaQuery}/index.js +0 -0
  252. /package/{dist/useMediaQuery → useMediaQuery}/useMediaQuery.d.ts +0 -0
  253. /package/{dist/useMediaQuery → useMediaQuery}/useMediaQuery.d.ts.map +0 -0
  254. /package/{dist/useMediaQuery → useMediaQuery}/useMediaQuery.js +0 -0
  255. /package/{dist/useOnClickOutside → useOnClickOutside}/index.d.ts +0 -0
  256. /package/{dist/useOnClickOutside → useOnClickOutside}/index.d.ts.map +0 -0
  257. /package/{dist/useOnClickOutside → useOnClickOutside}/index.js +0 -0
  258. /package/{dist/useOnClickOutside → useOnClickOutside}/useOnClickOutside.js +0 -0
  259. /package/{dist/useQueryString → useQueryString}/index.d.ts +0 -0
  260. /package/{dist/useQueryString → useQueryString}/index.d.ts.map +0 -0
  261. /package/{dist/useQueryString → useQueryString}/index.js +0 -0
  262. /package/{dist/useQueryString → useQueryString}/useQueryString.d.ts +0 -0
  263. /package/{dist/useQueryString → useQueryString}/useQueryString.d.ts.map +0 -0
  264. /package/{dist/useQueryString → useQueryString}/useQueryString.js +0 -0
  265. /package/{dist/useReadLocalStorage → useReadLocalStorage}/index.d.ts +0 -0
  266. /package/{dist/useReadLocalStorage → useReadLocalStorage}/index.d.ts.map +0 -0
  267. /package/{dist/useReadLocalStorage → useReadLocalStorage}/index.js +0 -0
  268. /package/{dist/useReadLocalStorage → useReadLocalStorage}/useReadLocalStorage.d.ts +0 -0
  269. /package/{dist/useReadLocalStorage → useReadLocalStorage}/useReadLocalStorage.d.ts.map +0 -0
  270. /package/{dist/useReadLocalStorage → useReadLocalStorage}/useReadLocalStorage.js +0 -0
  271. /package/{dist/useResizeObserver → useResizeObserver}/index.d.ts +0 -0
  272. /package/{dist/useResizeObserver → useResizeObserver}/index.d.ts.map +0 -0
  273. /package/{dist/useResizeObserver → useResizeObserver}/index.js +0 -0
  274. /package/{dist/useResizeObserver → useResizeObserver}/useResizeObserver.js +0 -0
  275. /package/{dist/useScreen → useScreen}/index.d.ts +0 -0
  276. /package/{dist/useScreen → useScreen}/index.d.ts.map +0 -0
  277. /package/{dist/useScreen → useScreen}/index.js +0 -0
  278. /package/{dist/useScreen → useScreen}/useScreen.d.ts +0 -0
  279. /package/{dist/useScreen → useScreen}/useScreen.d.ts.map +0 -0
  280. /package/{dist/useScreen → useScreen}/useScreen.js +0 -0
  281. /package/{dist/useScript → useScript}/index.d.ts +0 -0
  282. /package/{dist/useScript → useScript}/index.d.ts.map +0 -0
  283. /package/{dist/useScript → useScript}/index.js +0 -0
  284. /package/{dist/useScript → useScript}/useScript.d.ts +0 -0
  285. /package/{dist/useScript → useScript}/useScript.d.ts.map +0 -0
  286. /package/{dist/useScript → useScript}/useScript.js +0 -0
  287. /package/{dist/useScrollLock → useScrollLock}/index.d.ts +0 -0
  288. /package/{dist/useScrollLock → useScrollLock}/index.d.ts.map +0 -0
  289. /package/{dist/useScrollLock → useScrollLock}/index.js +0 -0
  290. /package/{dist/useScrollLock → useScrollLock}/useScrollLock.d.ts +0 -0
  291. /package/{dist/useScrollLock → useScrollLock}/useScrollLock.d.ts.map +0 -0
  292. /package/{dist/useScrollLock → useScrollLock}/useScrollLock.js +0 -0
  293. /package/{dist/useSessionStorage → useSessionStorage}/index.d.ts +0 -0
  294. /package/{dist/useSessionStorage → useSessionStorage}/index.d.ts.map +0 -0
  295. /package/{dist/useSessionStorage → useSessionStorage}/index.js +0 -0
  296. /package/{dist/useSessionStorage → useSessionStorage}/useSessionStorage.d.ts +0 -0
  297. /package/{dist/useSessionStorage → useSessionStorage}/useSessionStorage.d.ts.map +0 -0
  298. /package/{dist/useSessionStorage → useSessionStorage}/useSessionStorage.js +0 -0
  299. /package/{dist/useStep → useStep}/index.d.ts +0 -0
  300. /package/{dist/useStep → useStep}/index.d.ts.map +0 -0
  301. /package/{dist/useStep → useStep}/index.js +0 -0
  302. /package/{dist/useStep → useStep}/useStep.d.ts +0 -0
  303. /package/{dist/useStep → useStep}/useStep.d.ts.map +0 -0
  304. /package/{dist/useStep → useStep}/useStep.js +0 -0
  305. /package/{dist/useTernaryDarkMode → useTernaryDarkMode}/index.d.ts +0 -0
  306. /package/{dist/useTernaryDarkMode → useTernaryDarkMode}/index.d.ts.map +0 -0
  307. /package/{dist/useTernaryDarkMode → useTernaryDarkMode}/index.js +0 -0
  308. /package/{dist/useTernaryDarkMode → useTernaryDarkMode}/useTernaryDarkMode.d.ts +0 -0
  309. /package/{dist/useTernaryDarkMode → useTernaryDarkMode}/useTernaryDarkMode.d.ts.map +0 -0
  310. /package/{dist/useTernaryDarkMode → useTernaryDarkMode}/useTernaryDarkMode.js +0 -0
  311. /package/{dist/useTimeout → useTimeout}/index.d.ts +0 -0
  312. /package/{dist/useTimeout → useTimeout}/index.d.ts.map +0 -0
  313. /package/{dist/useTimeout → useTimeout}/index.js +0 -0
  314. /package/{dist/useTimeout → useTimeout}/useTimeout.d.ts +0 -0
  315. /package/{dist/useTimeout → useTimeout}/useTimeout.d.ts.map +0 -0
  316. /package/{dist/useTimeout → useTimeout}/useTimeout.js +0 -0
  317. /package/{dist/useToggle → useToggle}/index.d.ts +0 -0
  318. /package/{dist/useToggle → useToggle}/index.d.ts.map +0 -0
  319. /package/{dist/useToggle → useToggle}/index.js +0 -0
  320. /package/{dist/useToggle → useToggle}/useToggle.d.ts +0 -0
  321. /package/{dist/useToggle → useToggle}/useToggle.d.ts.map +0 -0
  322. /package/{dist/useToggle → useToggle}/useToggle.js +0 -0
  323. /package/{dist/useUnmount → useUnmount}/index.d.ts +0 -0
  324. /package/{dist/useUnmount → useUnmount}/index.d.ts.map +0 -0
  325. /package/{dist/useUnmount → useUnmount}/index.js +0 -0
  326. /package/{dist/useUnmount → useUnmount}/useUnmount.d.ts +0 -0
  327. /package/{dist/useUnmount → useUnmount}/useUnmount.d.ts.map +0 -0
  328. /package/{dist/useUnmount → useUnmount}/useUnmount.js +0 -0
  329. /package/{dist/useWindowSize → useWindowSize}/index.d.ts +0 -0
  330. /package/{dist/useWindowSize → useWindowSize}/index.d.ts.map +0 -0
  331. /package/{dist/useWindowSize → useWindowSize}/index.js +0 -0
  332. /package/{dist/useWindowSize → useWindowSize}/useWindowSize.d.ts +0 -0
  333. /package/{dist/useWindowSize → useWindowSize}/useWindowSize.d.ts.map +0 -0
  334. /package/{dist/useWindowSize → useWindowSize}/useWindowSize.js +0 -0
@@ -1,44 +0,0 @@
1
- import * as React from "./";
2
- export { Fragment } from "./";
3
-
4
- export namespace JSX {
5
- interface Element extends React.JSX.Element {}
6
- interface ElementClass extends React.JSX.ElementClass {}
7
- interface ElementAttributesProperty extends React.JSX.ElementAttributesProperty {}
8
- interface ElementChildrenAttribute extends React.JSX.ElementChildrenAttribute {}
9
- type LibraryManagedAttributes<C, P> = React.JSX.LibraryManagedAttributes<C, P>;
10
- interface IntrinsicAttributes extends React.JSX.IntrinsicAttributes {}
11
- interface IntrinsicClassAttributes<T> extends React.JSX.IntrinsicClassAttributes<T> {}
12
- interface IntrinsicElements extends React.JSX.IntrinsicElements {}
13
- }
14
-
15
- export interface JSXSource {
16
- /**
17
- * The source file where the element originates from.
18
- */
19
- fileName?: string | undefined;
20
-
21
- /**
22
- * The line number where the element was created.
23
- */
24
- lineNumber?: number | undefined;
25
-
26
- /**
27
- * The column number where the element was created.
28
- */
29
- columnNumber?: number | undefined;
30
- }
31
-
32
- /**
33
- * Create a React element.
34
- *
35
- * You should not use this function directly. Use JSX and a transpiler instead.
36
- */
37
- export function jsxDEV(
38
- type: React.ElementType,
39
- props: unknown,
40
- key: React.Key | undefined,
41
- isStatic: boolean,
42
- source?: JSXSource,
43
- self?: unknown,
44
- ): React.ReactElement;
@@ -1,35 +0,0 @@
1
- import * as React from "./";
2
- export { Fragment } from "./";
3
-
4
- export namespace JSX {
5
- interface Element extends React.JSX.Element {}
6
- interface ElementClass extends React.JSX.ElementClass {}
7
- interface ElementAttributesProperty extends React.JSX.ElementAttributesProperty {}
8
- interface ElementChildrenAttribute extends React.JSX.ElementChildrenAttribute {}
9
- type LibraryManagedAttributes<C, P> = React.JSX.LibraryManagedAttributes<C, P>;
10
- interface IntrinsicAttributes extends React.JSX.IntrinsicAttributes {}
11
- interface IntrinsicClassAttributes<T> extends React.JSX.IntrinsicClassAttributes<T> {}
12
- interface IntrinsicElements extends React.JSX.IntrinsicElements {}
13
- }
14
-
15
- /**
16
- * Create a React element.
17
- *
18
- * You should not use this function directly. Use JSX and a transpiler instead.
19
- */
20
- export function jsx(
21
- type: React.ElementType,
22
- props: unknown,
23
- key?: React.Key,
24
- ): React.ReactElement;
25
-
26
- /**
27
- * Create a React element.
28
- *
29
- * You should not use this function directly. Use JSX and a transpiler instead.
30
- */
31
- export function jsxs(
32
- type: React.ElementType,
33
- props: unknown,
34
- key?: React.Key,
35
- ): React.ReactElement;
package/src/index.ts DELETED
@@ -1,36 +0,0 @@
1
- export * from './useBoolean';
2
- export * from './useClickAnyWhere';
3
- export * from './useCopyToClipboard';
4
- export * from './useCountdown';
5
- export * from './useCounter';
6
- export * from './useDarkMode';
7
- export * from './useDebounceCallback';
8
- export * from './useDebounceValue';
9
- export * from './useDocumentTitle';
10
- export * from './useEventCallback';
11
- export * from './useEventListener';
12
- export * from './useHover';
13
- export * from './useIntersectionObserver';
14
- export * from './useInterval';
15
- export * from './useIsClient';
16
- export * from './useIsMobile';
17
- export * from './useIsMounted';
18
- export * from './useIsomorphicLayoutEffect';
19
- export * from './useLocalStorage';
20
- export * from './useLockBody';
21
- export * from './useMap';
22
- export * from './useMediaQuery';
23
- export * from './useOnClickOutside';
24
- export * from './useReadLocalStorage';
25
- export * from './useResizeObserver';
26
- export * from './useScreen';
27
- export * from './useScript';
28
- export * from './useScrollLock';
29
- export * from './useSessionStorage';
30
- export * from './useStep';
31
- export * from './useTernaryDarkMode';
32
- export * from './useTimeout';
33
- export * from './useToggle';
34
- export * from './useUnmount';
35
- export * from './useWindowSize';
36
- export * from './useQueryString';
@@ -1 +0,0 @@
1
- export * from './useBoolean'
@@ -1,50 +0,0 @@
1
- import { useCallback, useState } from 'react'
2
-
3
- import type { Dispatch, SetStateAction } from 'react'
4
-
5
- /** The useBoolean return type. */
6
- type UseBooleanReturn = {
7
- /** The current boolean state value. */
8
- value: boolean
9
- /** Function to set the boolean state directly. */
10
- setValue: Dispatch<SetStateAction<boolean>>
11
- /** Function to set the boolean state to `true`. */
12
- setTrue: () => void
13
- /** Function to set the boolean state to `false`. */
14
- setFalse: () => void
15
- /** Function to toggle the boolean state. */
16
- toggle: () => void
17
- }
18
-
19
- /**
20
- * Custom hook that handles boolean state with useful utility functions.
21
- * @param {boolean} [defaultValue] - The initial value for the boolean state (default is `false`).
22
- * @returns {UseBooleanReturn} An object containing the boolean state value and utility functions to manipulate the state.
23
- * @throws Will throw an error if `defaultValue` is an invalid boolean value.
24
- * @public
25
- * @see [Documentation](https://usehooks-ts.com/react-hook/use-boolean)
26
- * @example
27
- * ```tsx
28
- * const { value, setTrue, setFalse, toggle } = useBoolean(true);
29
- * ```
30
- */
31
- export function useBoolean(defaultValue = false): UseBooleanReturn {
32
- if (typeof defaultValue !== 'boolean') {
33
- throw new Error('defaultValue must be `true` or `false`')
34
- }
35
- const [value, setValue] = useState(defaultValue)
36
-
37
- const setTrue = useCallback(() => {
38
- setValue(true)
39
- }, [])
40
-
41
- const setFalse = useCallback(() => {
42
- setValue(false)
43
- }, [])
44
-
45
- const toggle = useCallback(() => {
46
- setValue(x => !x)
47
- }, [])
48
-
49
- return { value, setValue, setTrue, setFalse, toggle }
50
- }
@@ -1 +0,0 @@
1
- export * from './useClickAnyWhere'
@@ -1,22 +0,0 @@
1
- import { useEventListener } from '../useEventListener'
2
-
3
- /**
4
- * Custom hook that handles click events anywhere on the document.
5
- * @param {Function} handler - The function to be called when a click event is detected anywhere on the document.
6
- * @public
7
- * @see [Documentation](https://usehooks-ts.com/react-hook/use-click-any-where)
8
- * @example
9
- * ```tsx
10
- * const handleClick = (event) => {
11
- * console.log('Document clicked!', event);
12
- * };
13
- *
14
- * // Attach click event handler to document
15
- * useClickAnywhere(handleClick);
16
- * ```
17
- */
18
- export function useClickAnyWhere(handler: (event: MouseEvent) => void) {
19
- useEventListener('click', event => {
20
- handler(event)
21
- })
22
- }
@@ -1 +0,0 @@
1
- export * from './useCopyToClipboard'
@@ -1,58 +0,0 @@
1
- import { useCallback, useState } from 'react'
2
-
3
- /**
4
- * The copied text as `string` or `null` if nothing has been copied yet.
5
- */
6
- type CopiedValue = string | null
7
-
8
- /**
9
- * Function to copy text to the clipboard.
10
- * @param text - The text to copy to the clipboard.
11
- * @returns {Promise<boolean>} A promise that resolves to `true` if the text was copied successfully, or `false` otherwise.
12
- */
13
- type CopyFn = (text: string) => Promise<boolean>
14
-
15
- /**
16
- * Custom hook that copies text to the clipboard using the [`Clipboard API`](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API).
17
- * @returns {[CopiedValue, CopyFn]} An tuple containing the copied text and a function to copy text to the clipboard.
18
- * @public
19
- * @see [Documentation](https://usehooks-ts.com/react-hook/use-copy-to-clipboard)
20
- * @example
21
- * ```tsx
22
- * const [copiedText, copyToClipboard] = useCopyToClipboard();
23
- * const textToCopy = 'Hello, world!';
24
- *
25
- * // Attempt to copy text to the clipboard
26
- * copyToClipboard(textToCopy)
27
- * .then(success => {
28
- * if (success) {
29
- * console.log(`Text "${textToCopy}" copied to clipboard successfully.`);
30
- * } else {
31
- * console.error('Failed to copy text to clipboard.');
32
- * }
33
- * });
34
- * ```
35
- */
36
- export function useCopyToClipboard(): [CopiedValue, CopyFn] {
37
- const [copiedText, setCopiedText] = useState<CopiedValue>(null)
38
-
39
- const copy: CopyFn = useCallback(async text => {
40
- if (!navigator?.clipboard) {
41
- console.warn('Clipboard not supported')
42
- return false
43
- }
44
-
45
- // Try to save to clipboard then save it in the state if worked
46
- try {
47
- await navigator.clipboard.writeText(text)
48
- setCopiedText(text)
49
- return true
50
- } catch (error) {
51
- console.warn('Copy failed', error)
52
- setCopiedText(null)
53
- return false
54
- }
55
- }, [])
56
-
57
- return [copiedText, copy]
58
- }
@@ -1 +0,0 @@
1
- export * from './useCountdown'
@@ -1,102 +0,0 @@
1
- import { useCallback } from 'react'
2
-
3
- import { useBoolean } from '../useBoolean'
4
- import { useCounter } from '../useCounter'
5
- import { useInterval } from '../useInterval'
6
-
7
- /** The countdown's options. */
8
- type CountdownOptions = {
9
- /** The countdown's starting number, initial value of the returned number. */
10
- countStart: number
11
-
12
- /**
13
- * The countdown's interval, in milliseconds.
14
- * @default 1000
15
- */
16
- intervalMs?: number
17
- /**
18
- * True if the countdown is increment.
19
- * @default false
20
- */
21
- isIncrement?: boolean
22
-
23
- /**
24
- * The countdown's stopping number. Pass `-Infinity` to decrease forever.
25
- * @default 0
26
- */
27
- countStop?: number
28
- }
29
-
30
- /** The countdown's controllers. */
31
- type CountdownControllers = {
32
- /** Start the countdown. */
33
- startCountdown: () => void
34
- /** Stop the countdown. */
35
- stopCountdown: () => void
36
- /** Reset the countdown. */
37
- resetCountdown: () => void
38
- }
39
-
40
- /**
41
- * Custom hook that manages countdown.
42
- * @param {CountdownOptions} countdownOptions - The countdown's options.
43
- * @returns {[number, CountdownControllers]} An array containing the countdown's count and its controllers.
44
- * @public
45
- * @see [Documentation](https://usehooks-ts.com/react-hook/use-countdown)
46
- * @example
47
- * ```tsx
48
- * const [counter, { start, stop, reset }] = useCountdown({
49
- * countStart: 10,
50
- * intervalMs: 1000,
51
- * isIncrement: false,
52
- * });
53
- * ```
54
- */
55
- export function useCountdown({
56
- countStart,
57
- countStop = 0,
58
- intervalMs = 1000,
59
- isIncrement = false,
60
- }: CountdownOptions): [number, CountdownControllers] {
61
- const {
62
- count,
63
- increment,
64
- decrement,
65
- reset: resetCounter,
66
- } = useCounter(countStart)
67
-
68
- /*
69
- * Note: used to control the useInterval
70
- * running: If true, the interval is running
71
- * start: Should set running true to trigger interval
72
- * stop: Should set running false to remove interval.
73
- */
74
- const {
75
- value: isCountdownRunning,
76
- setTrue: startCountdown,
77
- setFalse: stopCountdown,
78
- } = useBoolean(false)
79
-
80
- // Will set running false and reset the seconds to initial value.
81
- const resetCountdown = useCallback(() => {
82
- stopCountdown()
83
- resetCounter()
84
- }, [stopCountdown, resetCounter])
85
-
86
- const countdownCallback = useCallback(() => {
87
- if (count === countStop) {
88
- stopCountdown()
89
- return
90
- }
91
-
92
- if (isIncrement) {
93
- increment()
94
- } else {
95
- decrement()
96
- }
97
- }, [count, countStop, decrement, increment, isIncrement, stopCountdown])
98
-
99
- useInterval(countdownCallback, isCountdownRunning ? intervalMs : null)
100
-
101
- return [count, { startCountdown, stopCountdown, resetCountdown }]
102
- }
@@ -1 +0,0 @@
1
- export * from './useCounter'
@@ -1,52 +0,0 @@
1
- import { useCallback, useState } from 'react'
2
-
3
- import type { Dispatch, SetStateAction } from 'react'
4
-
5
- /** The hook return type. */
6
- type UseCounterReturn = {
7
- /** The current count value. */
8
- count: number
9
- /** Function to increment the counter by 1. */
10
- increment: () => void
11
- /** Function to decrement the counter by 1. */
12
- decrement: () => void
13
- /** Function to reset the counter to its initial value. */
14
- reset: () => void
15
- /** Function to set a specific value to the counter. */
16
- setCount: Dispatch<SetStateAction<number>>
17
- }
18
-
19
- /**
20
- * Custom hook that manages a counter with increment, decrement, reset, and setCount functionalities.
21
- * @param {number} [initialValue] - The initial value for the counter.
22
- * @returns {UseCounterReturn} An object containing the current count and functions to interact with the counter.
23
- * @public
24
- * @see [Documentation](https://usehooks-ts.com/react-hook/use-counter)
25
- * @example
26
- * ```tsx
27
- * const { count, increment, decrement, reset, setCount } = useCounter(5);
28
- * ```
29
- */
30
- export function useCounter(initialValue?: number): UseCounterReturn {
31
- const [count, setCount] = useState(initialValue ?? 0)
32
-
33
- const increment = useCallback(() => {
34
- setCount(x => x + 1)
35
- }, [])
36
-
37
- const decrement = useCallback(() => {
38
- setCount(x => x - 1)
39
- }, [])
40
-
41
- const reset = useCallback(() => {
42
- setCount(initialValue ?? 0)
43
- }, [initialValue])
44
-
45
- return {
46
- count,
47
- increment,
48
- decrement,
49
- reset,
50
- setCount,
51
- }
52
- }
@@ -1 +0,0 @@
1
- export * from './useDarkMode'
@@ -1,92 +0,0 @@
1
- import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect'
2
- import { useLocalStorage } from '../useLocalStorage'
3
- import { useMediaQuery } from '../useMediaQuery'
4
-
5
- const COLOR_SCHEME_QUERY = '(prefers-color-scheme: dark)'
6
- const LOCAL_STORAGE_KEY = 'usehooks-ts-dark-mode'
7
-
8
- /** The hook options. */
9
- type DarkModeOptions = {
10
- /**
11
- * The initial value of the dark mode.
12
- * @default false
13
- */
14
- defaultValue?: boolean
15
- /**
16
- * The key to use in the local storage.
17
- * @default 'usehooks-ts-dark-mode'
18
- */
19
- localStorageKey?: string
20
- /**
21
- * If `true` (default), the hook will initialize reading `localStorage`.
22
- * In SSR, you should set it to `false`, returning the `defaultValue` or `false` initially.
23
- * @default true
24
- */
25
- initializeWithValue?: boolean
26
- }
27
-
28
- /** The hook return type. */
29
- type DarkModeReturn = {
30
- /** The current state of the dark mode. */
31
- isDarkMode: boolean
32
- /** Function to toggle the dark mode. */
33
- toggle: () => void
34
- /** Function to enable the dark mode. */
35
- enable: () => void
36
- /** Function to disable the dark mode. */
37
- disable: () => void
38
- /** Function to set a specific value to the dark mode. */
39
- set: (value: boolean) => void
40
- }
41
-
42
- /**
43
- * Custom hook that returns the current state of the dark mode.
44
- * @param {?DarkModeOptions} [options] - The initial value of the dark mode, default `false`.
45
- * @returns {DarkModeReturn} An object containing the dark mode's state and its controllers.
46
- * @public
47
- * @see [Documentation](https://usehooks-ts.com/react-hook/use-dark-mode)
48
- * @example
49
- * ```tsx
50
- * const { isDarkMode, toggle, enable, disable, set } = useDarkMode({ defaultValue: true });
51
- * ```
52
- */
53
- export function useDarkMode(options: DarkModeOptions = {}): DarkModeReturn {
54
- const {
55
- defaultValue,
56
- localStorageKey = LOCAL_STORAGE_KEY,
57
- initializeWithValue = true,
58
- } = options
59
-
60
- const isDarkOS = useMediaQuery(COLOR_SCHEME_QUERY, {
61
- initializeWithValue,
62
- defaultValue,
63
- })
64
- const [isDarkMode, setDarkMode] = useLocalStorage<boolean>(
65
- localStorageKey,
66
- defaultValue ?? isDarkOS ?? false,
67
- { initializeWithValue },
68
- )
69
-
70
- // Update darkMode if os prefers changes
71
- useIsomorphicLayoutEffect(() => {
72
- if (isDarkOS !== isDarkMode) {
73
- setDarkMode(isDarkOS)
74
- }
75
- }, [isDarkOS])
76
-
77
- return {
78
- isDarkMode,
79
- toggle: () => {
80
- setDarkMode(prev => !prev)
81
- },
82
- enable: () => {
83
- setDarkMode(true)
84
- },
85
- disable: () => {
86
- setDarkMode(false)
87
- },
88
- set: value => {
89
- setDarkMode(value)
90
- },
91
- }
92
- }
@@ -1,2 +0,0 @@
1
- export * from './useDebounceCallback'
2
- export {useDebounceCallback as default } from './useDebounceCallback'
@@ -1,115 +0,0 @@
1
- import { useEffect, useMemo, useRef } from 'react'
2
-
3
- import debounce from 'lodash.debounce'
4
-
5
- import { useUnmount } from '../useUnmount'
6
-
7
- /** Configuration options for controlling the behavior of the debounced function. */
8
- type DebounceOptions = {
9
- /**
10
- * Determines whether the function should be invoked on the leading edge of the timeout.
11
- * @default false
12
- */
13
- leading?: boolean
14
- /**
15
- * Determines whether the function should be invoked on the trailing edge of the timeout.
16
- * @default false
17
- */
18
- trailing?: boolean
19
- /**
20
- * The maximum time the specified function is allowed to be delayed before it is invoked.
21
- */
22
- maxWait?: number
23
- }
24
-
25
- /** Functions to manage a debounced callback. */
26
- type ControlFunctions = {
27
- /** Cancels pending function invocations. */
28
- cancel: () => void
29
- /** Immediately invokes pending function invocations. */
30
- flush: () => void
31
- /**
32
- * Checks if there are any pending function invocations.
33
- * @returns `true` if there are pending invocations, otherwise `false`.
34
- */
35
- isPending: () => boolean
36
- }
37
-
38
- /**
39
- * Represents the state and control functions of a debounced callback.
40
- * Subsequent calls to the debounced function return the result of the last invocation.
41
- * Note: If there are no previous invocations, the result will be undefined.
42
- * Ensure proper handling in your code.
43
- */
44
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
- export type DebouncedState<T extends (...args: any) => ReturnType<T>> = ((
46
- ...args: Parameters<T>
47
- ) => ReturnType<T> | undefined) &
48
- ControlFunctions
49
-
50
- /**
51
- * Custom hook that creates a debounced version of a callback function.
52
- * @template T - Type of the original callback function.
53
- * @param {T} func - The callback function to be debounced.
54
- * @param {number} delay - The delay in milliseconds before the callback is invoked (default is `500` milliseconds).
55
- * @param {DebounceOptions} [options] - Options to control the behavior of the debounced function.
56
- * @returns {DebouncedState<T>} A debounced version of the original callback along with control functions.
57
- * @public
58
- * @see [Documentation](https://usehooks-ts.com/react-hook/use-debounce-callback)
59
- * @example
60
- * ```tsx
61
- * const debouncedCallback = useDebounceCallback(
62
- * (searchTerm) => {
63
- * // Perform search after user stops typing for 500 milliseconds
64
- * searchApi(searchTerm);
65
- * },
66
- * 500
67
- * );
68
- *
69
- * // Later in the component
70
- * debouncedCallback('react hooks'); // Will invoke the callback after 500 milliseconds of inactivity.
71
- * ```
72
- */
73
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
74
- export function useDebounceCallback<T extends (...args: any) => ReturnType<T>>(
75
- func: T,
76
- delay = 500,
77
- options?: DebounceOptions,
78
- ): DebouncedState<T> {
79
- const debouncedFunc = useRef<ReturnType<typeof debounce>>(null)
80
-
81
- useUnmount(() => {
82
- if (debouncedFunc.current) {
83
- debouncedFunc.current.cancel()
84
- }
85
- })
86
-
87
- const debounced = useMemo(() => {
88
- const debouncedFuncInstance = debounce(func, delay, options)
89
-
90
- const wrappedFunc: DebouncedState<T> = (...args: Parameters<T>) => {
91
- return debouncedFuncInstance(...args)
92
- }
93
-
94
- wrappedFunc.cancel = () => {
95
- debouncedFuncInstance.cancel()
96
- }
97
-
98
- wrappedFunc.isPending = () => {
99
- return !!debouncedFunc.current
100
- }
101
-
102
- wrappedFunc.flush = () => {
103
- return debouncedFuncInstance.flush()
104
- }
105
-
106
- return wrappedFunc
107
- }, [func, delay, options])
108
-
109
- // Update the debounced function ref whenever func, wait, or options change
110
- useEffect(() => {
111
- debouncedFunc.current = debounce(func, delay, options)
112
- }, [func, delay, options])
113
-
114
- return debounced
115
- }
@@ -1 +0,0 @@
1
- export * from './useDebounceValue'