react-atom-trigger 1.1.0 → 1.1.1

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.
package/lib/index.d.ts CHANGED
@@ -41,7 +41,7 @@ declare function useContainerScroll({
41
41
  containerRef,
42
42
  options
43
43
  }: {
44
- containerRef?: React.RefObject<HTMLDivElement>;
44
+ containerRef?: React.RefObject<HTMLElement | null>;
45
45
  options?: Options;
46
46
  }): ScrollEvent;
47
47
  declare function useWindowScroll(options?: Options): ScrollEvent;
package/lib/index.es.js CHANGED
@@ -1 +1 @@
1
- import e from"react";const t=({scrollEvent:t,callback:n,getDebugInfo:r,triggerOnce:i=!1,className:a,behavior:o=`default`,dimensions:s,offset:c=[0,0,0,0]})=>{let l=e.useRef(null),[u,d]=e.useState(void 0),f=e.useRef(void 0),[p,m]=e.useState({leftViewport:0,enteredViewport:0});return e.useLayoutEffect(()=>{if(l.current){let e=l.current.getBoundingClientRect(),[t,n,r,i]=c;e.top>t&&e.bottom<s.height-r&&e.left>i&&e.right<s.width-n?d(`inViewport`):e.top>s.height-r?d(`bottom`):d(`top`)}},[l,t,s,c]),e.useLayoutEffect(()=>{if(f.current===void 0&&u!==void 0&&(f.current=u),u===`inViewport`&&(f.current===`bottom`||f.current===`top`)){if(o===`enter`&&(!i||i&&p.enteredViewport)||o===`default`&&(!i||i&&(p.enteredViewport<1||p.leftViewport<1))){n&&n();let e={...p,enteredViewport:p.enteredViewport+1};r&&r({timesTriggered:e,trigger:`entered`}),m(e)}f.current=u}if((u===`top`||u===`bottom`)&&f.current===`inViewport`&&(f.current=u,o===`leave`&&(!i||i&&p.leftViewport===0)||o===`default`&&(!i||i&&(p.leftViewport<1||p.enteredViewport<1)))){n&&n();let e={...p,leftViewport:p.leftViewport+1};r&&r({timesTriggered:e,trigger:`left`}),m(e)}},[u,n,i,o,r]),e.createElement(`div`,{ref:l,style:{display:`table`},className:a})};function n(e,t){}function r(){let{scrollX:e,scrollY:t}=window;return{scrollX:e,scrollY:t}}function i(){let{innerWidth:e,innerHeight:t}=window;return{width:e,height:t}}function a(t){let[n,r]=e.useState(i()),a=e.useRef(null),o=e.useRef(!1),s=t?.eventListenerTimeoutMs||15;return e.useEffect(()=>{r(i());function e(){a.current&&clearTimeout(a.current),a.current=setTimeout(()=>r(i()),s)}return window.addEventListener(`resize`,e,{passive:t?.passiveEventListener}),o.current=!0,()=>{o&&window.removeEventListener(`resize`,e)}},[]),n}function o({containerRef:t,options:n}){let[i,a]=e.useState(r()),o=e.useRef(null),s=e.useRef(!1);return e.useEffect(()=>{let e=e=>{let t=e.target;o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{a({scrollX:t.scrollLeft,scrollY:t.scrollTop})},n?.eventListenerTimeoutMs||15)},r=t?.current;return r&&(r&&s.current===!1&&r.addEventListener(`scroll`,e,{passive:n?.passiveEventListener}),s.current=!0),()=>{s&&r&&r.removeEventListener(`scroll`,e)}},[t]),i}function s(t){let[n,i]=e.useState(r()),a=e.useRef(null),o=e.useRef(!1);return e.useEffect(()=>{let e=()=>{a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{let{scrollX:e,scrollY:t}=r();i({scrollX:e,scrollY:t})},t?.eventListenerTimeoutMs||20)};return window.addEventListener(`scroll`,e,{passive:t?.passiveEventListener}),o.current=!0,()=>{o&&window.removeEventListener(`scroll`,e)}},[]),n}export{t as AtomTrigger,n as log,o as useContainerScroll,a as useWindowDimensions,s as useWindowScroll};
1
+ import e from"react";const t=typeof window>`u`?e.useEffect:e.useLayoutEffect,n=({scrollEvent:n,callback:r,getDebugInfo:i,triggerOnce:a=!1,className:o,behavior:s=`default`,dimensions:c,offset:l=[0,0,0,0]})=>{let u=e.useRef(null),[d,f]=e.useState(void 0),p=e.useRef(void 0),[m,h]=e.useState({leftViewport:0,enteredViewport:0});return t(()=>{if(u.current){let e=u.current.getBoundingClientRect(),[t,n,r,i]=l;e.top>t&&e.bottom<c.height-r&&e.left>i&&e.right<c.width-n?f(`inViewport`):e.top>c.height-r?f(`bottom`):f(`top`)}},[u,n,c,l]),t(()=>{if(p.current===void 0&&d!==void 0&&(p.current=d),d===`inViewport`&&(p.current===`bottom`||p.current===`top`)){if(s===`enter`&&(!a||a&&m.enteredViewport===0)||s===`default`&&(!a||a&&(m.enteredViewport<1||m.leftViewport<1))){r&&r();let e={...m,enteredViewport:m.enteredViewport+1};i&&i({timesTriggered:e,trigger:`entered`}),h(e)}p.current=d}if((d===`top`||d===`bottom`)&&p.current===`inViewport`&&(p.current=d,s===`leave`&&(!a||a&&m.leftViewport===0)||s===`default`&&(!a||a&&(m.leftViewport<1||m.enteredViewport<1)))){r&&r();let e={...m,leftViewport:m.leftViewport+1};i&&i({timesTriggered:e,trigger:`left`}),h(e)}},[d,r,a,s,i]),e.createElement(`div`,{ref:u,style:{display:`table`},className:o})},r={scrollX:0,scrollY:0},i={width:0,height:0},a=typeof window<`u`;function o(e,t){}function s(){if(!a)return r;let{scrollX:e,scrollY:t}=window;return{scrollX:e,scrollY:t}}function c(){if(!a)return i;let{innerWidth:e,innerHeight:t}=window;return{width:e,height:t}}function l(e){return e?{scrollX:e.scrollLeft,scrollY:e.scrollTop}:r}function u(t){let[n,r]=e.useState(()=>c()),i=e.useRef(null),o=t?.eventListenerTimeoutMs||15;return e.useEffect(()=>{if(!a)return;r(c());function e(){i.current&&clearTimeout(i.current),i.current=setTimeout(()=>r(c()),o)}return window.addEventListener(`resize`,e,{passive:t?.passiveEventListener}),()=>{i.current&&clearTimeout(i.current),window.removeEventListener(`resize`,e)}},[t?.eventListenerTimeoutMs,t?.passiveEventListener]),n}function d({containerRef:t,options:n}){let[i,a]=e.useState(()=>l(t?.current)),o=e.useRef(null),s=t?.current;return e.useEffect(()=>{if(!s){a(r);return}let e=e=>{let t=e.target;o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{a({scrollX:t.scrollLeft,scrollY:t.scrollTop})},n?.eventListenerTimeoutMs||15)};return a(l(s)),s.addEventListener(`scroll`,e,{passive:n?.passiveEventListener}),()=>{o.current&&clearTimeout(o.current),s.removeEventListener(`scroll`,e)}},[s,n?.eventListenerTimeoutMs,n?.passiveEventListener]),i}function f(t){let[n,r]=e.useState(()=>s()),i=e.useRef(null);return e.useEffect(()=>{if(!a)return;let e=()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{let{scrollX:e,scrollY:t}=s();r({scrollX:e,scrollY:t})},t?.eventListenerTimeoutMs||20)};return window.addEventListener(`scroll`,e,{passive:t?.passiveEventListener}),()=>{i.current&&clearTimeout(i.current),window.removeEventListener(`scroll`,e)}},[t?.eventListenerTimeoutMs,t?.passiveEventListener]),n}export{n as AtomTrigger,o as log,d as useContainerScroll,u as useWindowDimensions,f as useWindowScroll};
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react`)):typeof define==`function`&&define.amd?define([`exports`,`react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.reactAtomTrigger={},e.React))})(this,function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e};t=((e,t,i)=>(i=e==null?{}:n(o(e)),c(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)))(t);let l=({scrollEvent:e,callback:n,getDebugInfo:r,triggerOnce:i=!1,className:a,behavior:o=`default`,dimensions:s,offset:c=[0,0,0,0]})=>{let l=t.default.useRef(null),[u,d]=t.default.useState(void 0),f=t.default.useRef(void 0),[p,m]=t.default.useState({leftViewport:0,enteredViewport:0});return t.default.useLayoutEffect(()=>{if(l.current){let e=l.current.getBoundingClientRect(),[t,n,r,i]=c;e.top>t&&e.bottom<s.height-r&&e.left>i&&e.right<s.width-n?d(`inViewport`):e.top>s.height-r?d(`bottom`):d(`top`)}},[l,e,s,c]),t.default.useLayoutEffect(()=>{if(f.current===void 0&&u!==void 0&&(f.current=u),u===`inViewport`&&(f.current===`bottom`||f.current===`top`)){if(o===`enter`&&(!i||i&&p.enteredViewport)||o===`default`&&(!i||i&&(p.enteredViewport<1||p.leftViewport<1))){n&&n();let e={...p,enteredViewport:p.enteredViewport+1};r&&r({timesTriggered:e,trigger:`entered`}),m(e)}f.current=u}if((u===`top`||u===`bottom`)&&f.current===`inViewport`&&(f.current=u,o===`leave`&&(!i||i&&p.leftViewport===0)||o===`default`&&(!i||i&&(p.leftViewport<1||p.enteredViewport<1)))){n&&n();let e={...p,leftViewport:p.leftViewport+1};r&&r({timesTriggered:e,trigger:`left`}),m(e)}},[u,n,i,o,r]),t.default.createElement(`div`,{ref:l,style:{display:`table`},className:a})};function u(e,t){}function d(){let{scrollX:e,scrollY:t}=window;return{scrollX:e,scrollY:t}}function f(){let{innerWidth:e,innerHeight:t}=window;return{width:e,height:t}}function p(e){let[n,r]=t.default.useState(f()),i=t.default.useRef(null),a=t.default.useRef(!1),o=e?.eventListenerTimeoutMs||15;return t.default.useEffect(()=>{r(f());function t(){i.current&&clearTimeout(i.current),i.current=setTimeout(()=>r(f()),o)}return window.addEventListener(`resize`,t,{passive:e?.passiveEventListener}),a.current=!0,()=>{a&&window.removeEventListener(`resize`,t)}},[]),n}function m({containerRef:e,options:n}){let[r,i]=t.default.useState(d()),a=t.default.useRef(null),o=t.default.useRef(!1);return t.default.useEffect(()=>{let t=e=>{let t=e.target;a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{i({scrollX:t.scrollLeft,scrollY:t.scrollTop})},n?.eventListenerTimeoutMs||15)},r=e?.current;return r&&(r&&o.current===!1&&r.addEventListener(`scroll`,t,{passive:n?.passiveEventListener}),o.current=!0),()=>{o&&r&&r.removeEventListener(`scroll`,t)}},[e]),r}function h(e){let[n,r]=t.default.useState(d()),i=t.default.useRef(null),a=t.default.useRef(!1);return t.default.useEffect(()=>{let t=()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{let{scrollX:e,scrollY:t}=d();r({scrollX:e,scrollY:t})},e?.eventListenerTimeoutMs||20)};return window.addEventListener(`scroll`,t,{passive:e?.passiveEventListener}),a.current=!0,()=>{a&&window.removeEventListener(`scroll`,t)}},[]),n}e.AtomTrigger=l,e.log=u,e.useContainerScroll=m,e.useWindowDimensions=p,e.useWindowScroll=h});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react`)):typeof define==`function`&&define.amd?define([`exports`,`react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.reactAtomTrigger={},e.React))})(this,function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e};t=((e,t,i)=>(i=e==null?{}:n(o(e)),c(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)))(t);let l=typeof window>`u`?t.default.useEffect:t.default.useLayoutEffect,u=({scrollEvent:e,callback:n,getDebugInfo:r,triggerOnce:i=!1,className:a,behavior:o=`default`,dimensions:s,offset:c=[0,0,0,0]})=>{let u=t.default.useRef(null),[d,f]=t.default.useState(void 0),p=t.default.useRef(void 0),[m,h]=t.default.useState({leftViewport:0,enteredViewport:0});return l(()=>{if(u.current){let e=u.current.getBoundingClientRect(),[t,n,r,i]=c;e.top>t&&e.bottom<s.height-r&&e.left>i&&e.right<s.width-n?f(`inViewport`):e.top>s.height-r?f(`bottom`):f(`top`)}},[u,e,s,c]),l(()=>{if(p.current===void 0&&d!==void 0&&(p.current=d),d===`inViewport`&&(p.current===`bottom`||p.current===`top`)){if(o===`enter`&&(!i||i&&m.enteredViewport===0)||o===`default`&&(!i||i&&(m.enteredViewport<1||m.leftViewport<1))){n&&n();let e={...m,enteredViewport:m.enteredViewport+1};r&&r({timesTriggered:e,trigger:`entered`}),h(e)}p.current=d}if((d===`top`||d===`bottom`)&&p.current===`inViewport`&&(p.current=d,o===`leave`&&(!i||i&&m.leftViewport===0)||o===`default`&&(!i||i&&(m.leftViewport<1||m.enteredViewport<1)))){n&&n();let e={...m,leftViewport:m.leftViewport+1};r&&r({timesTriggered:e,trigger:`left`}),h(e)}},[d,n,i,o,r]),t.default.createElement(`div`,{ref:u,style:{display:`table`},className:a})},d={scrollX:0,scrollY:0},f={width:0,height:0},p=typeof window<`u`;function m(e,t){}function h(){if(!p)return d;let{scrollX:e,scrollY:t}=window;return{scrollX:e,scrollY:t}}function g(){if(!p)return f;let{innerWidth:e,innerHeight:t}=window;return{width:e,height:t}}function _(e){return e?{scrollX:e.scrollLeft,scrollY:e.scrollTop}:d}function v(e){let[n,r]=t.default.useState(()=>g()),i=t.default.useRef(null),a=e?.eventListenerTimeoutMs||15;return t.default.useEffect(()=>{if(!p)return;r(g());function t(){i.current&&clearTimeout(i.current),i.current=setTimeout(()=>r(g()),a)}return window.addEventListener(`resize`,t,{passive:e?.passiveEventListener}),()=>{i.current&&clearTimeout(i.current),window.removeEventListener(`resize`,t)}},[e?.eventListenerTimeoutMs,e?.passiveEventListener]),n}function y({containerRef:e,options:n}){let[r,i]=t.default.useState(()=>_(e?.current)),a=t.default.useRef(null),o=e?.current;return t.default.useEffect(()=>{if(!o){i(d);return}let e=e=>{let t=e.target;a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{i({scrollX:t.scrollLeft,scrollY:t.scrollTop})},n?.eventListenerTimeoutMs||15)};return i(_(o)),o.addEventListener(`scroll`,e,{passive:n?.passiveEventListener}),()=>{a.current&&clearTimeout(a.current),o.removeEventListener(`scroll`,e)}},[o,n?.eventListenerTimeoutMs,n?.passiveEventListener]),r}function b(e){let[n,r]=t.default.useState(()=>h()),i=t.default.useRef(null);return t.default.useEffect(()=>{if(!p)return;let t=()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{let{scrollX:e,scrollY:t}=h();r({scrollX:e,scrollY:t})},e?.eventListenerTimeoutMs||20)};return window.addEventListener(`scroll`,t,{passive:e?.passiveEventListener}),()=>{i.current&&clearTimeout(i.current),window.removeEventListener(`scroll`,t)}},[e?.eventListenerTimeoutMs,e?.passiveEventListener]),n}e.AtomTrigger=u,e.log=m,e.useContainerScroll=y,e.useWindowDimensions=v,e.useWindowScroll=b});
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.es.js",
7
7
  "typings": "lib/index.d.ts",
8
- "version": "1.1.0",
8
+ "version": "1.1.1",
9
9
  "license": "MIT",
10
10
  "author": "innrVoice <innrvoice@icloud.com>",
11
11
  "repository": {
@@ -27,7 +27,7 @@
27
27
  "@types/react": "^19.0.12",
28
28
  "oxlint": "^1.50.0",
29
29
  "prettier": "^3.4.2",
30
- "tsdown": "^0.21.0-beta.2",
30
+ "tsdown": "^0.21.7",
31
31
  "tslib": "^2.8.0",
32
32
  "typescript": "^5.6.3"
33
33
  },
@@ -41,6 +41,10 @@
41
41
  "files": [
42
42
  "lib"
43
43
  ],
44
+ "resolutions": {
45
+ "**/defu": "6.1.6",
46
+ "**/picomatch": "4.0.4"
47
+ },
44
48
  "engines": {
45
49
  "node": ">=20.19.0"
46
50
  }