@wiggindev/hooks 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,50 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <code_scheme name="Project" version="173">
3
+ <HTMLCodeStyleSettings>
4
+ <option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
5
+ <option name="HTML_QUOTE_STYLE" value="Single" />
6
+ <option name="HTML_ENFORCE_QUOTES" value="true" />
7
+ </HTMLCodeStyleSettings>
8
+ <JSCodeStyleSettings version="0">
9
+ <option name="FORCE_SEMICOLON_STYLE" value="true" />
10
+ <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
11
+ <option name="USE_DOUBLE_QUOTES" value="false" />
12
+ <option name="FORCE_QUOTE_STYlE" value="true" />
13
+ <option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
14
+ <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
15
+ <option name="SPACES_WITHIN_IMPORTS" value="true" />
16
+ </JSCodeStyleSettings>
17
+ <TypeScriptCodeStyleSettings version="0">
18
+ <option name="FORCE_SEMICOLON_STYLE" value="true" />
19
+ <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
20
+ <option name="USE_DOUBLE_QUOTES" value="false" />
21
+ <option name="FORCE_QUOTE_STYlE" value="true" />
22
+ <option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
23
+ <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
24
+ <option name="SPACES_WITHIN_IMPORTS" value="true" />
25
+ </TypeScriptCodeStyleSettings>
26
+ <VueCodeStyleSettings>
27
+ <option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
28
+ <option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
29
+ </VueCodeStyleSettings>
30
+ <codeStyleSettings language="HTML">
31
+ <option name="SOFT_MARGINS" value="80" />
32
+ <indentOptions>
33
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
34
+ </indentOptions>
35
+ </codeStyleSettings>
36
+ <codeStyleSettings language="JavaScript">
37
+ <option name="SOFT_MARGINS" value="80" />
38
+ </codeStyleSettings>
39
+ <codeStyleSettings language="TypeScript">
40
+ <option name="SOFT_MARGINS" value="80" />
41
+ </codeStyleSettings>
42
+ <codeStyleSettings language="Vue">
43
+ <option name="SOFT_MARGINS" value="80" />
44
+ <indentOptions>
45
+ <option name="INDENT_SIZE" value="4" />
46
+ <option name="TAB_SIZE" value="4" />
47
+ </indentOptions>
48
+ </codeStyleSettings>
49
+ </code_scheme>
50
+ </component>
@@ -0,0 +1,5 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <state>
3
+ <option name="USE_PER_PROJECT_SETTINGS" value="true" />
4
+ </state>
5
+ </component>
@@ -2,6 +2,6 @@
2
2
  <project version="4">
3
3
  <component name="CodeStream">
4
4
  <option name="teamId" value="627c6dbe4df6f3ed8737f84c" />
5
- <option name="webViewContext" value="{&quot;chatProviderAccess&quot;:&quot;strict&quot;,&quot;currentTeamId&quot;:&quot;627c6dbe4df6f3ed8737f84c&quot;,&quot;currentStreamId&quot;:&quot;&quot;,&quot;pullRequestCheckoutBranch&quot;:false,&quot;isRepositioning&quot;:false,&quot;onboardStep&quot;:0,&quot;panelStack&quot;:[&quot;landing-redirect&quot;],&quot;hasFocus&quot;:false,&quot;channelFilter&quot;:&quot;all&quot;,&quot;channelsMuteAll&quot;:false,&quot;codemarkFileFilter&quot;:&quot;all&quot;,&quot;codemarkTypeFilter&quot;:&quot;all&quot;,&quot;codemarkTagFilter&quot;:&quot;all&quot;,&quot;codemarkBranchFilter&quot;:&quot;all&quot;,&quot;codemarkAuthorFilter&quot;:&quot;all&quot;,&quot;codemarksFileViewStyle&quot;:&quot;inline&quot;,&quot;codemarksShowArchived&quot;:false,&quot;codemarksShowResolved&quot;:false,&quot;codemarksWrapComments&quot;:false,&quot;showFeedbackSmiley&quot;:true,&quot;route&quot;:{&quot;name&quot;:&quot;login&quot;,&quot;params&quot;:{}},&quot;spatialViewShowPRComments&quot;:false,&quot;__teamless__&quot;:{&quot;selectedRegion&quot;:&quot;us&quot;},&quot;sessionStart&quot;:1652466791260,&quot;isFirstPageview&quot;:false}" />
5
+ <option name="webViewContext" value="{&quot;chatProviderAccess&quot;:&quot;strict&quot;,&quot;currentTeamId&quot;:&quot;627c6dbe4df6f3ed8737f84c&quot;,&quot;currentStreamId&quot;:&quot;&quot;,&quot;pullRequestCheckoutBranch&quot;:false,&quot;isRepositioning&quot;:false,&quot;onboardStep&quot;:0,&quot;panelStack&quot;:[&quot;landing-redirect&quot;],&quot;hasFocus&quot;:false,&quot;channelFilter&quot;:&quot;all&quot;,&quot;channelsMuteAll&quot;:false,&quot;codemarkFileFilter&quot;:&quot;all&quot;,&quot;codemarkTypeFilter&quot;:&quot;all&quot;,&quot;codemarkTagFilter&quot;:&quot;all&quot;,&quot;codemarkBranchFilter&quot;:&quot;all&quot;,&quot;codemarkAuthorFilter&quot;:&quot;all&quot;,&quot;codemarksFileViewStyle&quot;:&quot;inline&quot;,&quot;codemarksShowArchived&quot;:false,&quot;codemarksShowResolved&quot;:false,&quot;codemarksWrapComments&quot;:false,&quot;showFeedbackSmiley&quot;:true,&quot;route&quot;:{&quot;name&quot;:&quot;login&quot;,&quot;params&quot;:{}},&quot;spatialViewShowPRComments&quot;:false,&quot;__teamless__&quot;:{&quot;selectedRegion&quot;:&quot;us&quot;},&quot;sessionStart&quot;:1652495365968,&quot;isFirstPageview&quot;:false}" />
6
6
  </component>
7
7
  </project>
package/.idea/hooks.iml CHANGED
@@ -8,6 +8,6 @@
8
8
  </content>
9
9
  <orderEntry type="inheritedJdk" />
10
10
  <orderEntry type="sourceFolder" forTests="false" />
11
- <orderEntry type="module" module-name="newportfolio" />
11
+ <orderEntry type="module" module-name="utils" />
12
12
  </component>
13
13
  </module>
@@ -0,0 +1,6 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
+ </profile>
6
+ </component>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="EslintConfiguration">
4
+ <option name="fix-on-save" value="true" />
5
+ </component>
6
+ </project>
package/.idea/modules.xml CHANGED
@@ -3,7 +3,7 @@
3
3
  <component name="ProjectModuleManager">
4
4
  <modules>
5
5
  <module fileurl="file://$PROJECT_DIR$/.idea/hooks.iml" filepath="$PROJECT_DIR$/.idea/hooks.iml" />
