@cleartrip/ct-platform-io-hoc 1.0.0-beta.2 → 1.0.0-beta.3
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.
|
@@ -1,62 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var tslib = require('tslib');
|
|
4
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
-
var react = require('react');
|
|
6
|
-
|
|
7
|
-
var IntersectionObserverHOC = function (_a) {
|
|
8
|
-
var children = _a.children, onIntersection = _a.onIntersection, onTimedObservationComplete = _a.onTimedObservationComplete;
|
|
9
|
-
var viewed = react.useRef(false);
|
|
10
|
-
var intersected = react.useRef(false);
|
|
11
|
-
var intersectionRef = react.useRef(null);
|
|
12
|
-
var timeoutInstance = react.useRef(null);
|
|
13
|
-
var handleIO = react.useCallback(function (entries, observer) {
|
|
14
|
-
var entry = entries[0];
|
|
15
|
-
if (entry === null || entry === void 0 ? void 0 : entry.isIntersecting) {
|
|
16
|
-
if (!intersected.current) {
|
|
17
|
-
onIntersection();
|
|
18
|
-
intersected.current = true;
|
|
19
|
-
}
|
|
20
|
-
var intersectionRatio = entry.intersectionRatio;
|
|
21
|
-
if (intersectionRatio >= 0.5) {
|
|
22
|
-
timeoutInstance.current &&
|
|
23
|
-
clearTimeout(timeoutInstance.current);
|
|
24
|
-
timeoutInstance.current = setTimeout(function () {
|
|
25
|
-
if (!viewed.current) {
|
|
26
|
-
unobserve(observer);
|
|
27
|
-
viewed.current = true;
|
|
28
|
-
onTimedObservationComplete === null || onTimedObservationComplete === void 0 ? void 0 : onTimedObservationComplete();
|
|
29
|
-
}
|
|
30
|
-
}, 1000);
|
|
31
|
-
}
|
|
32
|
-
else if (timeoutInstance.current) {
|
|
33
|
-
clearTimeout(timeoutInstance.current);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
if (timeoutInstance.current) {
|
|
38
|
-
clearTimeout(timeoutInstance.current);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}, []);
|
|
42
|
-
react.useEffect(function () {
|
|
43
|
-
var observer = new IntersectionObserver(handleIO, {
|
|
44
|
-
threshold: [0.01, 0.5],
|
|
45
|
-
});
|
|
46
|
-
if (intersectionRef.current) {
|
|
47
|
-
observer.observe(intersectionRef.current);
|
|
48
|
-
}
|
|
49
|
-
return function () {
|
|
50
|
-
unobserve(observer);
|
|
51
|
-
};
|
|
52
|
-
}, []);
|
|
53
|
-
var unobserve = react.useCallback(function (observer) {
|
|
54
|
-
if (intersectionRef.current) {
|
|
55
|
-
observer.unobserve(intersectionRef.current);
|
|
56
|
-
}
|
|
57
|
-
}, [intersectionRef]);
|
|
58
|
-
return jsxRuntime.jsx("div", tslib.__assign({ ref: intersectionRef }, { children: children }));
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
exports.IntersectionObserverHOC = IntersectionObserverHOC;
|
|
1
|
+
"use strict";var e=require("tslib"),r=require("react/jsx-runtime"),n=require("react");exports.IntersectionObserverHOC=function(t){var u=t.children,c=t.onIntersection,i=t.onTimedObservationComplete,s=n.useRef(!1),o=n.useRef(!1),l=n.useRef(null),a=n.useRef(null),f=n.useCallback((function(e,r){var n=e[0];(null==n?void 0:n.isIntersecting)?(o.current||(c(),o.current=!0),n.intersectionRatio>=.5?(a.current&&clearTimeout(a.current),a.current=setTimeout((function(){s.current||(v(r),s.current=!0,null==i||i())}),1e3)):a.current&&clearTimeout(a.current)):a.current&&clearTimeout(a.current)}),[]);n.useEffect((function(){var e=new IntersectionObserver(f,{threshold:[.01,.5]});return l.current&&e.observe(l.current),function(){v(e)}}),[]);var v=n.useCallback((function(e){l.current&&e.unobserve(l.current)}),[l]);return r.jsx("div",e.__assign({ref:l},{children:u}))};
|
|
62
2
|
//# sourceMappingURL=ct-platform-io-hoc.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ct-platform-io-hoc.cjs.js","sources":["../packages/components/IntersectionObserverHOC/src/IntersectionObserverHOC.tsx"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"ct-platform-io-hoc.cjs.js","sources":["../packages/components/IntersectionObserverHOC/src/IntersectionObserverHOC.tsx"],"sourcesContent":[null],"names":["_a","children","onIntersection","onTimedObservationComplete","viewed","useRef","intersected","intersectionRef","timeoutInstance","handleIO","useCallback","entries","observer","entry","isIntersecting","current","intersectionRatio","clearTimeout","setTimeout","unobserve","useEffect","IntersectionObserver","threshold","observe","_jsx","ref"],"mappings":"sHAIqE,SAACA,GAClE,IAAAC,aACAC,EAAcF,EAAAE,eACdC,EAA0BH,EAAAG,2BAEpBC,EAASC,UAAgB,GACzBC,EAAcD,UAAgB,GAC9BE,EAAkBF,SAA8B,MAChDG,EAAkBH,SAA8B,MAEhDI,EAAWC,EAAAA,aACb,SACIC,EACAC,GAEA,IAAMC,EAAQF,EAAQ,IAElBE,eAAAA,EAAOC,iBACFR,EAAYS,UACbb,IACAI,EAAYS,SAAU,GAGIF,EAAKG,mBAEV,IACrBR,EAAgBO,SACZE,aAAaT,EAAgBO,SACjCP,EAAgBO,QAAUG,YAAW,WAC5Bd,EAAOW,UACRI,EAAUP,GACVR,EAAOW,SAAU,EACjBZ,SAAAA,IAEP,GAAE,MACIK,EAAgBO,SACvBE,aAAaT,EAAgBO,UAG7BP,EAAgBO,SAChBE,aAAaT,EAAgBO,QAGxC,GACD,IAGJK,EAAAA,WAAU,WACN,IAAMR,EAAW,IAAIS,qBAAqBZ,EAAU,CAChDa,UAAW,CAAC,IAAM,MAOtB,OAJIf,EAAgBQ,SAChBH,EAASW,QAAQhB,EAAgBQ,SAG9B,WACHI,EAAUP,EACd,CACH,GAAE,IAEH,IAAMO,EAAYT,eACd,SAACE,GACOL,EAAgBQ,SAChBH,EAASO,UAAUZ,EAAgBQ,QAE3C,GACA,CAACR,IAGL,OAAOiB,wBAAKC,IAAKlB,GAAkB,CAAAN,SAAAA,IACvC"}
|
|
@@ -1,60 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { useRef, useCallback, useEffect } from 'react';
|
|
4
|
-
|
|
5
|
-
var IntersectionObserverHOC = function (_a) {
|
|
6
|
-
var children = _a.children, onIntersection = _a.onIntersection, onTimedObservationComplete = _a.onTimedObservationComplete;
|
|
7
|
-
var viewed = useRef(false);
|
|
8
|
-
var intersected = useRef(false);
|
|
9
|
-
var intersectionRef = useRef(null);
|
|
10
|
-
var timeoutInstance = useRef(null);
|
|
11
|
-
var handleIO = useCallback(function (entries, observer) {
|
|
12
|
-
var entry = entries[0];
|
|
13
|
-
if (entry === null || entry === void 0 ? void 0 : entry.isIntersecting) {
|
|
14
|
-
if (!intersected.current) {
|
|
15
|
-
onIntersection();
|
|
16
|
-
intersected.current = true;
|
|
17
|
-
}
|
|
18
|
-
var intersectionRatio = entry.intersectionRatio;
|
|
19
|
-
if (intersectionRatio >= 0.5) {
|
|
20
|
-
timeoutInstance.current &&
|
|
21
|
-
clearTimeout(timeoutInstance.current);
|
|
22
|
-
timeoutInstance.current = setTimeout(function () {
|
|
23
|
-
if (!viewed.current) {
|
|
24
|
-
unobserve(observer);
|
|
25
|
-
viewed.current = true;
|
|
26
|
-
onTimedObservationComplete === null || onTimedObservationComplete === void 0 ? void 0 : onTimedObservationComplete();
|
|
27
|
-
}
|
|
28
|
-
}, 1000);
|
|
29
|
-
}
|
|
30
|
-
else if (timeoutInstance.current) {
|
|
31
|
-
clearTimeout(timeoutInstance.current);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
if (timeoutInstance.current) {
|
|
36
|
-
clearTimeout(timeoutInstance.current);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}, []);
|
|
40
|
-
useEffect(function () {
|
|
41
|
-
var observer = new IntersectionObserver(handleIO, {
|
|
42
|
-
threshold: [0.01, 0.5],
|
|
43
|
-
});
|
|
44
|
-
if (intersectionRef.current) {
|
|
45
|
-
observer.observe(intersectionRef.current);
|
|
46
|
-
}
|
|
47
|
-
return function () {
|
|
48
|
-
unobserve(observer);
|
|
49
|
-
};
|
|
50
|
-
}, []);
|
|
51
|
-
var unobserve = useCallback(function (observer) {
|
|
52
|
-
if (intersectionRef.current) {
|
|
53
|
-
observer.unobserve(intersectionRef.current);
|
|
54
|
-
}
|
|
55
|
-
}, [intersectionRef]);
|
|
56
|
-
return jsx("div", __assign({ ref: intersectionRef }, { children: children }));
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
export { IntersectionObserverHOC };
|
|
1
|
+
import{__assign as r}from"tslib";import{jsx as e}from"react/jsx-runtime";import{useRef as n,useCallback as t,useEffect as u}from"react";var c=function(c){var o=c.children,i=c.onIntersection,l=c.onTimedObservationComplete,m=n(!1),s=n(!1),a=n(null),v=n(null),f=t((function(r,e){var n=r[0];(null==n?void 0:n.isIntersecting)?(s.current||(i(),s.current=!0),n.intersectionRatio>=.5?(v.current&&clearTimeout(v.current),v.current=setTimeout((function(){m.current||(d(e),m.current=!0,null==l||l())}),1e3)):v.current&&clearTimeout(v.current)):v.current&&clearTimeout(v.current)}),[]);u((function(){var r=new IntersectionObserver(f,{threshold:[.01,.5]});return a.current&&r.observe(a.current),function(){d(r)}}),[]);var d=t((function(r){a.current&&r.unobserve(a.current)}),[a]);return e("div",r({ref:a},{children:o}))};export{c as IntersectionObserverHOC};
|
|
60
2
|
//# sourceMappingURL=ct-platform-io-hoc.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ct-platform-io-hoc.esm.js","sources":["../packages/components/IntersectionObserverHOC/src/IntersectionObserverHOC.tsx"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"ct-platform-io-hoc.esm.js","sources":["../packages/components/IntersectionObserverHOC/src/IntersectionObserverHOC.tsx"],"sourcesContent":[null],"names":["IntersectionObserverHOC","_a","children","onIntersection","onTimedObservationComplete","viewed","useRef","intersected","intersectionRef","timeoutInstance","handleIO","useCallback","entries","observer","entry","isIntersecting","current","intersectionRatio","clearTimeout","setTimeout","unobserve","useEffect","IntersectionObserver","threshold","observe","_jsx","ref"],"mappings":"wIAIM,IAAAA,EAA+D,SAACC,GAClE,IAAAC,aACAC,EAAcF,EAAAE,eACdC,EAA0BH,EAAAG,2BAEpBC,EAASC,GAAgB,GACzBC,EAAcD,GAAgB,GAC9BE,EAAkBF,EAA8B,MAChDG,EAAkBH,EAA8B,MAEhDI,EAAWC,GACb,SACIC,EACAC,GAEA,IAAMC,EAAQF,EAAQ,IAElBE,eAAAA,EAAOC,iBACFR,EAAYS,UACbb,IACAI,EAAYS,SAAU,GAGIF,EAAKG,mBAEV,IACrBR,EAAgBO,SACZE,aAAaT,EAAgBO,SACjCP,EAAgBO,QAAUG,YAAW,WAC5Bd,EAAOW,UACRI,EAAUP,GACVR,EAAOW,SAAU,EACjBZ,SAAAA,IAEP,GAAE,MACIK,EAAgBO,SACvBE,aAAaT,EAAgBO,UAG7BP,EAAgBO,SAChBE,aAAaT,EAAgBO,QAGxC,GACD,IAGJK,GAAU,WACN,IAAMR,EAAW,IAAIS,qBAAqBZ,EAAU,CAChDa,UAAW,CAAC,IAAM,MAOtB,OAJIf,EAAgBQ,SAChBH,EAASW,QAAQhB,EAAgBQ,SAG9B,WACHI,EAAUP,EACd,CACH,GAAE,IAEH,IAAMO,EAAYT,GACd,SAACE,GACOL,EAAgBQ,SAChBH,EAASO,UAAUZ,EAAgBQ,QAE3C,GACA,CAACR,IAGL,OAAOiB,WAAKC,IAAKlB,GAAkB,CAAAN,SAAAA,IACvC"}
|