@cleartrip/ct-design-intersection-observer 4.0.0-SNAPSHOT-rnfinaltest56.0 → 4.0.0-SNAPSHOT-rnfinaltest58.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/ct-design-intersection-observer.browser.cjs.js +1 -1
- package/dist/ct-design-intersection-observer.browser.cjs.js.map +1 -1
- package/dist/ct-design-intersection-observer.browser.esm.js +1 -1
- package/dist/ct-design-intersection-observer.browser.esm.js.map +1 -1
- package/dist/ct-design-intersection-observer.cjs.js +2 -131
- package/dist/ct-design-intersection-observer.cjs.js.map +1 -1
- package/dist/ct-design-intersection-observer.esm.js +3 -132
- package/dist/ct-design-intersection-observer.esm.js.map +1 -1
- package/dist/ct-design-intersection-observer.umd.js +6 -134
- package/dist/ct-design-intersection-observer.umd.js.map +1 -1
- package/dist/useInViewType.d.ts +0 -7
- package/dist/useInViewType.d.ts.map +1 -1
- package/dist/useinView.d.ts +1 -1
- package/dist/useinView.d.ts.map +1 -1
- package/dist/useinView.native.d.ts +4 -0
- package/dist/useinView.native.d.ts.map +1 -0
- package/package.json +8 -8
- package/src/useInViewType.ts +0 -9
- package/src/useinView.native.ts +283 -0
- package/src/useinView.ts +3 -197
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("@cleartrip/ct-design-scroll-container"),n=require("@cleartrip/ct-design-list"),u=require("@cleartrip/ct-design-common-utils");exports.IntersectionObserver=({children:t,onIntersection:n,onTimedObservationComplete:u,threshold:s=[.01,.5],wrapped:c})=>{const l=r.useRef(!1),i=r.useRef(!1),o=r.useRef(null),a=r.useRef(null),d=r.useCallback(e=>{o.current&&e.unobserve(o.current)},[o]),m=r.useCallback((e,r)=>{const t=e[0];if(null==t?void 0:t.isIntersecting){i.current||(n(),i.current=!0);const{intersectionRatio:e}=t;e>=.5?(a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{l.current||(d(r),l.current=!0,null==u||u())},1e3)):a.current&&clearTimeout(a.current)}else a.current&&clearTimeout(a.current)},[n,u,d]);return r.useEffect(()=>{const e=new IntersectionObserver(m,{threshold:s});return o.current&&e.observe(o.current),()=>{d(e)}},[m,s,d]),c?e.jsx("div",{ref:o,children:t}):e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:o}),t]})},exports.useInView=({onChange:e,onIntersectionComplete:s,onTimedObservationComplete:c,observeOnScroll:l=!1,onUnmount:i})=>{const o=r.useRef(null),a=r.useRef(0),d=r.useRef(!1),m=r.useRef({start:0,end:0}),f=r.useRef(!1),{listId:v}=n.useListItem(),b=r.useCallback((r,t)=>{if(l||!t){if(r){const t=null==r?void 0:r.has(v);return t&&(null==c||c()),t&&0===a.current?(a.current=1,void(null==e||e(!0))):t||1!==a.current?void 0:(a.current=0,void(null==s||s()))}u.promiseHandler.add(()=>new Promise(e=>{o.current||e()}),o.current)}},[v,l,e,s,c]),p=r.useCallback(()=>({observe:b,layout:{X:0,Y:0}}),[b]);t.useAddObservableChild(p);const h=r.useCallback(()=>{null==i||i(),u.promiseHandler.clear(),a.current=0,d.current=!1,m.current.end=0,m.current.start=0,f.current=!1},[]);return r.useEffect(()=>(setTimeout(()=>{b()},400),()=>{h()}),[h]),o};
|
|
2
2
|
//# sourceMappingURL=ct-design-intersection-observer.browser.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ct-design-intersection-observer.browser.cjs.js","sources":["../packages/components/InterSectionObserver/src/IntersectionObserver.tsx","../packages/components/InterSectionObserver/src/useinView.ts"],"sourcesContent":[null,null],"names":["
|
|
1
|
+
{"version":3,"file":"ct-design-intersection-observer.browser.cjs.js","sources":["../packages/components/InterSectionObserver/src/IntersectionObserver.tsx","../packages/components/InterSectionObserver/src/useinView.ts"],"sourcesContent":[null,null],"names":["children","onIntersection","onTimedObservationComplete","threshold","wrapped","viewed","useRef","intersected","intersectionRef","timeoutInstance","unobserve","useCallback","observer","current","handleIO","entries","entry","isIntersecting","intersectionRatio","clearTimeout","setTimeout","useEffect","IntersectionObserver","observe","_jsx","ref","_jsxs","jsxs","_Fragment","Fragment","onChange","onIntersectionComplete","observeOnScroll","onUnmount","visibleRef","timeoutVisibleRef","timeoutVisibleStartRef","start","end","triggerOnceValue","listId","useListItem","observerMethod","visibleItems","isScrolling","visibleItem","has","promiseHandler","add","Promise","resolve","addObservable","layout","X","Y","useAddObservableChild","handleUnmount","clear"],"mappings":"yOAIqE,EACnEA,WACAC,iBACAC,6BACAC,YAAY,CAAC,IAAM,IACnBC,cAEA,MAAMC,EAASC,UAAgB,GACzBC,EAAcD,UAAgB,GAC9BE,EAAkBF,SAA8B,MAChDG,EAAkBH,SAA8B,MAEhDI,EAAYC,cACfC,IACKJ,EAAgBK,SAClBD,EAASF,UAAUF,EAAgBK,UAGvC,CAACL,IAGGM,EAAWH,EAAAA,YACf,CAACI,EAAsCH,KACrC,MAAMI,EAAQD,EAAQ,GAEtB,GAAIC,aAAK,EAALA,EAAOC,eAAgB,CACpBV,EAAYM,UACfZ,IACAM,EAAYM,SAAU,GAGxB,MAAMK,kBAAEA,GAAsBF,EAE1BE,GAAqB,IACnBT,EAAgBI,SAClBM,aAAaV,EAAgBI,SAE/BJ,EAAgBI,QAAUO,WAAW,KAC9Bf,EAAOQ,UACVH,EAAUE,GACVP,EAAOQ,SAAU,EACjBX,SAAAA,MAED,MACMO,EAAgBI,SACzBM,aAAaV,EAAgBI,QAEhC,MACKJ,EAAgBI,SAClBM,aAAaV,EAAgBI,UAInC,CAACZ,EAAgBC,EAA4BQ,IAiB/C,OAdAW,EAAAA,UAAU,KACR,MAAMT,EAAW,IAAIU,qBAAqBR,EAAU,CAClDX,cAOF,OAJIK,EAAgBK,SAClBD,EAASW,QAAQf,EAAgBK,SAG5B,KACLH,EAAUE,KAEX,CAACE,EAAUX,EAAWO,IAErBN,EACKoB,EAAAA,WAAKC,IAAKjB,EAAkBR,SAAAA,IAInC0B,EACEC,KAAAC,EAAAC,SAAA,CAAA7B,SAAA,CAAAwB,EAAAA,IAAA,MAAA,CAAKC,IAAKjB,IACTR,wBCzEW,EAChB8B,WACAC,yBACA7B,6BACA8B,mBAAkB,EAClBC,gBAEA,MAAMR,EAAMnB,SAAuB,MAC7B4B,EAAa5B,SAAO,GACpB6B,EAAoB7B,UAAO,GAC3B8B,EAAyB9B,EAAAA,OAAO,CAAE+B,MAAO,EAAGC,IAAK,IACjDC,EAAmBjC,UAAO,IAC1BkC,OAAEA,GAAWC,EAAAA,cAEbC,EAAiB/B,EAAAA,YACrB,CAACgC,EAA4BC,KAC3B,GAAKZ,IAAmBY,EAAxB,CAGA,GAAID,EAAc,CAChB,MAAME,EAAcF,aAAY,EAAZA,EAAcG,IAAIN,GAMtC,OAJIK,IACF3C,SAAAA,KAGE2C,GAAsC,IAAvBX,EAAWrB,SAC5BqB,EAAWrB,QAAU,OACrBiB,SAAAA,GAAW,KAEDe,GAAsC,IAAvBX,EAAWrB,aAKtC,GAJEqB,EAAWrB,QAAU,OACrBkB,SAAAA,KAIH,CAEDgB,EAAcA,eAACC,IAAI,IACV,IAAIC,QAAeC,IACnBzB,EAAIZ,SACPqC,MAIHzB,EAAIZ,QA3BN,GA6BH,CAAC2B,EAAQR,EAAiBF,EAAUC,EAAwB7B,IAGxDiD,EAAgBxC,EAAAA,YAAY,KACzB,CAAEY,QAASmB,EAAgBU,OAAQ,CAAEC,EAAG,EAAGC,EAAG,KACpD,CAACZ,IAEJa,EAAqBA,sBAACJ,GAEtB,MAAMK,EAAgB7C,EAAAA,YAAY,KAChCsB,SAAAA,IACAc,EAAcA,eAACU,QACfvB,EAAWrB,QAAU,EACrBsB,EAAkBtB,SAAU,EAC5BuB,EAAuBvB,QAAQyB,IAAM,EACrCF,EAAuBvB,QAAQwB,MAAQ,EACvCE,EAAiB1B,SAAU,GAE1B,IAYH,OAVAQ,EAAAA,UAAU,KACRD,WAAW,KACTsB,KACC,KACI,KACLc,MAGD,CAACA,IAEG/B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as r,jsxs as e,Fragment as t}from"react/jsx-runtime";import{useRef as n,useCallback as o,useEffect as c}from"react";import{useAddObservableChild as u}from"@cleartrip/ct-design-scroll-container";import{useListItem as i}from"@cleartrip/ct-design-list";import{promiseHandler as l}from"@cleartrip/ct-design-common-utils";const s=({children:u,onIntersection:i,onTimedObservationComplete:l,threshold:s=[.01,.5],wrapped:m})=>{const d=n(!1),a=n(!1),v=n(null),p=n(null),f=o(r=>{v.current&&r.unobserve(v.current)},[v]),h=o((r,e)=>{const t=r[0];if(null==t?void 0:t.isIntersecting){a.current||(i(),a.current=!0);const{intersectionRatio:r}=t;r>=.5?(p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{d.current||(f(e),d.current=!0,null==l||l())},1e3)):p.current&&clearTimeout(p.current)}else p.current&&clearTimeout(p.current)},[i,l,f]);return c(()=>{const r=new IntersectionObserver(h,{threshold:s});return v.current&&r.observe(v.current),()=>{f(r)}},[h,s,f]),m?r("div",{ref:v,children:u}):e(t,{children:[r("div",{ref:v}),u]})},m=({onChange:r,onIntersectionComplete:e,onTimedObservationComplete:t,observeOnScroll:s=!1,onUnmount:m})=>{const d=n(null),a=n(0),v=n(!1),p=n({start:0,end:0}),f=n(!1),{listId:h}=i(),b=o((n,o)=>{if(s||!o){if(n){const o=null==n?void 0:n.has(h);return o&&(null==t||t()),o&&0===a.current?(a.current=1,void(null==r||r(!0))):o||1!==a.current?void 0:(a.current=0,void(null==e||e()))}l.add(()=>new Promise(r=>{d.current||r()}),d.current)}},[h,s,r,e,t]),T=o(()=>({observe:b,layout:{X:0,Y:0}}),[b]);u(T);const I=o(()=>{null==m||m(),l.clear(),a.current=0,v.current=!1,p.current.end=0,p.current.start=0,f.current=!1},[]);return c(()=>(setTimeout(()=>{b()},400),()=>{I()}),[I]),d};export{s as IntersectionObserver,m as useInView};
|
|
2
2
|
//# sourceMappingURL=ct-design-intersection-observer.browser.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ct-design-intersection-observer.browser.esm.js","sources":["../packages/components/InterSectionObserver/src/IntersectionObserver.tsx","../packages/components/InterSectionObserver/src/useinView.ts"],"sourcesContent":[null,null],"names":["WebIntersectionObserver","children","onIntersection","onTimedObservationComplete","threshold","wrapped","viewed","useRef","intersected","intersectionRef","timeoutInstance","unobserve","useCallback","observer","current","handleIO","entries","entry","isIntersecting","intersectionRatio","clearTimeout","setTimeout","useEffect","IntersectionObserver","observe","_jsx","ref","_jsxs","_Fragment","
|
|
1
|
+
{"version":3,"file":"ct-design-intersection-observer.browser.esm.js","sources":["../packages/components/InterSectionObserver/src/IntersectionObserver.tsx","../packages/components/InterSectionObserver/src/useinView.ts"],"sourcesContent":[null,null],"names":["WebIntersectionObserver","children","onIntersection","onTimedObservationComplete","threshold","wrapped","viewed","useRef","intersected","intersectionRef","timeoutInstance","unobserve","useCallback","observer","current","handleIO","entries","entry","isIntersecting","intersectionRatio","clearTimeout","setTimeout","useEffect","IntersectionObserver","observe","_jsx","ref","_jsxs","_Fragment","useInView","onChange","onIntersectionComplete","observeOnScroll","onUnmount","visibleRef","timeoutVisibleRef","timeoutVisibleStartRef","start","end","triggerOnceValue","listId","useListItem","observerMethod","visibleItems","isScrolling","visibleItem","has","promiseHandler","add","Promise","resolve","addObservable","layout","X","Y","useAddObservableChild","handleUnmount","clear"],"mappings":"wUAIM,MAAAA,EAA+D,EACnEC,WACAC,iBACAC,6BACAC,YAAY,CAAC,IAAM,IACnBC,cAEA,MAAMC,EAASC,GAAgB,GACzBC,EAAcD,GAAgB,GAC9BE,EAAkBF,EAA8B,MAChDG,EAAkBH,EAA8B,MAEhDI,EAAYC,EACfC,IACKJ,EAAgBK,SAClBD,EAASF,UAAUF,EAAgBK,UAGvC,CAACL,IAGGM,EAAWH,EACf,CAACI,EAAsCH,KACrC,MAAMI,EAAQD,EAAQ,GAEtB,GAAIC,aAAK,EAALA,EAAOC,eAAgB,CACpBV,EAAYM,UACfZ,IACAM,EAAYM,SAAU,GAGxB,MAAMK,kBAAEA,GAAsBF,EAE1BE,GAAqB,IACnBT,EAAgBI,SAClBM,aAAaV,EAAgBI,SAE/BJ,EAAgBI,QAAUO,WAAW,KAC9Bf,EAAOQ,UACVH,EAAUE,GACVP,EAAOQ,SAAU,EACjBX,SAAAA,MAED,MACMO,EAAgBI,SACzBM,aAAaV,EAAgBI,QAEhC,MACKJ,EAAgBI,SAClBM,aAAaV,EAAgBI,UAInC,CAACZ,EAAgBC,EAA4BQ,IAiB/C,OAdAW,EAAU,KACR,MAAMT,EAAW,IAAIU,qBAAqBR,EAAU,CAClDX,cAOF,OAJIK,EAAgBK,SAClBD,EAASW,QAAQf,EAAgBK,SAG5B,KACLH,EAAUE,KAEX,CAACE,EAAUX,EAAWO,IAErBN,EACKoB,SAAKC,IAAKjB,EAAkBR,SAAAA,IAInC0B,EACEC,EAAA,CAAA3B,SAAA,CAAAwB,EAAA,MAAA,CAAKC,IAAKjB,IACTR,MCzED4B,EAAY,EAChBC,WACAC,yBACA5B,6BACA6B,mBAAkB,EAClBC,gBAEA,MAAMP,EAAMnB,EAAuB,MAC7B2B,EAAa3B,EAAO,GACpB4B,EAAoB5B,GAAO,GAC3B6B,EAAyB7B,EAAO,CAAE8B,MAAO,EAAGC,IAAK,IACjDC,EAAmBhC,GAAO,IAC1BiC,OAAEA,GAAWC,IAEbC,EAAiB9B,EACrB,CAAC+B,EAA4BC,KAC3B,GAAKZ,IAAmBY,EAAxB,CAGA,GAAID,EAAc,CAChB,MAAME,EAAcF,aAAY,EAAZA,EAAcG,IAAIN,GAMtC,OAJIK,IACF1C,SAAAA,KAGE0C,GAAsC,IAAvBX,EAAWpB,SAC5BoB,EAAWpB,QAAU,OACrBgB,SAAAA,GAAW,KAEDe,GAAsC,IAAvBX,EAAWpB,aAKtC,GAJEoB,EAAWpB,QAAU,OACrBiB,SAAAA,KAIH,CAEDgB,EAAeC,IAAI,IACV,IAAIC,QAAeC,IACnBxB,EAAIZ,SACPoC,MAIHxB,EAAIZ,QA3BN,GA6BH,CAAC0B,EAAQR,EAAiBF,EAAUC,EAAwB5B,IAGxDgD,EAAgBvC,EAAY,KACzB,CAAEY,QAASkB,EAAgBU,OAAQ,CAAEC,EAAG,EAAGC,EAAG,KACpD,CAACZ,IAEJa,EAAsBJ,GAEtB,MAAMK,EAAgB5C,EAAY,KAChCqB,SAAAA,IACAc,EAAeU,QACfvB,EAAWpB,QAAU,EACrBqB,EAAkBrB,SAAU,EAC5BsB,EAAuBtB,QAAQwB,IAAM,EACrCF,EAAuBtB,QAAQuB,MAAQ,EACvCE,EAAiBzB,SAAU,GAE1B,IAYH,OAVAQ,EAAU,KACRD,WAAW,KACTqB,KACC,KACI,KACLc,MAGD,CAACA,IAEG9B"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var react = require('react');
|
|
5
|
-
var reactNative = require('react-native');
|
|
6
5
|
var ctDesignScrollContainer = require('@cleartrip/ct-design-scroll-container');
|
|
7
6
|
var ctDesignList = require('@cleartrip/ct-design-list');
|
|
8
7
|
var ctDesignCommonUtils = require('@cleartrip/ct-design-common-utils');
|
|
@@ -64,92 +63,12 @@ const WebIntersectionObserver = ({ children, onIntersection, onTimedObservationC
|
|
|
64
63
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { ref: intersectionRef }), children] }));
|
|
65
64
|
};
|
|
66
65
|
|
|
67
|
-
const {
|
|
68
|
-
const calculateVisibility = (rectTop, rectBottom, rectHeight, rectLeft, rectRight, rectWidth, observerBox) => {
|
|
69
|
-
const [top, left, _height = height, _width = width] = observerBox;
|
|
70
|
-
let verticalVisibility = 0;
|
|
71
|
-
if (rectHeight) {
|
|
72
|
-
if (rectTop >= top && rectBottom <= _height) {
|
|
73
|
-
verticalVisibility = 100;
|
|
74
|
-
}
|
|
75
|
-
else if (rectTop < top) {
|
|
76
|
-
verticalVisibility = ((rectBottom - top) / rectHeight) * 100;
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
verticalVisibility = ((_height - rectTop) / rectHeight) * 100;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
const visibleHeight = rectTop > top && rectTop < _height ? rectTop - top : 0;
|
|
84
|
-
verticalVisibility = (visibleHeight / _height) * 100;
|
|
85
|
-
}
|
|
86
|
-
let horizontalVisibility = 0;
|
|
87
|
-
if (rectWidth) {
|
|
88
|
-
if (rectLeft >= left && rectRight <= _width) {
|
|
89
|
-
horizontalVisibility = 100;
|
|
90
|
-
}
|
|
91
|
-
else if (rectLeft < left) {
|
|
92
|
-
horizontalVisibility = ((rectRight - left) / rectWidth) * 100;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
horizontalVisibility = ((_width - rectLeft) / rectWidth) * 100;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
const visibleWidth = rectLeft > left && rectLeft < _width ? rectLeft - left : 0;
|
|
100
|
-
horizontalVisibility = (visibleWidth / _width) * 100;
|
|
101
|
-
}
|
|
102
|
-
return { verticalVisibility, horizontalVisibility };
|
|
103
|
-
};
|
|
104
|
-
const handleVisibilityChange = (visibility, threshold, state, callbacks) => {
|
|
105
|
-
const { visibleRef, timeoutVisibleRef, timeoutVisibleStartRef, triggerOnceValue } = state;
|
|
106
|
-
const { onChange, onIntersectionComplete, onTimedObservationComplete, triggerOnce, minimumObservationTime, observerMethod, } = callbacks;
|
|
107
|
-
if (visibility === 0) {
|
|
108
|
-
if (visibleRef.current > 0) {
|
|
109
|
-
onIntersectionComplete === null || onIntersectionComplete === void 0 ? void 0 : onIntersectionComplete();
|
|
110
|
-
}
|
|
111
|
-
visibleRef.current = 0;
|
|
112
|
-
timeoutVisibleRef.current = false;
|
|
113
|
-
timeoutVisibleStartRef.current.end = 0;
|
|
114
|
-
timeoutVisibleStartRef.current.start = 0;
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
const thresholdVisibility = threshold[visibleRef.current] * 100;
|
|
118
|
-
if (visibility >= thresholdVisibility) {
|
|
119
|
-
if (!triggerOnceValue.current) {
|
|
120
|
-
timeoutVisibleRef.current = true;
|
|
121
|
-
visibleRef.current = visibleRef.current + 1;
|
|
122
|
-
if (timeoutVisibleStartRef.current.start === 0) {
|
|
123
|
-
timeoutVisibleStartRef.current.start = Date.now();
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
timeoutVisibleStartRef.current.end = Date.now();
|
|
127
|
-
}
|
|
128
|
-
if (triggerOnce) {
|
|
129
|
-
triggerOnceValue.current = true;
|
|
130
|
-
}
|
|
131
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(true);
|
|
132
|
-
setTimeout(() => {
|
|
133
|
-
observerMethod === null || observerMethod === void 0 ? void 0 : observerMethod();
|
|
134
|
-
}, minimumObservationTime);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
if (timeoutVisibleRef.current &&
|
|
138
|
-
timeoutVisibleStartRef.current.start > 0 &&
|
|
139
|
-
Date.now() - timeoutVisibleStartRef.current.start >= minimumObservationTime) {
|
|
140
|
-
timeoutVisibleRef.current = false;
|
|
141
|
-
onTimedObservationComplete === null || onTimedObservationComplete === void 0 ? void 0 : onTimedObservationComplete();
|
|
142
|
-
timeoutVisibleStartRef.current.end = -1;
|
|
143
|
-
timeoutVisibleStartRef.current.start = -1;
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
const useInView = ({ threshold = [0.01, 0.5], timedThreshold = 1000, onChange, onIntersectionComplete, onTimedObservationComplete, minimumObservationTime = timedThreshold, observerBox = [0, 0, height, width], gestureHorizontallyScrollable = false, triggerOnce = false, observeOnScroll = false, onUnmount, checkFullVisibility = false, }) => {
|
|
66
|
+
const useInView = ({ onChange, onIntersectionComplete, onTimedObservationComplete, observeOnScroll = false, onUnmount, }) => {
|
|
147
67
|
const ref = react.useRef(null);
|
|
148
68
|
const visibleRef = react.useRef(0);
|
|
149
69
|
const timeoutVisibleRef = react.useRef(false);
|
|
150
70
|
const timeoutVisibleStartRef = react.useRef({ start: 0, end: 0 });
|
|
151
71
|
const triggerOnceValue = react.useRef(false);
|
|
152
|
-
const { horizontal } = ctDesignScrollContainer.useGetScrolling();
|
|
153
72
|
const { listId } = ctDesignList.useListItem();
|
|
154
73
|
const observerMethod = react.useCallback((visibleItems, isScrolling) => {
|
|
155
74
|
if (!observeOnScroll && isScrolling) {
|
|
@@ -174,61 +93,13 @@ const useInView = ({ threshold = [0.01, 0.5], timedThreshold = 1000, onChange, o
|
|
|
174
93
|
}
|
|
175
94
|
ctDesignCommonUtils.promiseHandler.add(() => {
|
|
176
95
|
return new Promise((resolve) => {
|
|
177
|
-
var _a;
|
|
178
96
|
if (!ref.current) {
|
|
179
97
|
resolve();
|
|
180
98
|
return;
|
|
181
99
|
}
|
|
182
|
-
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.measure((_x, _y, width, height, pageX, pageY) => {
|
|
183
|
-
const { verticalVisibility, horizontalVisibility } = calculateVisibility(pageY, pageY + height, height, pageX, pageX + width, width, observerBox);
|
|
184
|
-
const visiblePercentage = threshold[0] * 100;
|
|
185
|
-
const isVisible = horizontal || gestureHorizontallyScrollable
|
|
186
|
-
? horizontalVisibility >= visiblePercentage
|
|
187
|
-
: verticalVisibility >= visiblePercentage;
|
|
188
|
-
const visibility = horizontal ? horizontalVisibility : verticalVisibility;
|
|
189
|
-
const totalVisibility = (horizontalVisibility * verticalVisibility) / 100;
|
|
190
|
-
const isTotalVisible = totalVisibility >= visiblePercentage;
|
|
191
|
-
const state = {
|
|
192
|
-
visibleRef,
|
|
193
|
-
timeoutVisibleRef,
|
|
194
|
-
timeoutVisibleStartRef,
|
|
195
|
-
triggerOnceValue,
|
|
196
|
-
};
|
|
197
|
-
const callbacks = {
|
|
198
|
-
onChange,
|
|
199
|
-
onIntersectionComplete,
|
|
200
|
-
onTimedObservationComplete,
|
|
201
|
-
triggerOnce,
|
|
202
|
-
minimumObservationTime,
|
|
203
|
-
observerMethod,
|
|
204
|
-
};
|
|
205
|
-
if (isTotalVisible) {
|
|
206
|
-
handleVisibilityChange(totalVisibility, threshold, state, callbacks);
|
|
207
|
-
}
|
|
208
|
-
else if (!checkFullVisibility && isVisible) {
|
|
209
|
-
handleVisibilityChange(visibility, threshold, state, callbacks);
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
handleVisibilityChange(0, threshold, state, callbacks);
|
|
213
|
-
}
|
|
214
|
-
resolve();
|
|
215
|
-
});
|
|
216
100
|
});
|
|
217
101
|
}, ref.current);
|
|
218
|
-
}, [
|
|
219
|
-
checkFullVisibility,
|
|
220
|
-
gestureHorizontallyScrollable,
|
|
221
|
-
horizontal,
|
|
222
|
-
listId,
|
|
223
|
-
minimumObservationTime,
|
|
224
|
-
observeOnScroll,
|
|
225
|
-
observerBox,
|
|
226
|
-
onChange,
|
|
227
|
-
onIntersectionComplete,
|
|
228
|
-
onTimedObservationComplete,
|
|
229
|
-
threshold,
|
|
230
|
-
triggerOnce,
|
|
231
|
-
]);
|
|
102
|
+
}, [listId, observeOnScroll, onChange, onIntersectionComplete, onTimedObservationComplete]);
|
|
232
103
|
const addObservable = react.useCallback(() => {
|
|
233
104
|
return { observe: observerMethod, layout: { X: 0, Y: 0 } };
|
|
234
105
|
}, [observerMethod]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ct-design-intersection-observer.cjs.js","sources":["../packages/components/InterSectionObserver/src/IntersectionObserver.tsx","../packages/components/InterSectionObserver/src/useinView.ts"],"sourcesContent":[null,null],"names":["useRef","useCallback","useEffect","_jsx","_jsxs","_Fragment","
|
|
1
|
+
{"version":3,"file":"ct-design-intersection-observer.cjs.js","sources":["../packages/components/InterSectionObserver/src/IntersectionObserver.tsx","../packages/components/InterSectionObserver/src/useinView.ts"],"sourcesContent":[null,null],"names":["useRef","useCallback","useEffect","_jsx","_jsxs","_Fragment","useListItem","promiseHandler","useAddObservableChild"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useRef, useCallback, useEffect } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import { useGetScrolling, useAddObservableChild } from '@cleartrip/ct-design-scroll-container';
|
|
3
|
+
import { useAddObservableChild } from '@cleartrip/ct-design-scroll-container';
|
|
5
4
|
import { useListItem } from '@cleartrip/ct-design-list';
|
|
6
5
|
import { promiseHandler } from '@cleartrip/ct-design-common-utils';
|
|
7
6
|
|
|
@@ -62,92 +61,12 @@ const WebIntersectionObserver = ({ children, onIntersection, onTimedObservationC
|
|
|
62
61
|
return (jsxs(Fragment, { children: [jsx("div", { ref: intersectionRef }), children] }));
|
|
63
62
|
};
|
|
64
63
|
|
|
65
|
-
const {
|
|
66
|
-
const calculateVisibility = (rectTop, rectBottom, rectHeight, rectLeft, rectRight, rectWidth, observerBox) => {
|
|
67
|
-
const [top, left, _height = height, _width = width] = observerBox;
|
|
68
|
-
let verticalVisibility = 0;
|
|
69
|
-
if (rectHeight) {
|
|
70
|
-
if (rectTop >= top && rectBottom <= _height) {
|
|
71
|
-
verticalVisibility = 100;
|
|
72
|
-
}
|
|
73
|
-
else if (rectTop < top) {
|
|
74
|
-
verticalVisibility = ((rectBottom - top) / rectHeight) * 100;
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
verticalVisibility = ((_height - rectTop) / rectHeight) * 100;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
const visibleHeight = rectTop > top && rectTop < _height ? rectTop - top : 0;
|
|
82
|
-
verticalVisibility = (visibleHeight / _height) * 100;
|
|
83
|
-
}
|
|
84
|
-
let horizontalVisibility = 0;
|
|
85
|
-
if (rectWidth) {
|
|
86
|
-
if (rectLeft >= left && rectRight <= _width) {
|
|
87
|
-
horizontalVisibility = 100;
|
|
88
|
-
}
|
|
89
|
-
else if (rectLeft < left) {
|
|
90
|
-
horizontalVisibility = ((rectRight - left) / rectWidth) * 100;
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
horizontalVisibility = ((_width - rectLeft) / rectWidth) * 100;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
const visibleWidth = rectLeft > left && rectLeft < _width ? rectLeft - left : 0;
|
|
98
|
-
horizontalVisibility = (visibleWidth / _width) * 100;
|
|
99
|
-
}
|
|
100
|
-
return { verticalVisibility, horizontalVisibility };
|
|
101
|
-
};
|
|
102
|
-
const handleVisibilityChange = (visibility, threshold, state, callbacks) => {
|
|
103
|
-
const { visibleRef, timeoutVisibleRef, timeoutVisibleStartRef, triggerOnceValue } = state;
|
|
104
|
-
const { onChange, onIntersectionComplete, onTimedObservationComplete, triggerOnce, minimumObservationTime, observerMethod, } = callbacks;
|
|
105
|
-
if (visibility === 0) {
|
|
106
|
-
if (visibleRef.current > 0) {
|
|
107
|
-
onIntersectionComplete === null || onIntersectionComplete === void 0 ? void 0 : onIntersectionComplete();
|
|
108
|
-
}
|
|
109
|
-
visibleRef.current = 0;
|
|
110
|
-
timeoutVisibleRef.current = false;
|
|
111
|
-
timeoutVisibleStartRef.current.end = 0;
|
|
112
|
-
timeoutVisibleStartRef.current.start = 0;
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
const thresholdVisibility = threshold[visibleRef.current] * 100;
|
|
116
|
-
if (visibility >= thresholdVisibility) {
|
|
117
|
-
if (!triggerOnceValue.current) {
|
|
118
|
-
timeoutVisibleRef.current = true;
|
|
119
|
-
visibleRef.current = visibleRef.current + 1;
|
|
120
|
-
if (timeoutVisibleStartRef.current.start === 0) {
|
|
121
|
-
timeoutVisibleStartRef.current.start = Date.now();
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
timeoutVisibleStartRef.current.end = Date.now();
|
|
125
|
-
}
|
|
126
|
-
if (triggerOnce) {
|
|
127
|
-
triggerOnceValue.current = true;
|
|
128
|
-
}
|
|
129
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(true);
|
|
130
|
-
setTimeout(() => {
|
|
131
|
-
observerMethod === null || observerMethod === void 0 ? void 0 : observerMethod();
|
|
132
|
-
}, minimumObservationTime);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
if (timeoutVisibleRef.current &&
|
|
136
|
-
timeoutVisibleStartRef.current.start > 0 &&
|
|
137
|
-
Date.now() - timeoutVisibleStartRef.current.start >= minimumObservationTime) {
|
|
138
|
-
timeoutVisibleRef.current = false;
|
|
139
|
-
onTimedObservationComplete === null || onTimedObservationComplete === void 0 ? void 0 : onTimedObservationComplete();
|
|
140
|
-
timeoutVisibleStartRef.current.end = -1;
|
|
141
|
-
timeoutVisibleStartRef.current.start = -1;
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
const useInView = ({ threshold = [0.01, 0.5], timedThreshold = 1000, onChange, onIntersectionComplete, onTimedObservationComplete, minimumObservationTime = timedThreshold, observerBox = [0, 0, height, width], gestureHorizontallyScrollable = false, triggerOnce = false, observeOnScroll = false, onUnmount, checkFullVisibility = false, }) => {
|
|
64
|
+
const useInView = ({ onChange, onIntersectionComplete, onTimedObservationComplete, observeOnScroll = false, onUnmount, }) => {
|
|
145
65
|
const ref = useRef(null);
|
|
146
66
|
const visibleRef = useRef(0);
|
|
147
67
|
const timeoutVisibleRef = useRef(false);
|
|
148
68
|
const timeoutVisibleStartRef = useRef({ start: 0, end: 0 });
|
|
149
69
|
const triggerOnceValue = useRef(false);
|
|
150
|
-
const { horizontal } = useGetScrolling();
|
|
151
70
|
const { listId } = useListItem();
|
|
152
71
|
const observerMethod = useCallback((visibleItems, isScrolling) => {
|
|
153
72
|
if (!observeOnScroll && isScrolling) {
|
|
@@ -172,61 +91,13 @@ const useInView = ({ threshold = [0.01, 0.5], timedThreshold = 1000, onChange, o
|
|
|
172
91
|
}
|
|
173
92
|
promiseHandler.add(() => {
|
|
174
93
|
return new Promise((resolve) => {
|
|
175
|
-
var _a;
|
|
176
94
|
if (!ref.current) {
|
|
177
95
|
resolve();
|
|
178
96
|
return;
|
|
179
97
|
}
|
|
180
|
-
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.measure((_x, _y, width, height, pageX, pageY) => {
|
|
181
|
-
const { verticalVisibility, horizontalVisibility } = calculateVisibility(pageY, pageY + height, height, pageX, pageX + width, width, observerBox);
|
|
182
|
-
const visiblePercentage = threshold[0] * 100;
|
|
183
|
-
const isVisible = horizontal || gestureHorizontallyScrollable
|
|
184
|
-
? horizontalVisibility >= visiblePercentage
|
|
185
|
-
: verticalVisibility >= visiblePercentage;
|
|
186
|
-
const visibility = horizontal ? horizontalVisibility : verticalVisibility;
|
|
187
|
-
const totalVisibility = (horizontalVisibility * verticalVisibility) / 100;
|
|
188
|
-
const isTotalVisible = totalVisibility >= visiblePercentage;
|
|
189
|
-
const state = {
|
|
190
|
-
visibleRef,
|
|
191
|
-
timeoutVisibleRef,
|
|
192
|
-
timeoutVisibleStartRef,
|
|
193
|
-
triggerOnceValue,
|
|
194
|
-
};
|
|
195
|
-
const callbacks = {
|
|
196
|
-
onChange,
|
|
197
|
-
onIntersectionComplete,
|
|
198
|
-
onTimedObservationComplete,
|
|
199
|
-
triggerOnce,
|
|
200
|
-
minimumObservationTime,
|
|
201
|
-
observerMethod,
|
|
202
|
-
};
|
|
203
|
-
if (isTotalVisible) {
|
|
204
|
-
handleVisibilityChange(totalVisibility, threshold, state, callbacks);
|
|
205
|
-
}
|
|
206
|
-
else if (!checkFullVisibility && isVisible) {
|
|
207
|
-
handleVisibilityChange(visibility, threshold, state, callbacks);
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
handleVisibilityChange(0, threshold, state, callbacks);
|
|
211
|
-
}
|
|
212
|
-
resolve();
|
|
213
|
-
});
|
|
214
98
|
});
|
|
215
99
|
}, ref.current);
|
|
216
|
-
}, [
|
|
217
|
-
checkFullVisibility,
|
|
218
|
-
gestureHorizontallyScrollable,
|
|
219
|
-
horizontal,
|
|
220
|
-
listId,
|
|
221
|
-
minimumObservationTime,
|
|
222
|
-
observeOnScroll,
|
|
223
|
-
observerBox,
|
|
224
|
-
onChange,
|
|
225
|
-
onIntersectionComplete,
|
|
226
|
-
onTimedObservationComplete,
|
|
227
|
-
threshold,
|
|
228
|
-
triggerOnce,
|
|
229
|
-
]);
|
|
100
|
+
}, [listId, observeOnScroll, onChange, onIntersectionComplete, onTimedObservationComplete]);
|
|
230
101
|
const addObservable = useCallback(() => {
|
|
231
102
|
return { observe: observerMethod, layout: { X: 0, Y: 0 } };
|
|
232
103
|
}, [observerMethod]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ct-design-intersection-observer.esm.js","sources":["../packages/components/InterSectionObserver/src/IntersectionObserver.tsx","../packages/components/InterSectionObserver/src/useinView.ts"],"sourcesContent":[null,null],"names":["_jsx","_jsxs","_Fragment"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ct-design-intersection-observer.esm.js","sources":["../packages/components/InterSectionObserver/src/IntersectionObserver.tsx","../packages/components/InterSectionObserver/src/useinView.ts"],"sourcesContent":[null,null],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|