6
- <module fileurl="file://$PROJECT_DIR$/../portfolio/.idea/newportfolio.iml" filepath="$PROJECT_DIR$/../portfolio/.idea/newportfolio.iml" />
6
+ <module fileurl="file://$PROJECT_DIR$/../utils/.idea/utils.iml" filepath="$PROJECT_DIR$/../utils/.idea/utils.iml" />
7
7
  </modules>
8
8
  </component>
9
9
  </project>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="PrettierConfiguration">
4
+ <option name="myRunOnSave" value="true" />
5
+ <option name="myRunOnReformat" value="true" />
6
+ </component>
7
+ </project>
package/.idea/vcs.xml CHANGED
@@ -2,5 +2,6 @@
2
2
  <project version="4">
3
3
  <component name="VcsDirectoryMappings">
4
4
  <mapping directory="" vcs="Git" />
5
+ <mapping directory="$PROJECT_DIR$/../utils" vcs="Git" />
5
6
  </component>
6
7
  </project>
File without changes
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=/*#__PURE__*/e(require("react")),n="undefined"!=typeof window?t.default.useLayoutEffect:t.default.useEffect,u=function(e){var u=t.default.useRef(e);return n(function(){u.current=e}),t.default.useMemo(function(){return u.current},[])};exports.useDocumentEventListener=function(e,n){var r=u(n);t.default.useEffect(function(){if(document&&document.addEventListener)return document.addEventListener(e,r),function(){return document.addEventListener(e,r)}},[e,r])},exports.useEvent=u,exports.useEventListener=function(e,n,r){var f=u(n);t.default.useEffect(function(){var t=r.current;if(t&&t.addEventListener)return t.addEventListener(e,f),function(){return t.addEventListener(e,f)}},[r,e,f])},exports.useIsomorphicLayoutEffect=n,exports.useWindowEventListener=function(e,n){var r=u(n);t.default.useEffect(function(){if(window&&window.addEventListener)return window.addEventListener(e,r),function(){return window.addEventListener(e,r)}},[e,r])};
1
+ var e=require("react"),t=require("@wiggindev/utils");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=/*#__PURE__*/n(e),r="undefined"!=typeof window?u.default.useLayoutEffect:u.default.useEffect,f=function(e){var t=u.default.useRef(e);return r(function(){t.current=e}),u.default.useMemo(function(){return t.current},[])};exports.useDocumentEventListener=function(e,n){var r=f(n);u.default.useEffect(function(){if(document&&document.addEventListener)return t.events.document.on(e,r),function(){return t.events.document.off(e,r)}},[e,r])},exports.useEvent=f,exports.useEventListener=function(e,n,r){var o=f(n);u.default.useEffect(function(){var n=r.current;if(n&&n.addEventListener)return t.events.element.on(n,e,o),function(){return t.events.element.off(n,e,o)}},[r,e,o])},exports.useIsomorphicLayoutEffect=r,exports.useWindowEventListener=function(e,n){var r=f(n);u.default.useEffect(function(){if(window&&window.addEventListener)return t.events.window.on(e,r),function(){return t.events.window.off(e,r)}},[e,r])};
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/useIsomorphicLayoutEffect.ts","../src/useEvent.ts","../src/useDocumentEventListener.ts","../src/useEventListener.ts","../src/useWindowEventListener.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n","import React from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\ntype Callback = (...args: any[]) => any;\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 { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 document.addEventListener(eventName, stableListener);\n return () => document.addEventListener(eventName, stableListener);\n }, [eventName, stableListener]);\n};\n","import React from 'react';\nimport { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 node.addEventListener(eventName, stableListener);\n return () => node.addEventListener(eventName, stableListener);\n }, [element, eventName, stableListener]);\n};\n","import React from 'react';\nimport { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 window.addEventListener(eventName, stableListener);\n return () => window.addEventListener(eventName, stableListener);\n }, [eventName, stableListener]);\n};\n"],"names":["useIsomorphicLayoutEffect","window","React","useLayoutEffect","useEffect","useEvent","callback","callbackRef","useRef","current","useMemo","eventName","listener","stableListener","document","addEventListener","element","node"],"mappings":"+GAEaA,EACS,oBAAXC,OAAyBC,EAAAA,QAAMC,gBAAkBD,EAAAA,QAAME,UCErDC,EAAW,SAAqBC,GACzC,IAAMC,EAAcL,EAAK,QAACM,OAAOF,GAIjC,OAHAN,EAA0B,WACtBO,EAAYE,QAAUH,IAEnBJ,UAAMQ,QAAQ,WAAA,OAAMH,EAAYE,SAAS,sCCNZ,SACpCE,EACAC,GAEA,IAAMC,EAAiBR,EAASO,GAChCV,EAAAA,QAAME,UAAU,WACZ,GAAKU,UAAaA,SAASC,iBAI3B,OADAD,SAASC,iBAAiBJ,EAAWE,GACxBC,WAAAA,OAAAA,SAASC,iBAAiBJ,EAAWE,KACnD,CAACF,EAAWE,iDCXa,SAI5BF,EACAC,EACAI,GAEA,IAAMH,EAAiBR,EAASO,GAChCV,UAAME,UAAU,WACZ,IAAMa,EAAOD,EAAQP,QACrB,GAAKQ,GAASA,EAAKF,iBAInB,OADAE,EAAKF,iBAAiBJ,EAAWE,GACpBI,WAAAA,OAAAA,EAAKF,iBAAiBJ,EAAWE,KAC/C,CAACG,EAASL,EAAWE,wEChBU,SAClCF,EACAC,GAEA,IAAMC,EAAiBR,EAASO,GAChCV,EAAAA,QAAME,UAAU,WACZ,GAAKH,QAAWA,OAAOc,iBAIvB,OADAd,OAAOc,iBAAiBJ,EAAWE,GACtBZ,WAAAA,OAAAA,OAAOc,iBAAiBJ,EAAWE,KACjD,CAACF,EAAWE"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/useIsomorphicLayoutEffect.ts","../src/useEvent.ts","../src/useDocumentEventListener.ts","../src/useEventListener.ts","../src/useWindowEventListener.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n","import React from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\ntype Callback = (...args: any[]) => any;\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 { useEvent } from './useEvent';\nimport { events, EventName, EventListener } from '@wiggindev/utils';\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 { useEvent } from './useEvent';\nimport { events, EventName, EventListener } from '@wiggindev/utils';\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';\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"],"names":["useIsomorphicLayoutEffect","window","React","useLayoutEffect","useEffect","useEvent","callback","callbackRef","useRef","current","useMemo","eventName","listener","stableListener","document","addEventListener","events","on","off","element","node"],"mappings":"qJAEaA,EACS,oBAAXC,OAAyBC,EAAAA,QAAMC,gBAAkBD,EAAAA,QAAME,UCErDC,EAAW,SAAqBC,GACzC,IAAMC,EAAcL,EAAK,QAACM,OAAOF,GAIjC,OAHAN,EAA0B,WACtBO,EAAYE,QAAUH,IAEnBJ,UAAMQ,QAAQ,WAAA,OAAMH,EAAYE,SAAS,sCCNZ,SACpCE,EACAC,GAEA,IAAMC,EAAiBR,EAASO,GAChCV,EAAK,QAACE,UAAU,WACZ,GAAKU,UAAaA,SAASC,iBAI3B,OADAC,EAAMA,OAACF,SAASG,GAAGN,EAAWE,GACjBG,WAAAA,OAAAA,EAAAA,OAAOF,SAASI,IAAIP,EAAWE,KAC7C,CAACF,EAAWE,iDCXa,SAI5BF,EACAC,EACAO,GAEA,IAAMN,EAAiBR,EAASO,GAChCV,EAAK,QAACE,UAAU,WACZ,IAAMgB,EAAOD,EAAQV,QACrB,GAAKW,GAASA,EAAKL,iBAInB,OADAC,EAAMA,OAACG,QAAQF,GAAGG,EAAMT,EAAWE,qBACtBG,EAAMA,OAACG,QAAQD,IAAIE,EAAMT,EAAWE,KAClD,CAACM,EAASR,EAAWE,wEChBU,SAClCF,EACAC,GAEA,IAAMC,EAAiBR,EAASO,GAChCV,EAAK,QAACE,UAAU,WACZ,GAAKH,QAAWA,OAAOc,iBAIvB,OADAC,EAAMA,OAACf,OAAOgB,GAAGN,EAAWE,GACfG,WAAAA,OAAAA,EAAAA,OAAOf,OAAOiB,IAAIP,EAAWE,KAC3C,CAACF,EAAWE"}
@@ -1,2 +1,2 @@
1
- import e from"react";const t="undefined"!=typeof window?e.useLayoutEffect:e.useEffect,n=n=>{const d=e.useRef(n);return t(()=>{d.current=n}),e.useMemo(()=>d.current,[])},d=(t,d,r)=>{const s=n(d);e.useEffect(()=>{const e=r.current;if(e&&e.addEventListener)return e.addEventListener(t,s),()=>e.addEventListener(t,s)},[r,t,s])},r=(t,d)=>{const r=n(d);e.useEffect(()=>{if(document&&document.addEventListener)return document.addEventListener(t,r),()=>document.addEventListener(t,r)},[t,r])},s=(t,d)=>{const r=n(d);e.useEffect(()=>{if(window&&window.addEventListener)return window.addEventListener(t,r),()=>window.addEventListener(t,r)},[t,r])};export{r as useDocumentEventListener,n as useEvent,d as useEventListener,t as useIsomorphicLayoutEffect,s as useWindowEventListener};
1
+ import e from"react";import{events as t}from"@wiggindev/utils";const n="undefined"!=typeof window?e.useLayoutEffect:e.useEffect,o=t=>{const o=e.useRef(t);return n(()=>{o.current=t}),e.useMemo(()=>o.current,[])},f=(n,f,r)=>{const u=o(f);e.useEffect(()=>{const e=r.current;if(e&&e.addEventListener)return t.element.on(e,n,u),()=>t.element.off(e,n,u)},[r,n,u])},r=(n,f)=>{const r=o(f);e.useEffect(()=>{if(document&&document.addEventListener)return t.document.on(n,r),()=>t.document.off(n,r)},[n,r])},u=(n,f)=>{const r=o(f);e.useEffect(()=>{if(window&&window.addEventListener)return t.window.on(n,r),()=>t.window.off(n,r)},[n,r])};export{r as useDocumentEventListener,o as useEvent,f as useEventListener,n as useIsomorphicLayoutEffect,u as useWindowEventListener};
2
2
  //# sourceMappingURL=index.modern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/useIsomorphicLayoutEffect.ts","../src/useEvent.ts","../src/useEventListener.ts","../src/useDocumentEventListener.ts","../src/useWindowEventListener.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n","import React from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\ntype Callback = (...args: any[]) => any;\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 { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 node.addEventListener(eventName, stableListener);\n return () => node.addEventListener(eventName, stableListener);\n }, [element, eventName, stableListener]);\n};\n","import React from 'react';\nimport { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 document.addEventListener(eventName, stableListener);\n return () => document.addEventListener(eventName, stableListener);\n }, [eventName, stableListener]);\n};\n","import React from 'react';\nimport { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 window.addEventListener(eventName, stableListener);\n return () => window.addEventListener(eventName, stableListener);\n }, [eventName, stableListener]);\n};\n"],"names":["useIsomorphicLayoutEffect","window","React","useLayoutEffect","useEffect","useEvent","callback","callbackRef","useRef","current","useMemo","useEventListener","eventName","listener","element","stableListener","node","addEventListener","useDocumentEventListener","document","useWindowEventListener"],"mappings":"qBAEaA,MAAAA,EACS,oBAAXC,OAAyBC,EAAMC,gBAAkBD,EAAME,UCErDC,EAAgCC,IACzC,MAAMC,EAAcL,EAAMM,OAAOF,GAIjC,OAHAN,EAA0B,KACtBO,EAAYE,QAAUH,IAEnBJ,EAAMQ,QAAQ,IAAMH,EAAYE,QAAS,KCNvCE,EAAmB,CAI5BC,EACAC,EACAC,KAEA,MAAMC,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,KACZ,MAAMY,EAAOF,EAAQL,QACrB,GAAKO,GAASA,EAAKC,iBAInB,OADAD,EAAKC,iBAAiBL,EAAWG,GAC1B,IAAMC,EAAKC,iBAAiBL,EAAWG,IAC/C,CAACD,EAASF,EAAWG,KChBfG,EAA2B,CACpCN,EACAC,KAEA,MAAME,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,KACZ,GAAKe,UAAaA,SAASF,iBAI3B,OADAE,SAASF,iBAAiBL,EAAWG,GAC9B,IAAMI,SAASF,iBAAiBL,EAAWG,IACnD,CAACH,EAAWG,KCXNK,EAAyB,CAClCR,EACAC,KAEA,MAAME,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,KACZ,GAAKH,QAAWA,OAAOgB,iBAIvB,OADAhB,OAAOgB,iBAAiBL,EAAWG,GAC5B,IAAMd,OAAOgB,iBAAiBL,EAAWG,IACjD,CAACH,EAAWG"}
