@wiggindev/hooks 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,2 +1,2 @@
1
1
  import React from 'react';
2
- export declare const useIsomorphicLayoutEffect: typeof React.useEffect;
2
+ export declare const useIsomorphicLayoutEffect: typeof React.useLayoutEffect;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wiggindev/hooks",
3
3
  "description": "Various hooks that I use in my projects",
4
- "version": "0.2.3",
4
+ "version": "0.2.4",
5
5
  "author": {
6
6
  "name": "Andrew Wiggin",
7
7
  "email": "andrew@wiggin.dev",
@@ -19,8 +19,8 @@
19
19
  "unpkg": "dist/index.umd.js",
20
20
  "types": "dist/index.d.ts",
21
21
  "scripts": {
22
- "build": "rm -rf dist && microbundle",
23
- "dev": "rm -rf dist && microbundle watch"
22
+ "build": "rm -rf dist && microbundle -f modern,esm,cjs",
23
+ "dev": "rm -rf dist && microbundle -f modern,esm,cjs watch"
24
24
  },
25
25
  "dependencies": {
26
26
  "@wiggindev/utils": "*"
package/dist/index.umd.js DELETED
@@ -1,2 +0,0 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react"),require("@wiggindev/utils")):"function"==typeof define&&define.amd?define(["exports","react","@wiggindev/utils"],n):n((e||self).hooks={},e.react,e.utils)}(this,function(e,n,t){function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=/*#__PURE__*/u(n),i="undefined"!=typeof window?f.default.useLayoutEffect:f.default.useEffect,o=function(e){var n=f.default.useRef(e);return i(function(){n.current=e}),f.default.useMemo(function(){return n.current},[])},r=function(e,n){var u=o(n);f.default.useEffect(function(){if(window&&window.addEventListener)return t.events.window.on(e,u),function(){return t.events.window.off(e,u)}},[e,u])};e.useDocumentEventListener=function(e,n){var u=o(n);f.default.useEffect(function(){if(document&&document.addEventListener)return t.events.document.on(e,u),function(){return t.events.document.off(e,u)}},[e,u])},e.useEvent=o,e.useEventListener=function(e,n,u){var i=o(n);f.default.useEffect(function(){var n=u.current;if(n&&n.addEventListener)return t.events.element.on(n,e,i),function(){return t.events.element.off(n,e,i)}},[u,e,i])},e.useIsomorphicLayoutEffect=i,e.usePrevious=function(e){var n=f.default.useRef();return f.default.useEffect(function(){n.current=e},[e]),n.current},e.useWindowDimensions=function(e){void 0===e&&(e=250);var n=f.default.useState({width:0,height:0}),u=n[0],d=n[1],s=function(){return d({width:(e=window).innerWidth,height:e.innerHeight});var e},c=o(t.throttle(s,e));return r("resize",c),i(function(){s()},[]),u},e.useWindowEventListener=r});
2
- //# sourceMappingURL=index.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/useIsomorphicLayoutEffect.ts","../src/useEvent.ts","../src/useWindowEventListener.ts","../src/useDocumentEventListener.ts","../src/useEventListener.ts","../src/usePrevious.ts","../src/useWindowDimensions.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n","import React from 'react';\nimport { Callback } from '@wiggindev/utils';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\nexport const useEvent = <C extends Callback>(callback: C): C => {\n const callbackRef = React.useRef(callback);\n useIsomorphicLayoutEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => callbackRef.current, []);\n};\n","import React from 'react';\nimport { events, EventName, EventListener } from '@wiggindev/utils';\nimport { useEvent } from './useEvent';\n\nexport const useWindowEventListener = <K extends EventName<WindowEventMap>>(\n eventName: K,\n listener: EventListener<WindowEventMap, K>\n) => {\n const stableListener = useEvent(listener);\n React.useEffect(() => {\n if (!window || !window.addEventListener) {\n return;\n }\n events.window.on(eventName, stableListener);\n return () => events.window.off(eventName, stableListener);\n }, [eventName, stableListener]);\n};\n","import React from 'react';\nimport { events, EventName, EventListener } from '@wiggindev/utils';\nimport { useEvent } from './useEvent';\n\nexport const useDocumentEventListener = <K extends EventName<DocumentEventMap>>(\n eventName: K,\n listener: EventListener<DocumentEventMap, K>\n) => {\n const stableListener = useEvent(listener);\n React.useEffect(() => {\n if (!document || !document.addEventListener) {\n return;\n }\n events.document.on(eventName, stableListener);\n return () => events.document.off(eventName, stableListener);\n }, [eventName, stableListener]);\n};\n","import React from 'react';\nimport { events, EventName, EventListener } from '@wiggindev/utils';\nimport { useEvent } from './useEvent';\n\nexport const useEventListener = <\n K extends EventName<HTMLElementEventMap>,\n E extends HTMLElement\n>(\n eventName: K,\n listener: EventListener<HTMLElementEventMap, K>,\n element: React.RefObject<E>\n) => {\n const stableListener = useEvent(listener);\n React.useEffect(() => {\n const node = element.current;\n if (!node || !node.addEventListener) {\n return;\n }\n events.element.on(node, eventName, stableListener);\n return () => events.element.off(node, eventName, stableListener);\n }, [element, eventName, stableListener]);\n};\n","import React from 'react';\n\nexport const usePrevious = <T>(value: T) => {\n const stateRef = React.useRef<T>();\n React.useEffect(() => {\n stateRef.current = value;\n }, [value]);\n return stateRef.current;\n};\n","import React from 'react';\nimport { throttle } from '@wiggindev/utils';\nimport { useWindowEventListener } from './useWindowEventListener';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\nimport { useEvent } from './useEvent';\n\nconst getWindowDimensions = () => {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height,\n };\n};\n\nexport const useWindowDimensions = (throttleLimit = 250) => {\n const [windowDimensions, setWindowDimensions] = React.useState({\n width: 0,\n height: 0,\n });\n\n const updateWindowDimensions = () =>\n setWindowDimensions(getWindowDimensions());\n const handleResize = useEvent(\n throttle(updateWindowDimensions, throttleLimit)\n );\n\n useWindowEventListener('resize', handleResize);\n\n useIsomorphicLayoutEffect(() => {\n updateWindowDimensions();\n }, []);\n\n return windowDimensions;\n};\n"],"names":["useIsomorphicLayoutEffect","window","React","useLayoutEffect","useEffect","useEvent","callback","callbackRef","useRef","current","useMemo","useWindowEventListener","eventName","listener","stableListener","addEventListener","events","on","off","document","element","node","value","stateRef","throttleLimit","useState","width","height","windowDimensions","_React$useState","setWindowDimensions","updateWindowDimensions","_window","innerWidth","innerHeight","handleResize","throttle"],"mappings":"2ZAEaA,EACS,oBAAXC,OAAyBC,EAAAA,QAAMC,gBAAkBD,EAAAA,QAAME,UCCrDC,EAAW,SAAqBC,GACzC,IAAMC,EAAcL,EAAK,QAACM,OAAOF,GAIjC,OAHAN,EAA0B,WACtBO,EAAYE,QAAUH,IAEnBJ,UAAMQ,QAAQ,WAAA,OAAMH,EAAYE,SAAS,KCLvCE,EAAyB,SAClCC,EACAC,GAEA,IAAMC,EAAiBT,EAASQ,GAChCX,EAAK,QAACE,UAAU,WACZ,GAAKH,QAAWA,OAAOc,iBAIvB,OADAC,EAAMA,OAACf,OAAOgB,GAAGL,EAAWE,GACfE,WAAAA,OAAAA,EAAAA,OAAOf,OAAOiB,IAAIN,EAAWE,KAC3C,CAACF,EAAWE,gCCXqB,SACpCF,EACAC,GAEA,IAAMC,EAAiBT,EAASQ,GAChCX,EAAK,QAACE,UAAU,WACZ,GAAKe,UAAaA,SAASJ,iBAI3B,OADAC,EAAMA,OAACG,SAASF,GAAGL,EAAWE,GACjBE,WAAAA,OAAAA,EAAAA,OAAOG,SAASD,IAAIN,EAAWE,KAC7C,CAACF,EAAWE,qCCXa,SAI5BF,EACAC,EACAO,GAEA,IAAMN,EAAiBT,EAASQ,GAChCX,EAAK,QAACE,UAAU,WACZ,IAAMiB,EAAOD,EAAQX,QACrB,GAAKY,GAASA,EAAKN,iBAInB,OADAC,EAAMA,OAACI,QAAQH,GAAGI,EAAMT,EAAWE,qBACtBE,EAAMA,OAACI,QAAQF,IAAIG,EAAMT,EAAWE,KAClD,CAACM,EAASR,EAAWE,iDClBD,SAAIQ,GAC3B,IAAMC,EAAWrB,EAAK,QAACM,SAIvB,OAHAN,EAAK,QAACE,UAAU,WACZmB,EAASd,QAAUa,GACpB,CAACA,IACGC,EAASd,+BCOe,SAACe,YAAAA,IAAAA,EAAgB,KAChD,IAAgDtB,EAAAA,EAAK,QAACuB,SAAS,CAC3DC,MAAO,EACPC,OAAQ,IAFLC,EAAPC,EAAA,GAAyBC,EAAzBD,EAAA,GAKME,EAAyB,kBAC3BD,EAbG,CACHJ,OAFJM,EAAmD/B,QAA3CgC,WAGJN,OAHuBO,EAAAA,cADH,IACxBF,GAeMG,EAAe9B,EACjB+B,EAAQA,SAACL,EAAwBP,IASrC,OANAb,EAAuB,SAAUwB,GAEjCnC,EAA0B,WACtB+B,KACD,IAEIH"}