@cleartrip/talos-use-intersection-observer 1.3.0 → 2.0.0-beta-260929-rn-v1.0
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/dist/talos-use-intersection-observer.browser.cjs.js +1 -1
- package/dist/talos-use-intersection-observer.browser.cjs.js.map +1 -1
- package/dist/talos-use-intersection-observer.browser.esm.js +1 -1
- package/dist/talos-use-intersection-observer.browser.esm.js.map +1 -1
- package/dist/talos-use-intersection-observer.cjs.js +4 -0
- package/dist/talos-use-intersection-observer.cjs.js.map +1 -1
- package/dist/talos-use-intersection-observer.esm.js +4 -0
- package/dist/talos-use-intersection-observer.esm.js.map +1 -1
- package/dist/talos-use-intersection-observer.umd.js +4 -0
- package/dist/talos-use-intersection-observer.umd.js.map +1 -1
- package/dist/useIntersectionObserver.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/index.ts +1 -0
- package/src/useIntersectionObserver.ts +58 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("react");exports.useIntersectionObserver=function(r
|
|
1
|
+
"use strict";var e=require("react");exports.useIntersectionObserver=function(n,r){var t=e.useState(function(){return function(e){return void 0===e}(n)}),o=t[0],i=t[1],s=null!=r?r:{},u=s.root,f=s.rootMargin,c=s.threshold;return e.useEffect(function(){if(void 0!==n)if(n)if("undefined"!=typeof IntersectionObserver){if("undefined"!=typeof Element&&n instanceof Element){var e=new IntersectionObserver(function(e){var n,r=e[0];i(null!==(n=null==r?void 0:r.isIntersecting)&&void 0!==n&&n)},{root:u,rootMargin:f,threshold:c});return e.observe(n),function(){return e.disconnect()}}i(!0)}else i(!0);else i(!1);else i(!0)},[n,u,f,c]),o};
|
|
2
2
|
//# sourceMappingURL=talos-use-intersection-observer.browser.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"talos-use-intersection-observer.browser.cjs.js","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"sourcesContent":[null],"names":["element","options","_a","useState","undefined","initialIntersecting","isIntersecting","setIsIntersecting","_b","root","rootMargin","threshold","useEffect","IntersectionObserver","observer","entry","observe","disconnect"],"mappings":"oEAWgB,SACdA,EACAC,GAEM,IAAAC,EAAsCC,EAAAA,SAAS,WACnD,OAdJ,SAA6BH,GAC3B,YAAgBI,IAAZJ,CAEN,CAWIK,CAAoBL,EAApB,GADKM,OAAgBC,OAIjBC,EAAkCP,QAAAA,EAAW,CAAE,EAA7CQ,SAAMC,eAAYC,
|
|
1
|
+
{"version":3,"file":"talos-use-intersection-observer.browser.cjs.js","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"sourcesContent":[null],"names":["element","options","_a","useState","undefined","initialIntersecting","isIntersecting","setIsIntersecting","_b","root","rootMargin","threshold","useEffect","IntersectionObserver","Element","observer","entry","observe","disconnect"],"mappings":"oEAWgB,SACdA,EACAC,GAEM,IAAAC,EAAsCC,EAAAA,SAAS,WACnD,OAdJ,SAA6BH,GAC3B,YAAgBI,IAAZJ,CAEN,CAWIK,CAAoBL,EAApB,GADKM,OAAgBC,OAIjBC,EAAkCP,QAAAA,EAAW,CAAE,EAA7CQ,SAAMC,eAAYC,cAqC1B,OAnCAC,EAAAA,UAAU,WACR,QAAgBR,IAAZJ,EAKJ,GAAKA,EAKL,GAAoC,oBAAzBa,qBAAX,CAQA,GAAuB,oBAAZC,SAA6Bd,aAAmBc,QAA3D,CAKA,IAAMC,EAAW,IAAIF,qBACnB,SAACX,SAACc,EAAKd,EAAA,GACLK,EAAuC,QAArBC,EAAAQ,aAAK,EAALA,EAAOV,sBAAc,IAAAE,GAAAA,EACzC,EACA,CAAEC,KAAIA,EAAEC,WAAUA,EAAEC,UAASA,IAI/B,OADAI,EAASE,QAAQjB,GACV,WAAM,OAAAe,EAASG,YAAY,CAVjC,CAFCX,GAAkB,EANnB,MAFCA,GAAkB,QALlBA,GAAkB,QALlBA,GAAkB,EA+BrB,EAAE,CAACP,EAASS,EAAMC,EAAYC,IAExBL,CACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useState as
|
|
1
|
+
import{useState as e,useEffect as n}from"react";function r(r,t){var o=e(function(){return function(e){return void 0===e}(r)}),i=o[0],f=o[1],u=null!=t?t:{},s=u.root,c=u.rootMargin,l=u.threshold;return n(function(){if(void 0!==r)if(r)if("undefined"!=typeof IntersectionObserver){if("undefined"!=typeof Element&&r instanceof Element){var e=new IntersectionObserver(function(e){var n,r=e[0];f(null!==(n=null==r?void 0:r.isIntersecting)&&void 0!==n&&n)},{root:s,rootMargin:c,threshold:l});return e.observe(r),function(){return e.disconnect()}}f(!0)}else f(!0);else f(!1);else f(!0)},[r,s,c,l]),i}export{r as useIntersectionObserver};
|
|
2
2
|
//# sourceMappingURL=talos-use-intersection-observer.browser.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"talos-use-intersection-observer.browser.esm.js","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"sourcesContent":[null],"names":["useIntersectionObserver","element","options","_a","useState","undefined","initialIntersecting","isIntersecting","setIsIntersecting","_b","root","rootMargin","threshold","useEffect","IntersectionObserver","observer","entry","observe","disconnect"],"mappings":"gDAWgB,SAAAA,EACdC,EACAC,GAEM,IAAAC,EAAsCC,EAAS,WACnD,OAdJ,SAA6BH,GAC3B,YAAgBI,IAAZJ,CAEN,CAWIK,CAAoBL,EAApB,GADKM,OAAgBC,OAIjBC,EAAkCP,QAAAA,EAAW,CAAE,EAA7CQ,SAAMC,eAAYC,
|
|
1
|
+
{"version":3,"file":"talos-use-intersection-observer.browser.esm.js","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"sourcesContent":[null],"names":["useIntersectionObserver","element","options","_a","useState","undefined","initialIntersecting","isIntersecting","setIsIntersecting","_b","root","rootMargin","threshold","useEffect","IntersectionObserver","Element","observer","entry","observe","disconnect"],"mappings":"gDAWgB,SAAAA,EACdC,EACAC,GAEM,IAAAC,EAAsCC,EAAS,WACnD,OAdJ,SAA6BH,GAC3B,YAAgBI,IAAZJ,CAEN,CAWIK,CAAoBL,EAApB,GADKM,OAAgBC,OAIjBC,EAAkCP,QAAAA,EAAW,CAAE,EAA7CQ,SAAMC,eAAYC,cAqC1B,OAnCAC,EAAU,WACR,QAAgBR,IAAZJ,EAKJ,GAAKA,EAKL,GAAoC,oBAAzBa,qBAAX,CAQA,GAAuB,oBAAZC,SAA6Bd,aAAmBc,QAA3D,CAKA,IAAMC,EAAW,IAAIF,qBACnB,SAACX,SAACc,EAAKd,EAAA,GACLK,EAAuC,QAArBC,EAAAQ,aAAK,EAALA,EAAOV,sBAAc,IAAAE,GAAAA,EACzC,EACA,CAAEC,KAAIA,EAAEC,WAAUA,EAAEC,UAASA,IAI/B,OADAI,EAASE,QAAQjB,GACV,WAAM,OAAAe,EAASG,YAAY,CAVjC,CAFCX,GAAkB,EANnB,MAFCA,GAAkB,QALlBA,GAAkB,QALlBA,GAAkB,EA+BrB,EAAE,CAACP,EAASS,EAAMC,EAAYC,IAExBL,CACT"}
|
|
@@ -25,6 +25,10 @@ function useIntersectionObserver(element, options) {
|
|
|
25
25
|
setIsIntersecting(true);
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
|
+
if (typeof Element === "undefined" || !(element instanceof Element)) {
|
|
29
|
+
setIsIntersecting(true);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
28
32
|
var observer = new IntersectionObserver(function (_a) {
|
|
29
33
|
var _b;
|
|
30
34
|
var entry = _a[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"talos-use-intersection-observer.cjs.js","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"sourcesContent":[null],"names":["useState","useEffect"],"mappings":";;;;AAEA,SAAS,mBAAmB,CAAC,OAAmC,EAAA;IAC9D,IAAI,OAAO,KAAK,SAAS;AAAE,QAAA,OAAO,IAAI,CAAC;AACvC,IAAA,OAAO,KAAK,CAAC;AACf,CAAC;AAMe,SAAA,uBAAuB,CACrC,OAAmC,EACnC,OAAkC,EAAA;IAE5B,IAAA,EAAA,GAAsCA,cAAQ,CAAC,YAAA;QACnD,OAAA,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAA5B,KAA4B,CAC7B,EAFM,cAAc,QAAA,EAAE,iBAAiB,QAEvC,CAAC;AAEI,IAAA,IAAA,KAAkC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAP,OAAO,GAAI,EAAE,EAA7C,IAAI,UAAA,EAAE,UAAU,gBAAA,EAAE,SAAS,eAAkB,CAAC;AAEtD,IAAAC,eAAS,CAAC,YAAA;
|
|
1
|
+
{"version":3,"file":"talos-use-intersection-observer.cjs.js","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"sourcesContent":[null],"names":["useState","useEffect"],"mappings":";;;;AAEA,SAAS,mBAAmB,CAAC,OAAmC,EAAA;IAC9D,IAAI,OAAO,KAAK,SAAS;AAAE,QAAA,OAAO,IAAI,CAAC;AACvC,IAAA,OAAO,KAAK,CAAC;AACf,CAAC;AAMe,SAAA,uBAAuB,CACrC,OAAmC,EACnC,OAAkC,EAAA;IAE5B,IAAA,EAAA,GAAsCA,cAAQ,CAAC,YAAA;QACnD,OAAA,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAA5B,KAA4B,CAC7B,EAFM,cAAc,QAAA,EAAE,iBAAiB,QAEvC,CAAC;AAEI,IAAA,IAAA,KAAkC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAP,OAAO,GAAI,EAAE,EAA7C,IAAI,UAAA,EAAE,UAAU,gBAAA,EAAE,SAAS,eAAkB,CAAC;AAEtD,IAAAC,eAAS,CAAC,YAAA;AACR,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO;SACR;QAED,IAAI,CAAC,OAAO,EAAE;YACZ,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO;SACR;AAED,QAAA,IAAI,OAAO,oBAAoB,KAAK,WAAW,EAAE;YAC/C,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO;SACR;AAKD,QAAA,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,EAAE,OAAO,YAAY,OAAO,CAAC,EAAE;YACnE,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO;SACR;AAED,QAAA,IAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,UAAC,EAAO,EAAA;;AAAN,YAAA,IAAA,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AACL,YAAA,iBAAiB,CAAC,CAAA,EAAA,GAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAC,CAAC;AACpD,SAAC,EACD,EAAE,IAAI,EAAA,IAAA,EAAE,UAAU,EAAA,UAAA,EAAE,SAAS,EAAA,SAAA,EAAE,CAChC,CAAC;AAEF,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,YAAA,EAAM,OAAA,QAAQ,CAAC,UAAU,EAAE,CAAA,EAAA,CAAC;KACpC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAE3C,IAAA,OAAO,cAAc,CAAC;AACxB;;;;"}
|
|
@@ -23,6 +23,10 @@ function useIntersectionObserver(element, options) {
|
|
|
23
23
|
setIsIntersecting(true);
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
|
+
if (typeof Element === "undefined" || !(element instanceof Element)) {
|
|
27
|
+
setIsIntersecting(true);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
26
30
|
var observer = new IntersectionObserver(function (_a) {
|
|
27
31
|
var _b;
|
|
28
32
|
var entry = _a[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"talos-use-intersection-observer.esm.js","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,SAAS,mBAAmB,CAAC,OAAmC,EAAA;IAC9D,IAAI,OAAO,KAAK,SAAS;AAAE,QAAA,OAAO,IAAI,CAAC;AACvC,IAAA,OAAO,KAAK,CAAC;AACf,CAAC;AAMe,SAAA,uBAAuB,CACrC,OAAmC,EACnC,OAAkC,EAAA;IAE5B,IAAA,EAAA,GAAsC,QAAQ,CAAC,YAAA;QACnD,OAAA,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAA5B,KAA4B,CAC7B,EAFM,cAAc,QAAA,EAAE,iBAAiB,QAEvC,CAAC;AAEI,IAAA,IAAA,KAAkC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAP,OAAO,GAAI,EAAE,EAA7C,IAAI,UAAA,EAAE,UAAU,gBAAA,EAAE,SAAS,eAAkB,CAAC;AAEtD,IAAA,SAAS,CAAC,YAAA;
|
|
1
|
+
{"version":3,"file":"talos-use-intersection-observer.esm.js","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,SAAS,mBAAmB,CAAC,OAAmC,EAAA;IAC9D,IAAI,OAAO,KAAK,SAAS;AAAE,QAAA,OAAO,IAAI,CAAC;AACvC,IAAA,OAAO,KAAK,CAAC;AACf,CAAC;AAMe,SAAA,uBAAuB,CACrC,OAAmC,EACnC,OAAkC,EAAA;IAE5B,IAAA,EAAA,GAAsC,QAAQ,CAAC,YAAA;QACnD,OAAA,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAA5B,KAA4B,CAC7B,EAFM,cAAc,QAAA,EAAE,iBAAiB,QAEvC,CAAC;AAEI,IAAA,IAAA,KAAkC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAP,OAAO,GAAI,EAAE,EAA7C,IAAI,UAAA,EAAE,UAAU,gBAAA,EAAE,SAAS,eAAkB,CAAC;AAEtD,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO;SACR;QAED,IAAI,CAAC,OAAO,EAAE;YACZ,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO;SACR;AAED,QAAA,IAAI,OAAO,oBAAoB,KAAK,WAAW,EAAE;YAC/C,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO;SACR;AAKD,QAAA,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,EAAE,OAAO,YAAY,OAAO,CAAC,EAAE;YACnE,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO;SACR;AAED,QAAA,IAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,UAAC,EAAO,EAAA;;AAAN,YAAA,IAAA,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AACL,YAAA,iBAAiB,CAAC,CAAA,EAAA,GAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAC,CAAC;AACpD,SAAC,EACD,EAAE,IAAI,EAAA,IAAA,EAAE,UAAU,EAAA,UAAA,EAAE,SAAS,EAAA,SAAA,EAAE,CAChC,CAAC;AAEF,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,YAAA,EAAM,OAAA,QAAQ,CAAC,UAAU,EAAE,CAAA,EAAA,CAAC;KACpC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAE3C,IAAA,OAAO,cAAc,CAAC;AACxB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"talos-use-intersection-observer.umd.js","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"sourcesContent":[null],"names":["useState","useEffect"],"mappings":";;;;;;IAEA,SAAS,mBAAmB,CAAC,OAAmC,EAAA;QAC9D,IAAI,OAAO,KAAK,SAAS;IAAE,QAAA,OAAO,IAAI,CAAC;IACvC,IAAA,OAAO,KAAK,CAAC;IACf,CAAC;IAMe,SAAA,uBAAuB,CACrC,OAAmC,EACnC,OAAkC,EAAA;QAE5B,IAAA,EAAA,GAAsCA,cAAQ,CAAC,YAAA;YACnD,OAAA,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAA5B,KAA4B,CAC7B,EAFM,cAAc,QAAA,EAAE,iBAAiB,QAEvC,CAAC;IAEI,IAAA,IAAA,KAAkC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAP,OAAO,GAAI,EAAE,EAA7C,IAAI,UAAA,EAAE,UAAU,gBAAA,EAAE,SAAS,eAAkB,CAAC;IAEtD,IAAAC,eAAS,CAAC,YAAA;
|
|
1
|
+
{"version":3,"file":"talos-use-intersection-observer.umd.js","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"sourcesContent":[null],"names":["useState","useEffect"],"mappings":";;;;;;IAEA,SAAS,mBAAmB,CAAC,OAAmC,EAAA;QAC9D,IAAI,OAAO,KAAK,SAAS;IAAE,QAAA,OAAO,IAAI,CAAC;IACvC,IAAA,OAAO,KAAK,CAAC;IACf,CAAC;IAMe,SAAA,uBAAuB,CACrC,OAAmC,EACnC,OAAkC,EAAA;QAE5B,IAAA,EAAA,GAAsCA,cAAQ,CAAC,YAAA;YACnD,OAAA,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAA5B,KAA4B,CAC7B,EAFM,cAAc,QAAA,EAAE,iBAAiB,QAEvC,CAAC;IAEI,IAAA,IAAA,KAAkC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAP,OAAO,GAAI,EAAE,EAA7C,IAAI,UAAA,EAAE,UAAU,gBAAA,EAAE,SAAS,eAAkB,CAAC;IAEtD,IAAAC,eAAS,CAAC,YAAA;IACR,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxB,OAAO;aACR;YAED,IAAI,CAAC,OAAO,EAAE;gBACZ,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACzB,OAAO;aACR;IAED,QAAA,IAAI,OAAO,oBAAoB,KAAK,WAAW,EAAE;gBAC/C,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxB,OAAO;aACR;IAKD,QAAA,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,EAAE,OAAO,YAAY,OAAO,CAAC,EAAE;gBACnE,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxB,OAAO;aACR;IAED,QAAA,IAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,UAAC,EAAO,EAAA;;IAAN,YAAA,IAAA,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IACL,YAAA,iBAAiB,CAAC,CAAA,EAAA,GAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAC,CAAC;IACpD,SAAC,EACD,EAAE,IAAI,EAAA,IAAA,EAAE,UAAU,EAAA,UAAA,EAAE,SAAS,EAAA,SAAA,EAAE,CAChC,CAAC;IAEF,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,YAAA,EAAM,OAAA,QAAQ,CAAC,UAAU,EAAE,CAAA,EAAA,CAAC;SACpC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAE3C,IAAA,OAAO,cAAc,CAAC;IACxB;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIntersectionObserver.d.ts","sourceRoot":"","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"names":[],"mappings":"AAWA,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EACnC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"useIntersectionObserver.d.ts","sourceRoot":"","sources":["../packages/hooks/use-intersection-observer/src/useIntersectionObserver.ts"],"names":[],"mappings":"AAWA,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EACnC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CA2CT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleartrip/talos-use-intersection-observer",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-beta-260929-rn-v1.0",
|
|
4
4
|
"description": "Hook for tracking element viewport intersection via IntersectionObserver",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"main": "dist/talos-use-intersection-observer.cjs.js",
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
"./dist/talos-use-intersection-observer.cjs.js": "./dist/talos-use-intersection-observer.browser.cjs.js"
|
|
13
13
|
},
|
|
14
14
|
"files": [
|
|
15
|
-
"dist"
|
|
15
|
+
"dist",
|
|
16
|
+
"src"
|
|
16
17
|
],
|
|
17
18
|
"peerDependencies": {
|
|
18
19
|
"react": ">=16.8.0",
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useIntersectionObserver } from "./useIntersectionObserver";
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
|
|
3
|
+
function initialIntersecting(element: Element | null | undefined): boolean {
|
|
4
|
+
if (element === undefined) return true;
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Tracks whether `element` intersects the viewport (or `root`).
|
|
10
|
+
* Pass `undefined` to skip observing and treat visibility as always true.
|
|
11
|
+
*/
|
|
12
|
+
export function useIntersectionObserver(
|
|
13
|
+
element: Element | null | undefined,
|
|
14
|
+
options?: IntersectionObserverInit
|
|
15
|
+
): boolean {
|
|
16
|
+
const [isIntersecting, setIsIntersecting] = useState(() =>
|
|
17
|
+
initialIntersecting(element)
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
const { root, rootMargin, threshold } = options ?? {};
|
|
21
|
+
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (element === undefined) {
|
|
24
|
+
setIsIntersecting(true);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (!element) {
|
|
29
|
+
setIsIntersecting(false);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (typeof IntersectionObserver === "undefined") {
|
|
34
|
+
setIsIntersecting(true);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Guard against non-Element inputs (e.g. a ct-design `ContainerRef`
|
|
39
|
+
// imperative handle) so `observe()` never receives a non-Element and throws.
|
|
40
|
+
// Nothing to observe → treat as visible rather than crashing.
|
|
41
|
+
if (typeof Element === "undefined" || !(element instanceof Element)) {
|
|
42
|
+
setIsIntersecting(true);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const observer = new IntersectionObserver(
|
|
47
|
+
([entry]) => {
|
|
48
|
+
setIsIntersecting(entry?.isIntersecting ?? false);
|
|
49
|
+
},
|
|
50
|
+
{ root, rootMargin, threshold }
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
observer.observe(element);
|
|
54
|
+
return () => observer.disconnect();
|
|
55
|
+
}, [element, root, rootMargin, threshold]);
|
|
56
|
+
|
|
57
|
+
return isIntersecting;
|
|
58
|
+
}
|