1
+ {"version":3,"file":"index.modern.js","sources":["../src/useIsomorphicLayoutEffect.ts","../src/useEvent.ts","../src/useEventListener.ts","../src/useDocumentEventListener.ts","../src/useWindowEventListener.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n","import React from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\ntype Callback = (...args: any[]) => any;\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 { useEvent } from './useEvent';\nimport { events, EventName, EventListener } from '@wiggindev/utils';\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';\nimport { useEvent } from './useEvent';\nimport { events, EventName, EventListener } from '@wiggindev/utils';\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 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"],"names":["useIsomorphicLayoutEffect","window","React","useLayoutEffect","useEffect","useEvent","callback","callbackRef","useRef","current","useMemo","useEventListener","eventName","listener","element","stableListener","node","addEventListener","events","on","off","useDocumentEventListener","document","useWindowEventListener"],"mappings":"+DAEaA,MAAAA,EACS,oBAAXC,OAAyBC,EAAMC,gBAAkBD,EAAME,UCErDC,EAAgCC,IACzC,MAAMC,EAAcL,EAAMM,OAAOF,GAIjC,OAHAN,EAA0B,KACtBO,EAAYE,QAAUH,IAEnBJ,EAAMQ,QAAQ,IAAMH,EAAYE,QAAS,KCNvCE,EAAmB,CAI5BC,EACAC,EACAC,KAEA,MAAMC,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,KACZ,MAAMY,EAAOF,EAAQL,QACrB,GAAKO,GAASA,EAAKC,iBAInB,OADAC,EAAOJ,QAAQK,GAAGH,EAAMJ,EAAWG,GAC5B,IAAMG,EAAOJ,QAAQM,IAAIJ,EAAMJ,EAAWG,IAClD,CAACD,EAASF,EAAWG,KChBfM,EAA2B,CACpCT,EACAC,KAEA,MAAME,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,KACZ,GAAKkB,UAAaA,SAASL,iBAI3B,OADAC,EAAOI,SAASH,GAAGP,EAAWG,GACvB,IAAMG,EAAOI,SAASF,IAAIR,EAAWG,IAC7C,CAACH,EAAWG,KCXNQ,EAAyB,CAClCX,EACAC,KAEA,MAAME,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,KACZ,GAAKH,QAAWA,OAAOgB,iBAIvB,OADAC,EAAOjB,OAAOkB,GAAGP,EAAWG,GACrB,IAAMG,EAAOjB,OAAOmB,IAAIR,EAAWG,IAC3C,CAACH,EAAWG"}
@@ -1,2 +1,2 @@
1
- import n from"react";var e="undefined"!=typeof window?n.useLayoutEffect:n.useEffect,t=function(t){var r=n.useRef(t);return e(function(){r.current=t}),n.useMemo(function(){return r.current},[])},r=function(e,r,u){var i=t(r);n.useEffect(function(){var n=u.current;if(n&&n.addEventListener)return n.addEventListener(e,i),function(){return n.addEventListener(e,i)}},[u,e,i])},u=function(e,r){var u=t(r);n.useEffect(function(){if(document&&document.addEventListener)return document.addEventListener(e,u),function(){return document.addEventListener(e,u)}},[e,u])},i=function(e,r){var u=t(r);n.useEffect(function(){if(window&&window.addEventListener)return window.addEventListener(e,u),function(){return window.addEventListener(e,u)}},[e,u])};export{u as useDocumentEventListener,t as useEvent,r as useEventListener,e as useIsomorphicLayoutEffect,i as useWindowEventListener};
1
+ import n from"react";import{events as e}from"@wiggindev/utils";var t="undefined"!=typeof window?n.useLayoutEffect:n.useEffect,r=function(e){var r=n.useRef(e);return t(function(){r.current=e}),n.useMemo(function(){return r.current},[])},u=function(t,u,f){var o=r(u);n.useEffect(function(){var n=f.current;if(n&&n.addEventListener)return e.element.on(n,t,o),function(){return e.element.off(n,t,o)}},[f,t,o])},f=function(t,u){var f=r(u);n.useEffect(function(){if(document&&document.addEventListener)return e.document.on(t,f),function(){return e.document.off(t,f)}},[t,f])},o=function(t,u){var f=r(u);n.useEffect(function(){if(window&&window.addEventListener)return e.window.on(t,f),function(){return e.window.off(t,f)}},[t,f])};export{f as useDocumentEventListener,r as useEvent,u as useEventListener,t as useIsomorphicLayoutEffect,o as useWindowEventListener};
2
2
  //# sourceMappingURL=index.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.js","sources":["../src/useIsomorphicLayoutEffect.ts","../src/useEvent.ts","../src/useEventListener.ts","../src/useDocumentEventListener.ts","../src/useWindowEventListener.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n","import React from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\ntype Callback = (...args: any[]) => any;\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 { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 node.addEventListener(eventName, stableListener);\n return () => node.addEventListener(eventName, stableListener);\n }, [element, eventName, stableListener]);\n};\n","import React from 'react';\nimport { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 document.addEventListener(eventName, stableListener);\n return () => document.addEventListener(eventName, stableListener);\n }, [eventName, stableListener]);\n};\n","import React from 'react';\nimport { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 window.addEventListener(eventName, stableListener);\n return () => window.addEventListener(eventName, stableListener);\n }, [eventName, stableListener]);\n};\n"],"names":["useIsomorphicLayoutEffect","window","React","useLayoutEffect","useEffect","useEvent","callback","callbackRef","useRef","current","useMemo","useEventListener","eventName","listener","element","stableListener","node","addEventListener","useDocumentEventListener","document","useWindowEventListener"],"mappings":"qBAEaA,IAAAA,EACS,oBAAXC,OAAyBC,EAAMC,gBAAkBD,EAAME,UCErDC,EAAW,SAAqBC,GACzC,IAAMC,EAAcL,EAAMM,OAAOF,GAIjC,OAHAN,EAA0B,WACtBO,EAAYE,QAAUH,IAEnBJ,EAAMQ,QAAQ,WAAA,OAAMH,EAAYE,SAAS,KCNvCE,EAAmB,SAI5BC,EACAC,EACAC,GAEA,IAAMC,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,WACZ,IAAMY,EAAOF,EAAQL,QACrB,GAAKO,GAASA,EAAKC,iBAInB,OADAD,EAAKC,iBAAiBL,EAAWG,GACpBC,WAAAA,OAAAA,EAAKC,iBAAiBL,EAAWG,KAC/C,CAACD,EAASF,EAAWG,KChBfG,EAA2B,SACpCN,EACAC,GAEA,IAAME,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,WACZ,GAAKe,UAAaA,SAASF,iBAI3B,OADAE,SAASF,iBAAiBL,EAAWG,GACxBI,WAAAA,OAAAA,SAASF,iBAAiBL,EAAWG,KACnD,CAACH,EAAWG,KCXNK,EAAyB,SAClCR,EACAC,GAEA,IAAME,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,WACZ,GAAKH,QAAWA,OAAOgB,iBAIvB,OADAhB,OAAOgB,iBAAiBL,EAAWG,GACtBd,WAAAA,OAAAA,OAAOgB,iBAAiBL,EAAWG,KACjD,CAACH,EAAWG"}
1
+ {"version":3,"file":"index.module.js","sources":["../src/useIsomorphicLayoutEffect.ts","../src/useEvent.ts","../src/useEventListener.ts","../src/useDocumentEventListener.ts","../src/useWindowEventListener.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n","import React from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\ntype Callback = (...args: any[]) => any;\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 { useEvent } from './useEvent';\nimport { events, EventName, EventListener } from '@wiggindev/utils';\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';\nimport { useEvent } from './useEvent';\nimport { events, EventName, EventListener } from '@wiggindev/utils';\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 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"],"names":["useIsomorphicLayoutEffect","window","React","useLayoutEffect","useEffect","useEvent","callback","callbackRef","useRef","current","useMemo","useEventListener","eventName","listener","element","stableListener","node","addEventListener","events","on","off","useDocumentEventListener","document","useWindowEventListener"],"mappings":"+DAEaA,IAAAA,EACS,oBAAXC,OAAyBC,EAAMC,gBAAkBD,EAAME,UCErDC,EAAW,SAAqBC,GACzC,IAAMC,EAAcL,EAAMM,OAAOF,GAIjC,OAHAN,EAA0B,WACtBO,EAAYE,QAAUH,IAEnBJ,EAAMQ,QAAQ,WAAA,OAAMH,EAAYE,SAAS,KCNvCE,EAAmB,SAI5BC,EACAC,EACAC,GAEA,IAAMC,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,WACZ,IAAMY,EAAOF,EAAQL,QACrB,GAAKO,GAASA,EAAKC,iBAInB,OADAC,EAAOJ,QAAQK,GAAGH,EAAMJ,EAAWG,qBACtBG,EAAOJ,QAAQM,IAAIJ,EAAMJ,EAAWG,KAClD,CAACD,EAASF,EAAWG,KChBfM,EAA2B,SACpCT,EACAC,GAEA,IAAME,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,WACZ,GAAKkB,UAAaA,SAASL,iBAI3B,OADAC,EAAOI,SAASH,GAAGP,EAAWG,GACjBG,WAAAA,OAAAA,EAAOI,SAASF,IAAIR,EAAWG,KAC7C,CAACH,EAAWG,KCXNQ,EAAyB,SAClCX,EACAC,GAEA,IAAME,EAAiBV,EAASQ,GAChCX,EAAME,UAAU,WACZ,GAAKH,QAAWA,OAAOgB,iBAIvB,OADAC,EAAOjB,OAAOkB,GAAGP,EAAWG,GACfG,WAAAA,OAAAA,EAAOjB,OAAOmB,IAAIR,EAAWG,KAC3C,CAACH,EAAWG"}
package/dist/index.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e||self).hooks={},e.react)}(this,function(e,n){function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=/*#__PURE__*/t(n),f="undefined"!=typeof window?u.default.useLayoutEffect:u.default.useEffect,r=function(e){var n=u.default.useRef(e);return f(function(){n.current=e}),u.default.useMemo(function(){return n.current},[])};e.useDocumentEventListener=function(e,n){var t=r(n);u.default.useEffect(function(){if(document&&document.addEventListener)return document.addEventListener(e,t),function(){return document.addEventListener(e,t)}},[e,t])},e.useEvent=r,e.useEventListener=function(e,n,t){var f=r(n);u.default.useEffect(function(){var n=t.current;if(n&&n.addEventListener)return n.addEventListener(e,f),function(){return n.addEventListener(e,f)}},[t,e,f])},e.useIsomorphicLayoutEffect=f,e.useWindowEventListener=function(e,n){var t=r(n);u.default.useEffect(function(){if(window&&window.addEventListener)return window.addEventListener(e,t),function(){return window.addEventListener(e,t)}},[e,t])}});
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),o="undefined"!=typeof window?f.default.useLayoutEffect:f.default.useEffect,i=function(e){var n=f.default.useRef(e);return o(function(){n.current=e}),f.default.useMemo(function(){return n.current},[])};e.useDocumentEventListener=function(e,n){var u=i(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=i,e.useEventListener=function(e,n,u){var o=i(n);f.default.useEffect(function(){var n=u.current;if(n&&n.addEventListener)return t.events.element.on(n,e,o),function(){return t.events.element.off(n,e,o)}},[u,e,o])},e.useIsomorphicLayoutEffect=o,e.useWindowEventListener=function(e,n){var u=i(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])}});
2
2
  //# sourceMappingURL=index.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/useIsomorphicLayoutEffect.ts","../src/useEvent.ts","../src/useDocumentEventListener.ts","../src/useEventListener.ts","../src/useWindowEventListener.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n","import React from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\ntype Callback = (...args: any[]) => any;\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 { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 document.addEventListener(eventName, stableListener);\n return () => document.addEventListener(eventName, stableListener);\n }, [eventName, stableListener]);\n};\n","import React from 'react';\nimport { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 node.addEventListener(eventName, stableListener);\n return () => node.addEventListener(eventName, stableListener);\n }, [element, eventName, stableListener]);\n};\n","import React from 'react';\nimport { useEvent } from './useEvent';\nimport { EventName, EventListener } from './events';\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 window.addEventListener(eventName, stableListener);\n return () => window.addEventListener(eventName, stableListener);\n }, [eventName, stableListener]);\n};\n"],"names":["useIsomorphicLayoutEffect","window","React","useLayoutEffect","useEffect","useEvent","callback","callbackRef","useRef","current","useMemo","eventName","listener","stableListener","document","addEventListener","element","node"],"mappings":"kWAEaA,EACS,oBAAXC,OAAyBC,EAAAA,QAAMC,gBAAkBD,EAAAA,QAAME,UCErDC,EAAW,SAAqBC,GACzC,IAAMC,EAAcL,EAAK,QAACM,OAAOF,GAIjC,OAHAN,EAA0B,WACtBO,EAAYE,QAAUH,IAEnBJ,UAAMQ,QAAQ,WAAA,OAAMH,EAAYE,SAAS,gCCNZ,SACpCE,EACAC,GAEA,IAAMC,EAAiBR,EAASO,GAChCV,EAAAA,QAAME,UAAU,WACZ,GAAKU,UAAaA,SAASC,iBAI3B,OADAD,SAASC,iBAAiBJ,EAAWE,GACxBC,WAAAA,OAAAA,SAASC,iBAAiBJ,EAAWE,KACnD,CAACF,EAAWE,qCCXa,SAI5BF,EACAC,EACAI,GAEA,IAAMH,EAAiBR,EAASO,GAChCV,UAAME,UAAU,WACZ,IAAMa,EAAOD,EAAQP,QACrB,GAAKQ,GAASA,EAAKF,iBAInB,OADAE,EAAKF,iBAAiBJ,EAAWE,GACpBI,WAAAA,OAAAA,EAAKF,iBAAiBJ,EAAWE,KAC/C,CAACG,EAASL,EAAWE,4DChBU,SAClCF,EACAC,GAEA,IAAMC,EAAiBR,EAASO,GAChCV,EAAAA,QAAME,UAAU,WACZ,GAAKH,QAAWA,OAAOc,iBAIvB,OADAd,OAAOc,iBAAiBJ,EAAWE,GACtBZ,WAAAA,OAAAA,OAAOc,iBAAiBJ,EAAWE,KACjD,CAACF,EAAWE"}
1
+ {"version":3,"file":"index.umd.js","sources":["../src/useIsomorphicLayoutEffect.ts","../src/useEvent.ts","../src/useDocumentEventListener.ts","../src/useEventListener.ts","../src/useWindowEventListener.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n","import React from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\ntype Callback = (...args: any[]) => any;\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 { useEvent } from './useEvent';\nimport { events, EventName, EventListener } from '@wiggindev/utils';\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 { useEvent } from './useEvent';\nimport { events, EventName, EventListener } from '@wiggindev/utils';\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';\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"],"names":["useIsomorphicLayoutEffect","window","React","useLayoutEffect","useEffect","useEvent","callback","callbackRef","useRef","current","useMemo","eventName","listener","stableListener","document","addEventListener","events","on","off","element","node"],"mappings":"2ZAEaA,EACS,oBAAXC,OAAyBC,EAAAA,QAAMC,gBAAkBD,EAAAA,QAAME,UCErDC,EAAW,SAAqBC,GACzC,IAAMC,EAAcL,EAAK,QAACM,OAAOF,GAIjC,OAHAN,EAA0B,WACtBO,EAAYE,QAAUH,IAEnBJ,UAAMQ,QAAQ,WAAA,OAAMH,EAAYE,SAAS,gCCNZ,SACpCE,EACAC,GAEA,IAAMC,EAAiBR,EAASO,GAChCV,EAAK,QAACE,UAAU,WACZ,GAAKU,UAAaA,SAASC,iBAI3B,OADAC,EAAMA,OAACF,SAASG,GAAGN,EAAWE,GACjBG,WAAAA,OAAAA,EAAAA,OAAOF,SAASI,IAAIP,EAAWE,KAC7C,CAACF,EAAWE,qCCXa,SAI5BF,EACAC,EACAO,GAEA,IAAMN,EAAiBR,EAASO,GAChCV,EAAK,QAACE,UAAU,WACZ,IAAMgB,EAAOD,EAAQV,QACrB,GAAKW,GAASA,EAAKL,iBAInB,OADAC,EAAMA,OAACG,QAAQF,GAAGG,EAAMT,EAAWE,qBACtBG,EAAMA,OAACG,QAAQD,IAAIE,EAAMT,EAAWE,KAClD,CAACM,EAASR,EAAWE,4DChBU,SAClCF,EACAC,GAEA,IAAMC,EAAiBR,EAASO,GAChCV,EAAK,QAACE,UAAU,WACZ,GAAKH,QAAWA,OAAOc,iBAIvB,OADAC,EAAMA,OAACf,OAAOgB,GAAGN,EAAWE,GACfG,WAAAA,OAAAA,EAAAA,OAAOf,OAAOiB,IAAIP,EAAWE,KAC3C,CAACF,EAAWE"}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es5.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2015.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2016.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2017.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2018.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2019.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2020.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2021.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2022.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.esnext.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.dom.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.dom.iterable.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2015.core.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2015.collection.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2015.generator.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2015.promise.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2017.object.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2017.string.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2017.intl.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2018.intl.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2018.promise.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2019.array.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2019.object.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2019.string.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2020.promise.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2020.string.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2020.intl.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2021.promise.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2021.string.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2021.intl.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2022.array.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2022.error.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2022.object.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.es2022.string.d.ts","../.yarn/cache/typescript-patch-e50fdcf519-1cb434fbc6.zip/node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/events.ts","../.yarn/cache/@types-react-npm-18.0.9-4dccadcd56-162364dad7.zip/node_modules/@types/react/global.d.ts","../.yarn/cache/csstype-npm-3.0.11-b49897178d-95e56abfe9.zip/node_modules/csstype/index.d.ts","../.yarn/cache/@types-prop-types-npm-15.7.5-2aa48aa177-5b43b8b154.zip/node_modules/@types/prop-types/index.d.ts","../.yarn/cache/@types-scheduler-npm-0.16.2-ba3a7d8c68-b6b4dcfeae.zip/node_modules/@types/scheduler/tracing.d.ts","../.yarn/cache/@types-react-npm-18.0.9-4dccadcd56-162364dad7.zip/node_modules/@types/react/index.d.ts","../src/useIsomorphicLayoutEffect.ts","../src/useEvent.ts","../.yarn/__virtual__/@wiggindev-utils-virtual-da8c9e1e29/0/cache/@wiggindev-utils-npm-0.1.3-653042d762-d797a2eb3d.zip/node_modules/@wiggindev/utils/dist/events.d.ts","../.yarn/__virtual__/@wiggindev-utils-virtual-da8c9e1e29/0/cache/@wiggindev-utils-npm-0.1.3-653042d762-d797a2eb3d.zip/node_modules/@wiggindev/utils/dist/document.d.ts","../.yarn/__virtual__/@wiggindev-utils-virtual-da8c9e1e29/0/cache/@wiggindev-utils-npm-0.1.3-653042d762-d797a2eb3d.zip/node_modules/@wiggindev/utils/dist/window.d.ts","../.yarn/__virtual__/@wiggindev-utils-virtual-da8c9e1e29/0/cache/@wiggindev-utils-npm-0.1.3-653042d762-d797a2eb3d.zip/node_modules/@wiggindev/utils/dist/element.d.ts","../.yarn/__virtual__/@wiggindev-utils-virtual-da8c9e1e29/0/cache/@wiggindev-utils-npm-0.1.3-653042d762-d797a2eb3d.zip/node_modules/@wiggindev/utils/dist/index.d.ts","../src/useEventListener.ts","../src/useDocumentEventListener.ts","../src/useWindowEventListener.ts","../src/index.ts"],"fileInfos":[{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","2f93dda35dafec68ec217c9ce67f0f4fbbbb030c055ac312641565ad60dd7e26","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"dbb73d4d99be496175cb432c74c2615f78c76f4272f1d83cba11ee0ed6dbddf0","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"5075b36ab861c8c0c45377cb8c96270d7c65f0eeaf105d53fac6850da61f1027","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"e8c9f4e445a489991ca1a4232667de3ac36b07ba75ea335971fbeacf2d26fe67","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"6ea9ab679ea030cf46c16a711a316078e9e02619ebaf07a7fcd16964aba88f2d","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"1ec0fe7df21853aac79d4ae0479928c4922e9fadc8dd32526bffc020b865eb87",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"ea0aa24a32c073b8639aa1f3130ba0add0f0f2f76b314d9ba988a5cb91d7e3c4","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"4c4229a7fe27b87aba0b8bab7f7338bc63e74b814156ba6925b552f9bec83154","affectsGlobalScope":true},"0dfebd7a9a889c693e40e4f6951b33aadc47d4645b53d2510bb326f444533db1","bf7e1213717faab14f8928719c2dfaeb89ba63c9ef1e7fa1c58ac4423aa9cfaa","a7634ffcb0e81ed3c3f96f2a7deaf50987c732c18cc46f205d1b0d98f7b52a93","58bcc5d64786d02e8f2f75a170f6d63b10bac6d26fc6ef93cab62062d970fc73","c4d91c95cc56d7a27cdf3f0487349df0fb28452f72bcc8bb9abee738b1ce4067","0d53e770327e6448a9fbead5abe82b88d7a78d4c3a7aac717b4e82bdca2bb9f0","4ef819e808811ba67fb406dba825b18e4edf4bf1f848d594182c4d8e00e0843f","d146a2ac8588e3f643d13c3a8da9bdc28bcc755836cc7fc9ac7c82c265524302","bb687be904853772c88c156a23f7733870d8653f4e6145cbdb79c11864d061bb","61687064d4d7b1f63d07736cb71f7881a4154c7e2ae7f6d8cd99b0d723e426a3","db2aeb3d66f5b802acc7e87d681e472f47a137cba63c952e99d138c62b758de6"],"options":{"esModuleInterop":true,"module":99,"outDir":"./","strict":true,"target":99},"fileIdsList":[[60],[60,61,62,63],[53,54,55,56],[58,59,65,66,67],[57,59,64],[57,58],[57]],"referencedMap":[[61,1],[63,1],[64,2],[62,1],[57,3],[68,4],[66,5],[59,6],[65,5],[58,7],[67,5]],"exportedModulesMap":[[61,1],[63,1],[64,2],[62,1],[57,3],[68,4],[66,5],[59,6],[65,5],[58,7],[67,5]],"semanticDiagnosticsPerFile":[61,63,60,64,62,55,53,57,56,54,11,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,34,35,36,37,7,42,38,39,40,41,8,46,43,44,45,47,9,48,49,50,1,10,51,52,68,66,59,65,58,67],"affectedFilesPendingEmit":[[61,1],[63,1],[60,1],[64,1],[62,1],[55,1],[53,1],[57,1],[56,1],[54,1],[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[52,1],[68,1],[66,1],[59,1],[65,1],[58,1],[67,1]]},"version":"4.6.4"}
@@ -1,2 +1,2 @@
1
- import { EventListener } from './events';
2
- export declare const useDocumentEventListener: <K extends keyof DocumentEventMap>(eventName: K, listener: EventListener<DocumentEventMap, K>) => void;
1
+ import { EventListener } from '@wiggindev/utils';
2
+ export declare const useDocumentEventListener: <K extends string>(eventName: K, listener: EventListener<DocumentEventMap, K>) => void;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { EventListener } from './events';
3
- export declare const useEventListener: <K extends keyof HTMLElementEventMap, E extends HTMLElement>(eventName: K, listener: EventListener<HTMLElementEventMap, K>, element: React.RefObject<E>) => void;
2
+ import { EventListener } from '@wiggindev/utils';
3
+ export declare const useEventListener: <K extends string, E extends HTMLElement>(eventName: K, listener: EventListener<HTMLElementEventMap, K>, element: React.RefObject<E>) => void;
@@ -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;
@@ -1,2 +1,2 @@
1
- import { EventListener } from './events';
2
- export declare const useWindowEventListener: <K extends keyof WindowEventMap>(eventName: K, listener: EventListener<WindowEventMap, K>) => void;
1
+ import { EventListener } from '@wiggindev/utils';
2
+ export declare const useWindowEventListener: <K extends string>(eventName: K, listener: EventListener<WindowEventMap, K>) => void;
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.1.2",
4
+ "version": "0.1.3",
5
5
  "author": {
6
6
  "name": "Andrew Wiggin",
7
7
  "email": "andrew@wiggin.dev",
@@ -19,14 +19,17 @@
19
19
  "types": "dist/index.d.ts",
20
20
  "scripts": {
21
21
  "prebuild": "rimraf dist",
22
- "build": "microbundle",
23
- "dev": "microbundle watch",
22
+ "build": "microbundle -f es,cjs,modern",
23
+ "dev": "microbundle -f es,cjs,modern watch",
24
24
  "_postinstall": "husky install",
25
25
  "prepack": "pinst --disable",
26
26
  "postpack": "pinst --enable",
27
27
  "lint": "tsc --noEmit && yarn eslint",
28
28
  "format": "yarn eslint --fix && yarn prettier --write ."
29
29
  },
30
+ "dependencies": {
31
+ "@wiggindev/utils": "latest"
32
+ },
30
33
  "peerDependencies": {
31
34
  "react": ">= 18"
32
35
  },
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { useEvent } from './useEvent';
3
- import { EventName, EventListener } from './events';
3
+ import { events, EventName, EventListener } from '@wiggindev/utils';
4
4
 
5
5
  export const useDocumentEventListener = <K extends EventName<DocumentEventMap>>(
6
6
  eventName: K,
@@ -11,7 +11,7 @@ export const useDocumentEventListener = <K extends EventName<DocumentEventMap>>(
11
11
  if (!document || !document.addEventListener) {
12
12
  return;
13
13
  }
14
- document.addEventListener(eventName, stableListener);
15
- return () => document.addEventListener(eventName, stableListener);
14
+ events.document.on(eventName, stableListener);
15
+ return () => events.document.off(eventName, stableListener);
16
16
  }, [eventName, stableListener]);
17
17
  };
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { useEvent } from './useEvent';
3
- import { EventName, EventListener } from './events';
3
+ import { events, EventName, EventListener } from '@wiggindev/utils';
4
4
 
5
5
  export const useEventListener = <
6
6
  K extends EventName<HTMLElementEventMap>,
@@ -16,7 +16,7 @@ export const useEventListener = <
16
16
  if (!node || !node.addEventListener) {
17
17
  return;
18
18
  }
19
- node.addEventListener(eventName, stableListener);
20
- return () => node.addEventListener(eventName, stableListener);
19
+ events.element.on(node, eventName, stableListener);
20
+ return () => events.element.off(node, eventName, stableListener);
21
21
  }, [element, eventName, stableListener]);
22
22
  };
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
+ import { events, EventName, EventListener } from '@wiggindev/utils';
2
3
  import { useEvent } from './useEvent';
3
- import { EventName, EventListener } from './events';
4
4
 
5
5
  export const useWindowEventListener = <K extends EventName<WindowEventMap>>(
6
6
  eventName: K,
@@ -11,7 +11,7 @@ export const useWindowEventListener = <K extends EventName<WindowEventMap>>(
11
11
  if (!window || !window.addEventListener) {
12
12
  return;
13
13
  }
14
- window.addEventListener(eventName, stableListener);
15
- return () => window.addEventListener(eventName, stableListener);
14
+ events.window.on(eventName, stableListener);
15
+ return () => events.window.off(eventName, stableListener);
16
16
  }, [eventName, stableListener]);
17
17
  };
@@ -1,103 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ChangeListManager">
4
- <list default="true" id="4964792f-b5d0-49fc-acf7-bc8ffeafca73" name="Changes" comment="">
5
- <change beforePath="$PROJECT_DIR$/.idea/hooks.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/hooks.iml" afterDir="false" />
6
- <change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
7
- <change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
8
- <change beforePath="$PROJECT_DIR$/.yarnrc.yml" beforeDir="false" afterPath="$PROJECT_DIR$/.yarnrc.yml" afterDir="false" />
9
- <change beforePath="$PROJECT_DIR$/dist/index.cjs" beforeDir="false" />
10
- <change beforePath="$PROJECT_DIR$/dist/index.cjs.map" beforeDir="false" />
11
- <change beforePath="$PROJECT_DIR$/dist/index.d.ts" beforeDir="false" />
12
- <change beforePath="$PROJECT_DIR$/dist/index.modern.js" beforeDir="false" />
13
- <change beforePath="$PROJECT_DIR$/dist/index.modern.js.map" beforeDir="false" />
14
- <change beforePath="$PROJECT_DIR$/dist/index.module.js" beforeDir="false" />
15
- <change beforePath="$PROJECT_DIR$/dist/index.module.js.map" beforeDir="false" />
16
- <change beforePath="$PROJECT_DIR$/dist/index.umd.js" beforeDir="false" />
17
- <change beforePath="$PROJECT_DIR$/dist/index.umd.js.map" beforeDir="false" />
18
- <change beforePath="$PROJECT_DIR$/dist/tsconfig.tsbuildinfo" beforeDir="false" />
19
- <change beforePath="$PROJECT_DIR$/dist/types.d.ts" beforeDir="false" />
20
- <change beforePath="$PROJECT_DIR$/dist/useDocumentEventListener.d.ts" beforeDir="false" />
21
- <change beforePath="$PROJECT_DIR$/dist/useEvent.d.ts" beforeDir="false" />
22
- <change beforePath="$PROJECT_DIR$/dist/useEventListener.d.ts" beforeDir="false" />
23
- <change beforePath="$PROJECT_DIR$/dist/useIsomorphicLayoutEffect.d.ts" beforeDir="false" />
24
- <change beforePath="$PROJECT_DIR$/dist/useWindowEventListener.d.ts" beforeDir="false" />
25
- <change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
26
- <change beforePath="$PROJECT_DIR$/src/types.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/events.d.ts" afterDir="false" />
27
- <change beforePath="$PROJECT_DIR$/src/useDocumentEventListener.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/useDocumentEventListener.ts" afterDir="false" />
28
- <change beforePath="$PROJECT_DIR$/src/useEventListener.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/useEventListener.ts" afterDir="false" />
29
- <change beforePath="$PROJECT_DIR$/src/useWindowEventListener.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/useWindowEventListener.ts" afterDir="false" />
30
- <change beforePath="$PROJECT_DIR$/tsconfig.json" beforeDir="false" afterPath="$PROJECT_DIR$/tsconfig.json" afterDir="false" />
31
- <change beforePath="$PROJECT_DIR$/../portfolio/.idea/codestream.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../portfolio/.idea/codestream.xml" afterDir="false" />
32
- <change beforePath="$PROJECT_DIR$/../portfolio/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../portfolio/.idea/vcs.xml" afterDir="false" />
33
- <change beforePath="$PROJECT_DIR$/../portfolio/.yarn/cache/@types-prettier-npm-2.6.0-68db36c8c1-946f1f82ce.zip" beforeDir="false" />
34
- <change beforePath="$PROJECT_DIR$/../portfolio/.yarn/cache/axe-core-npm-4.4.1-95b0d6a519-ad14c5b710.zip" beforeDir="false" />
35
- <change beforePath="$PROJECT_DIR$/../portfolio/.yarn/cache/glob-npm-7.2.0-bb4644d239-78a8ea9423.zip" beforeDir="false" />
36
- <change beforePath="$PROJECT_DIR$/../portfolio/.yarn/cache/glob-npm-8.0.1-3485e1ee02-7ac782f3ef.zip" beforeDir="false" />
37
- <change beforePath="$PROJECT_DIR$/../portfolio/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/../portfolio/package.json" afterDir="false" />
38
- <change beforePath="$PROJECT_DIR$/../portfolio/pages/_app.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/../portfolio/pages/_app.tsx" afterDir="false" />
39
- <change beforePath="$PROJECT_DIR$/../portfolio/src/hooks/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../portfolio/src/hooks/index.ts" afterDir="false" />
40
- <change beforePath="$PROJECT_DIR$/../portfolio/src/hooks/useDocumentEventListener.ts" beforeDir="false" />
41
- <change beforePath="$PROJECT_DIR$/../portfolio/src/hooks/useEventListener.ts" beforeDir="false" />
42
- <change beforePath="$PROJECT_DIR$/../portfolio/src/hooks/useWindowDimensions.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../portfolio/src/hooks/useWindowDimensions.ts" afterDir="false" />
43
- <change beforePath="$PROJECT_DIR$/../portfolio/src/hooks/useWindowEventListener.ts" beforeDir="false" />
44
- <change beforePath="$PROJECT_DIR$/../portfolio/yarn.lock" beforeDir="false" afterPath="$PROJECT_DIR$/../portfolio/yarn.lock" afterDir="false" />
45
- </list>
46
- <option name="SHOW_DIALOG" value="false" />
47
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
48
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
49
- <option name="LAST_RESOLUTION" value="IGNORE" />
50
- </component>
51
- <component name="Git.Settings">
52
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
53
- </component>
54
- <component name="MarkdownSettingsMigration">
55
- <option name="stateVersion" value="1" />
56
- </component>
57
- <component name="ProjectId" id="297asfPdQivGT4C9paNuenxvTVF" />
58
- <component name="ProjectLevelVcsManager" settingsEditedManually="true">
59
- <ConfirmationsSetting value="2" id="Add" />
60
- </component>
61
- <component name="ProjectViewState">
62
- <option name="hideEmptyMiddlePackages" value="true" />
63
- <option name="showLibraryContents" value="true" />
64
- </component>
65
- <component name="PropertiesComponent"><![CDATA[{
66
- "keyToString": {
67
- "RunOnceActivity.OpenProjectViewOnStart": "true",
68
- "RunOnceActivity.ShowReadmeOnStart": "true",
69
- "WebServerToolWindowFactoryState": "false",
70
- "last_opened_file_path": "/Users/wiggindev/git/hooks",
71
- "nodejs_package_manager_path": "yarn",
72
- "prettierjs.PrettierConfiguration.Package": "yarn:package.json:prettier",
73
- "ts.external.directory.path": "yarn:package.json:typescript",
74
- "vue.rearranger.settings.migration": "true"
75
- }
76
- }]]></component>
77
- <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
78
- <component name="TaskManager">
79
- <task active="true" id="Default" summary="Default task">
80
- <changelist id="4964792f-b5d0-49fc-acf7-bc8ffeafca73" name="Changes" comment="" />
81
- <created>1652466785863</created>
82
- <option name="number" value="Default" />
83
- <option name="presentableId" value="Default" />
84
- <updated>1652466785863</updated>
85
- <workItem from="1652466786963" duration="4871000" />
86
- </task>
87
- <servers />
88
- </component>
89
- <component name="TypeScriptGeneratedFilesManager">
90
- <option name="version" value="3" />
91
- </component>
92
- <component name="Vcs.Log.Tabs.Properties">
93
- <option name="TAB_STATES">
94
- <map>
95
- <entry key="MAIN">
96
- <value>
97
- <State />
98
- </value>
99
- </entry>
100
- </map>
101
- </option>
102
- </component>
103
- </project>