@koine/react 2.0.0-beta.133 → 2.0.0-beta.134
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/FaviconTags.cjs.js +1 -10
- package/FaviconTags.esm.js +1 -10
- package/Meta.cjs.js +1 -10
- package/Meta.esm.js +1 -10
- package/NoJs.cjs.js +1 -1
- package/NoJs.esm.js +1 -1
- package/calendar/CalendarDaygridCell.cjs.js +1 -20
- package/calendar/CalendarDaygridCell.esm.js +1 -20
- package/calendar/CalendarDaygridNav.cjs.js +1 -1
- package/calendar/CalendarDaygridNav.esm.js +1 -1
- package/calendar/CalendarDaygridTable.cjs.js +1 -4
- package/calendar/CalendarDaygridTable.esm.js +1 -4
- package/calendar/CalendarLegend.cjs.js +1 -8
- package/calendar/CalendarLegend.esm.js +1 -8
- package/calendar/calendar-api-google.cjs.js +1 -15
- package/calendar/calendar-api-google.esm.js +1 -15
- package/calendar/useCalendar.cjs.js +1 -13
- package/calendar/useCalendar.esm.js +1 -13
- package/calendar/useDateLocale.cjs.js +1 -18
- package/calendar/useDateLocale.esm.js +1 -18
- package/calendar/utils.cjs.js +1 -18
- package/calendar/utils.esm.js +1 -18
- package/classed.cjs.js +1 -42
- package/classed.esm.js +1 -42
- package/createUseMediaQueryWidth.cjs.js +1 -15
- package/createUseMediaQueryWidth.esm.js +1 -15
- package/extendComponent.cjs.js +1 -5
- package/extendComponent.esm.js +1 -5
- package/forms/antispam.cjs.js +1 -27
- package/forms/antispam.d.ts +2 -2
- package/forms/antispam.esm.js +1 -27
- package/package.json +3 -3
- package/useAsyncFn.cjs.js +1 -4
- package/useAsyncFn.esm.js +1 -4
- package/useFirstMountState.cjs.js +1 -3
- package/useFirstMountState.esm.js +1 -3
- package/useFixedOffset.cjs.js +1 -12
- package/useFixedOffset.esm.js +1 -12
- package/useFocus.cjs.js +1 -3
- package/useFocus.esm.js +1 -3
- package/useInterval.cjs.js +1 -6
- package/useInterval.esm.js +1 -6
- package/useIsomorphicLayoutEffect.cjs.js +1 -3
- package/useIsomorphicLayoutEffect.esm.js +1 -3
- package/useKeyUp.cjs.js +1 -6
- package/useKeyUp.esm.js +1 -6
- package/useMeasure.cjs.js +1 -33
- package/useMeasure.esm.js +1 -33
- package/useMountedState.cjs.js +1 -3
- package/useMountedState.esm.js +1 -3
- package/useNavigateAway.cjs.js +1 -47
- package/useNavigateAway.esm.js +1 -47
- package/useScrollPosition.cjs.js +1 -7
- package/useScrollPosition.esm.js +1 -7
- package/useScrollThreshold.cjs.js +1 -4
- package/useScrollThreshold.esm.js +1 -4
- package/useScrollTo.cjs.js +1 -3
- package/useScrollTo.esm.js +1 -3
- package/useSmoothScroll.cjs.js +1 -6
- package/useSmoothScroll.esm.js +1 -6
- package/useSpinDelay.cjs.js +1 -12
- package/useSpinDelay.esm.js +1 -12
- package/useTraceUpdate.cjs.js +1 -4
- package/useTraceUpdate.esm.js +1 -4
- package/useUpdateEffect.cjs.js +1 -4
- package/useUpdateEffect.esm.js +1 -4
- package/useWindowSize.cjs.js +1 -9
- package/useWindowSize.d.ts +3 -3
- package/useWindowSize.esm.js +1 -9
package/useNavigateAway.esm.js
CHANGED
|
@@ -1,52 +1,6 @@
|
|
|
1
1
|
import { useRef, useEffect } from 'react';
|
|
2
2
|
import { on } from '@koine/dom';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
// (() => unknown) | undefined,
|
|
6
|
-
// (() => unknown) | undefined,
|
|
7
|
-
// ];
|
|
8
|
-
// type UseNavigateAwayPagehideHandler = (event: PageTransitionEvent) => unknown;
|
|
9
|
-
/**
|
|
10
|
-
* @resources
|
|
11
|
-
*
|
|
12
|
-
* About browser's specs see:
|
|
13
|
-
* - https://developer.mozilla.org/en-US/docs/Web/API/Window/pagehide_event
|
|
14
|
-
* - https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW5
|
|
15
|
-
* - https://stackoverflow.com/questions/58009424/pagehide-event-on-google-chrome
|
|
16
|
-
*
|
|
17
|
-
* About react see:
|
|
18
|
-
* - https://github.com/jacobbuck/react-beforeunload
|
|
19
|
-
* - https://github.com/dioscarey/react-beforeunload-component
|
|
20
|
-
*
|
|
21
|
-
* About next.js see:
|
|
22
|
-
* - https://github.com/vercel/next.js/issues/2476
|
|
23
|
-
* - https://github.com/vercel/next.js/issues/2694
|
|
24
|
-
*
|
|
25
|
-
* For the callback technique see:
|
|
26
|
-
* - https://stackoverflow.com/a/11835394/1938970
|
|
27
|
-
*/let useNavigateAway=a=>{let o=useRef();// const pagehideHandlerRef = useRef<UseNavigateAwayPagehideHandler | undefined>();
|
|
28
|
-
useEffect(()=>{o.current=e=>{let t=a(e);return(// Handle legacy `event.returnValue` property
|
|
29
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
|
|
30
|
-
(t&&e.preventDefault(),"string"==typeof t)?e.returnValue=t:// Chrome doesn't support `event.preventDefault()` on `BeforeUnloadEvent`,
|
|
31
|
-
// instead it requires `event.returnValue` to be set
|
|
32
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#browser_compatibility
|
|
33
|
-
e.defaultPrevented?e.returnValue="":void 0)};},// pagehideHandlerRef.current = (event) => {
|
|
34
|
-
// const returnValue = handler?.(event);
|
|
35
|
-
// if (event.persisted) {
|
|
36
|
-
// // If the event's persisted property is `true` the page is about
|
|
37
|
-
// // to enter the Back-Forward Cache, which is also in the frozen state.
|
|
38
|
-
// } else {
|
|
39
|
-
// // If the event's persisted property is not `true` the page is
|
|
40
|
-
// // about to be unloaded.
|
|
41
|
-
// }
|
|
42
|
-
// };
|
|
43
|
-
[a]),useEffect(()=>on(window,"beforeunload",e=>o.current?.(e)),// const listenerPagehide = on(window, "pagehide", (event) =>
|
|
44
|
-
// pagehideHandlerRef.current?.(event)
|
|
45
|
-
// );
|
|
46
|
-
// return () => {
|
|
47
|
-
// listenerBeforeunload();
|
|
48
|
-
// // listenerPagehide();
|
|
49
|
-
// };
|
|
50
|
-
[]);};
|
|
4
|
+
let useNavigateAway=a=>{let o=useRef();useEffect(()=>{o.current=e=>{let t=a(e);return (t&&e.preventDefault(),"string"==typeof t)?e.returnValue=t:e.defaultPrevented?e.returnValue="":void 0};},[a]),useEffect(()=>on(window,"beforeunload",e=>o.current?.(e)),[]);};
|
|
51
5
|
|
|
52
6
|
export { useNavigateAway as default, useNavigateAway };
|
package/useScrollPosition.cjs.js
CHANGED
|
@@ -7,13 +7,7 @@ var utils = require('@koine/utils');
|
|
|
7
7
|
var dom = require('@koine/dom');
|
|
8
8
|
var useIsomorphicLayoutEffect = require('./useIsomorphicLayoutEffect.cjs.js');
|
|
9
9
|
|
|
10
|
-
let l={x:0,y:0},n=t=>t?.getBoundingClientRect(),u=(t,e)=>{if(!utils.isBrowser)return l;if(!e)return {x:window.scrollX,y:window.scrollY};let o=n(t?.current||document.body),u=n(e.current);return o?u?{x:(u.x||0)-(o.x||0),y:(u.y||0)-(o.y||0)}:{x:o.left,y:o.top}:l}
|
|
11
|
-
* @borrows [@n8tb1t/use-scroll-position@2.0.3](https://github.com/n8tb1t/use-scroll-position) by `n8tb1t <n8tb1t@gmail.com>`
|
|
12
|
-
*
|
|
13
|
-
* We've just:
|
|
14
|
-
* - reused internal helper functions
|
|
15
|
-
* - compacted object arguments in functions as plain argument list to improve compression
|
|
16
|
-
*/let useScrollPosition=(l,n=[],i,c,m)=>{let f=react.useRef(u(null,c)),s=null,d=()=>{let t=u(i,c);l(t,f.current),f.current=t,s=null;};useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(()=>{if(!utils.isBrowser)return;let t=dom.listenScroll(()=>{m?null===s&&(s=window.setTimeout(d,m)):d();},c?.current);return ()=>{t(),s&&clearTimeout(s);}},n);};
|
|
10
|
+
let l={x:0,y:0},n=t=>t?.getBoundingClientRect(),u=(t,e)=>{if(!utils.isBrowser)return l;if(!e)return {x:window.scrollX,y:window.scrollY};let o=n(t?.current||document.body),u=n(e.current);return o?u?{x:(u.x||0)-(o.x||0),y:(u.y||0)-(o.y||0)}:{x:o.left,y:o.top}:l};let useScrollPosition=(l,n=[],i,c,m)=>{let f=react.useRef(u(null,c)),s=null,d=()=>{let t=u(i,c);l(t,f.current),f.current=t,s=null;};useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(()=>{if(!utils.isBrowser)return;let t=dom.listenScroll(()=>{m?null===s&&(s=window.setTimeout(d,m)):d();},c?.current);return ()=>{t(),s&&clearTimeout(s);}},n);};
|
|
17
11
|
|
|
18
12
|
exports.default = useScrollPosition;
|
|
19
13
|
exports.useScrollPosition = useScrollPosition;
|
package/useScrollPosition.esm.js
CHANGED
|
@@ -3,12 +3,6 @@ import { isBrowser } from '@koine/utils';
|
|
|
3
3
|
import { listenScroll } from '@koine/dom';
|
|
4
4
|
import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.esm.js';
|
|
5
5
|
|
|
6
|
-
let l={x:0,y:0},n=t=>t?.getBoundingClientRect(),u=(t,e)=>{if(!isBrowser)return l;if(!e)return {x:window.scrollX,y:window.scrollY};let o=n(t?.current||document.body),u=n(e.current);return o?u?{x:(u.x||0)-(o.x||0),y:(u.y||0)-(o.y||0)}:{x:o.left,y:o.top}:l}
|
|
7
|
-
* @borrows [@n8tb1t/use-scroll-position@2.0.3](https://github.com/n8tb1t/use-scroll-position) by `n8tb1t <n8tb1t@gmail.com>`
|
|
8
|
-
*
|
|
9
|
-
* We've just:
|
|
10
|
-
* - reused internal helper functions
|
|
11
|
-
* - compacted object arguments in functions as plain argument list to improve compression
|
|
12
|
-
*/let useScrollPosition=(l,n=[],i,c,m)=>{let f=useRef(u(null,c)),s=null,d=()=>{let t=u(i,c);l(t,f.current),f.current=t,s=null;};useIsomorphicLayoutEffect(()=>{if(!isBrowser)return;let t=listenScroll(()=>{m?null===s&&(s=window.setTimeout(d,m)):d();},c?.current);return ()=>{t(),s&&clearTimeout(s);}},n);};
|
|
6
|
+
let l={x:0,y:0},n=t=>t?.getBoundingClientRect(),u=(t,e)=>{if(!isBrowser)return l;if(!e)return {x:window.scrollX,y:window.scrollY};let o=n(t?.current||document.body),u=n(e.current);return o?u?{x:(u.x||0)-(o.x||0),y:(u.y||0)-(o.y||0)}:{x:o.left,y:o.top}:l};let useScrollPosition=(l,n=[],i,c,m)=>{let f=useRef(u(null,c)),s=null,d=()=>{let t=u(i,c);l(t,f.current),f.current=t,s=null;};useIsomorphicLayoutEffect(()=>{if(!isBrowser)return;let t=listenScroll(()=>{m?null===s&&(s=window.setTimeout(d,m)):d();},c?.current);return ()=>{t(),s&&clearTimeout(s);}},n);};
|
|
13
7
|
|
|
14
8
|
export { useScrollPosition as default, useScrollPosition };
|
|
@@ -6,10 +6,7 @@ var react = require('react');
|
|
|
6
6
|
var utils = require('@koine/utils');
|
|
7
7
|
var dom = require('@koine/dom');
|
|
8
8
|
|
|
9
|
-
let useScrollThreshold=(i,m)=>{let[u,f]=react.useState(!1),n=react.useCallback(()=>{if(i){let r=window.scrollY
|
|
10
|
-
e=r<i,o=r>i;// console.log("useScrollThreshold setIsBelow", isBelow, posY, threshold);
|
|
11
|
-
f(o),m&&m(e,o);}},[i,m]);return react.useEffect(()=>{if(i){// const listener = listenScrollThrottled(0, handler, 50);
|
|
12
|
-
let r=dom.listenScroll(n);return n(),r}return utils.noop},[i,n]),u};
|
|
9
|
+
let useScrollThreshold=(i,m)=>{let[u,f]=react.useState(!1),n=react.useCallback(()=>{if(i){let r=window.scrollY,e=r<i,o=r>i;f(o),m&&m(e,o);}},[i,m]);return react.useEffect(()=>{if(i){let r=dom.listenScroll(n);return n(),r}return utils.noop},[i,n]),u};
|
|
13
10
|
|
|
14
11
|
exports.default = useScrollThreshold;
|
|
15
12
|
exports.useScrollThreshold = useScrollThreshold;
|
|
@@ -2,9 +2,6 @@ import { useState, useCallback, useEffect } from 'react';
|
|
|
2
2
|
import { noop } from '@koine/utils';
|
|
3
3
|
import { listenScroll } from '@koine/dom';
|
|
4
4
|
|
|
5
|
-
let useScrollThreshold=(i,m)=>{let[u,f]=useState(!1),n=useCallback(()=>{if(i){let r=window.scrollY
|
|
6
|
-
e=r<i,o=r>i;// console.log("useScrollThreshold setIsBelow", isBelow, posY, threshold);
|
|
7
|
-
f(o),m&&m(e,o);}},[i,m]);return useEffect(()=>{if(i){// const listener = listenScrollThrottled(0, handler, 50);
|
|
8
|
-
let r=listenScroll(n);return n(),r}return noop},[i,n]),u};
|
|
5
|
+
let useScrollThreshold=(i,m)=>{let[u,f]=useState(!1),n=useCallback(()=>{if(i){let r=window.scrollY,e=r<i,o=r>i;f(o),m&&m(e,o);}},[i,m]);return useEffect(()=>{if(i){let r=listenScroll(n);return n(),r}return noop},[i,n]),u};
|
|
9
6
|
|
|
10
7
|
export { useScrollThreshold as default, useScrollThreshold };
|
package/useScrollTo.cjs.js
CHANGED
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var utils = require('@koine/utils');
|
|
6
6
|
|
|
7
|
-
let useScrollTo=(o="",t=0)=>{
|
|
8
|
-
// const [, , headerHeight] = useHeader();
|
|
9
|
-
if(!utils.isBrowser)return;let l=document.getElementById(o),r=0;if(l&&l.offsetParent)do r+=l.offsetTop;while(l=l.offsetParent)r-=t,r-=/* headerHeight || */0,window.scroll(0,r);};
|
|
7
|
+
let useScrollTo=(o="",t=0)=>{if(!utils.isBrowser)return;let l=document.getElementById(o),r=0;if(l&&l.offsetParent)do r+=l.offsetTop;while(l=l.offsetParent)r-=t,r-=0,window.scroll(0,r);};
|
|
10
8
|
|
|
11
9
|
exports.default = useScrollTo;
|
|
12
10
|
exports.useScrollTo = useScrollTo;
|
package/useScrollTo.esm.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { isBrowser } from '@koine/utils';
|
|
2
2
|
|
|
3
|
-
let useScrollTo=(o="",t=0)=>{
|
|
4
|
-
// const [, , headerHeight] = useHeader();
|
|
5
|
-
if(!isBrowser)return;let l=document.getElementById(o),r=0;if(l&&l.offsetParent)do r+=l.offsetTop;while(l=l.offsetParent)r-=t,r-=/* headerHeight || */0,window.scroll(0,r);};
|
|
3
|
+
let useScrollTo=(o="",t=0)=>{if(!isBrowser)return;let l=document.getElementById(o),r=0;if(l&&l.offsetParent)do r+=l.offsetTop;while(l=l.offsetParent)r-=t,r-=0,window.scroll(0,r);};
|
|
6
4
|
|
|
7
5
|
export { useScrollTo as default, useScrollTo };
|
package/useSmoothScroll.cjs.js
CHANGED
|
@@ -7,12 +7,7 @@ var utils = require('@koine/utils');
|
|
|
7
7
|
var dom = require('@koine/dom');
|
|
8
8
|
var useFixedOffset = require('./useFixedOffset.cjs.js');
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
*
|
|
12
|
-
* @param disregardAutomaticFixedOffset When the `to` scroll argument is a DOM
|
|
13
|
-
* selector we will keep into account the _fixedOffset_ despite this option.
|
|
14
|
-
* @returns
|
|
15
|
-
*/let useSmoothScroll=m=>{let i=useFixedOffset.useFixedOffset();return react.useCallback((e,l,f,u,n)=>{let c;let p=!1;if(utils.isNumber(e))c=e;else if(e){let t=document.getElementById(e);t&&(c=dom.getOffsetTopSlim(t)-i.current,p=!0);}utils.isNumber(c)&&dom.scrollTo(c=c+(l||0)+(m||p?0:i.current),f,u,n);},[m,i])};
|
|
10
|
+
let useSmoothScroll=m=>{let i=useFixedOffset.useFixedOffset();return react.useCallback((e,l,f,u,n)=>{let c;let p=!1;if(utils.isNumber(e))c=e;else if(e){let t=document.getElementById(e);t&&(c=dom.getOffsetTopSlim(t)-i.current,p=!0);}utils.isNumber(c)&&dom.scrollTo(c=c+(l||0)+(m||p?0:i.current),f,u,n);},[m,i])};
|
|
16
11
|
|
|
17
12
|
exports.default = useSmoothScroll;
|
|
18
13
|
exports.useSmoothScroll = useSmoothScroll;
|
package/useSmoothScroll.esm.js
CHANGED
|
@@ -3,11 +3,6 @@ import { isNumber } from '@koine/utils';
|
|
|
3
3
|
import { getOffsetTopSlim, scrollTo } from '@koine/dom';
|
|
4
4
|
import { useFixedOffset } from './useFixedOffset.esm.js';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* @param disregardAutomaticFixedOffset When the `to` scroll argument is a DOM
|
|
9
|
-
* selector we will keep into account the _fixedOffset_ despite this option.
|
|
10
|
-
* @returns
|
|
11
|
-
*/let useSmoothScroll=m=>{let i=useFixedOffset();return useCallback((e,l,f,u,n)=>{let c;let p=!1;if(isNumber(e))c=e;else if(e){let t=document.getElementById(e);t&&(c=getOffsetTopSlim(t)-i.current,p=!0);}isNumber(c)&&scrollTo(c=c+(l||0)+(m||p?0:i.current),f,u,n);},[m,i])};
|
|
6
|
+
let useSmoothScroll=m=>{let i=useFixedOffset();return useCallback((e,l,f,u,n)=>{let c;let p=!1;if(isNumber(e))c=e;else if(e){let t=document.getElementById(e);t&&(c=getOffsetTopSlim(t)-i.current,p=!0);}isNumber(c)&&scrollTo(c=c+(l||0)+(m||p?0:i.current),f,u,n);},[m,i])};
|
|
12
7
|
|
|
13
8
|
export { useSmoothScroll as default, useSmoothScroll };
|
package/useSpinDelay.cjs.js
CHANGED
|
@@ -4,18 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var react = require('react');
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
* Wraps your booleans only returning true after the `delay`, and for a minimum
|
|
9
|
-
* time of `minDuration`. This way you're sure that you don't show unnecessary
|
|
10
|
-
* or very short living spinners.
|
|
11
|
-
*
|
|
12
|
-
* @borrows [smeijer/spin-delay](https://github.com/smeijer/spin-delay)
|
|
13
|
-
*
|
|
14
|
-
* - Smaller footprint and options object as argument
|
|
15
|
-
*
|
|
16
|
-
* @param delay [500]
|
|
17
|
-
* @param minDuration [200]
|
|
18
|
-
*/let useSpinDelay=(u,c=500,i=200)=>{let[n,o]=react.useState(0),l=react.useRef();return react.useEffect(()=>{u&&0===n&&(clearTimeout(l.current),l.current=setTimeout(()=>{if(!u)return o(0);l.current=setTimeout(()=>{o(3);},i),o(2);},c),o(1)),u||2===n||(clearTimeout(l.current),o(0));},[u,n,c,i]),react.useEffect(()=>()=>clearTimeout(l.current),[]),2===n||3===n};
|
|
7
|
+
let useSpinDelay=(u,c=500,i=200)=>{let[n,o]=react.useState(0),l=react.useRef();return react.useEffect(()=>{u&&0===n&&(clearTimeout(l.current),l.current=setTimeout(()=>{if(!u)return o(0);l.current=setTimeout(()=>{o(3);},i),o(2);},c),o(1)),u||2===n||(clearTimeout(l.current),o(0));},[u,n,c,i]),react.useEffect(()=>()=>clearTimeout(l.current),[]),2===n||3===n};
|
|
19
8
|
|
|
20
9
|
exports.default = useSpinDelay;
|
|
21
10
|
exports.useSpinDelay = useSpinDelay;
|
package/useSpinDelay.esm.js
CHANGED
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
import { useState, useRef, useEffect } from 'react';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
* Wraps your booleans only returning true after the `delay`, and for a minimum
|
|
5
|
-
* time of `minDuration`. This way you're sure that you don't show unnecessary
|
|
6
|
-
* or very short living spinners.
|
|
7
|
-
*
|
|
8
|
-
* @borrows [smeijer/spin-delay](https://github.com/smeijer/spin-delay)
|
|
9
|
-
*
|
|
10
|
-
* - Smaller footprint and options object as argument
|
|
11
|
-
*
|
|
12
|
-
* @param delay [500]
|
|
13
|
-
* @param minDuration [200]
|
|
14
|
-
*/let useSpinDelay=(u,c=500,i=200)=>{let[n,o]=useState(0),l=useRef();return useEffect(()=>{u&&0===n&&(clearTimeout(l.current),l.current=setTimeout(()=>{if(!u)return o(0);l.current=setTimeout(()=>{o(3);},i),o(2);},c),o(1)),u||2===n||(clearTimeout(l.current),o(0));},[u,n,c,i]),useEffect(()=>()=>clearTimeout(l.current),[]),2===n||3===n};
|
|
3
|
+
let useSpinDelay=(u,c=500,i=200)=>{let[n,o]=useState(0),l=useRef();return useEffect(()=>{u&&0===n&&(clearTimeout(l.current),l.current=setTimeout(()=>{if(!u)return o(0);l.current=setTimeout(()=>{o(3);},i),o(2);},c),o(1)),u||2===n||(clearTimeout(l.current),o(0));},[u,n,c,i]),useEffect(()=>()=>clearTimeout(l.current),[]),2===n||3===n};
|
|
15
4
|
|
|
16
5
|
export { useSpinDelay as default, useSpinDelay };
|
package/useTraceUpdate.cjs.js
CHANGED
|
@@ -4,10 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var react = require('react');
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
* @see https://stackoverflow.com/a/51082563/9122820
|
|
9
|
-
*/let useTraceUpdate=r=>{let c=react.useRef(r);react.useEffect(()=>{let e=Object.entries(r).reduce((e,[t,r])=>(c.current[t]!==r&&// @ts-expect-error Does not matter here...
|
|
10
|
-
(e[t]=[c.current[t],r]),e),{});Object.keys(e).length>0&&console.info("[@koine/react:useTraceUpdate] changed props:",e),c.current=r;});};
|
|
7
|
+
let useTraceUpdate=r=>{let c=react.useRef(r);react.useEffect(()=>{let e=Object.entries(r).reduce((e,[t,r])=>(c.current[t]!==r&&(e[t]=[c.current[t],r]),e),{});Object.keys(e).length>0&&console.info("[@koine/react:useTraceUpdate] changed props:",e),c.current=r;});};
|
|
11
8
|
|
|
12
9
|
exports.default = useTraceUpdate;
|
|
13
10
|
exports.useTraceUpdate = useTraceUpdate;
|
package/useTraceUpdate.esm.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { useRef, useEffect } from 'react';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
* @see https://stackoverflow.com/a/51082563/9122820
|
|
5
|
-
*/let useTraceUpdate=r=>{let c=useRef(r);useEffect(()=>{let e=Object.entries(r).reduce((e,[t,r])=>(c.current[t]!==r&&// @ts-expect-error Does not matter here...
|
|
6
|
-
(e[t]=[c.current[t],r]),e),{});Object.keys(e).length>0&&console.info("[@koine/react:useTraceUpdate] changed props:",e),c.current=r;});};
|
|
3
|
+
let useTraceUpdate=r=>{let c=useRef(r);useEffect(()=>{let e=Object.entries(r).reduce((e,[t,r])=>(c.current[t]!==r&&(e[t]=[c.current[t],r]),e),{});Object.keys(e).length>0&&console.info("[@koine/react:useTraceUpdate] changed props:",e),c.current=r;});};
|
|
7
4
|
|
|
8
5
|
export { useTraceUpdate as default, useTraceUpdate };
|
package/useUpdateEffect.cjs.js
CHANGED
|
@@ -5,10 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var useFirstMountState = require('./useFirstMountState.cjs.js');
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
* @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useUpdateEffect.ts)
|
|
10
|
-
*/let useUpdateEffect=(r,f)=>{let o=useFirstMountState.useFirstMountState();react.useEffect(()=>{if(!o)return r()},// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11
|
-
f);};
|
|
8
|
+
let useUpdateEffect=(r,f)=>{let o=useFirstMountState.useFirstMountState();react.useEffect(()=>{if(!o)return r()},f);};
|
|
12
9
|
|
|
13
10
|
exports.default = useUpdateEffect;
|
|
14
11
|
exports.useUpdateEffect = useUpdateEffect;
|
package/useUpdateEffect.esm.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { useEffect } from 'react';
|
|
2
2
|
import { useFirstMountState } from './useFirstMountState.esm.js';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
* @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useUpdateEffect.ts)
|
|
6
|
-
*/let useUpdateEffect=(r,f)=>{let o=useFirstMountState();useEffect(()=>{if(!o)return r()},// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
7
|
-
f);};
|
|
4
|
+
let useUpdateEffect=(r,f)=>{let o=useFirstMountState();useEffect(()=>{if(!o)return r()},f);};
|
|
8
5
|
|
|
9
6
|
export { useUpdateEffect as default, useUpdateEffect };
|
package/useWindowSize.cjs.js
CHANGED
|
@@ -5,15 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var dom = require('@koine/dom');
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
* # Use `window` size
|
|
10
|
-
*
|
|
11
|
-
* @param args Optionally pass {@link debounce} arguments (`wait` and `immediate`)
|
|
12
|
-
*
|
|
13
|
-
* @returns An array with:
|
|
14
|
-
* 1) _width_: using `window.innerWidth`
|
|
15
|
-
* 2) _height_: using `window.innerHeight`
|
|
16
|
-
*/let useWindowSize=(o,n)=>{let[d,w]=react.useState(0),[m,u]=react.useState(0);return react.useEffect(()=>{let e=()=>{w(window.innerWidth),u(window.innerHeight);},i=o?dom.listenResizeDebounced(0,e,o,n):dom.listenResize(e);return e(),i},[o,n]),[d,m]};
|
|
8
|
+
let useWindowSize=(o,n)=>{let[d,w]=react.useState(0),[m,u]=react.useState(0);return react.useEffect(()=>{let e=()=>{w(window.innerWidth),u(window.innerHeight);},i=o?dom.listenResizeDebounced(0,e,o,n):dom.listenResize(e);return e(),i},[o,n]),[d,m]};
|
|
17
9
|
|
|
18
10
|
exports.default = useWindowSize;
|
|
19
11
|
exports.useWindowSize = useWindowSize;
|
package/useWindowSize.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { debounce } from "@koine/utils";
|
|
1
|
+
import { debounce as _debounce } from "@koine/utils";
|
|
2
2
|
/**
|
|
3
3
|
* # Use `window` size
|
|
4
4
|
*
|
|
5
|
-
* @param args Optionally pass {@link
|
|
5
|
+
* @param args Optionally pass {@link _debounce} arguments (`wait` and `immediate`)
|
|
6
6
|
*
|
|
7
7
|
* @returns An array with:
|
|
8
8
|
* 1) _width_: using `window.innerWidth`
|
|
9
9
|
* 2) _height_: using `window.innerHeight`
|
|
10
10
|
*/
|
|
11
|
-
export declare let useWindowSize: (wait?: Parameters<typeof
|
|
11
|
+
export declare let useWindowSize: (wait?: Parameters<typeof _debounce>[1], immediate?: Parameters<typeof _debounce>[2]) => readonly [number, number];
|
|
12
12
|
export default useWindowSize;
|
package/useWindowSize.esm.js
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
import { useState, useEffect } from 'react';
|
|
2
2
|
import { listenResizeDebounced, listenResize } from '@koine/dom';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
* # Use `window` size
|
|
6
|
-
*
|
|
7
|
-
* @param args Optionally pass {@link debounce} arguments (`wait` and `immediate`)
|
|
8
|
-
*
|
|
9
|
-
* @returns An array with:
|
|
10
|
-
* 1) _width_: using `window.innerWidth`
|
|
11
|
-
* 2) _height_: using `window.innerHeight`
|
|
12
|
-
*/let useWindowSize=(o,n)=>{let[d,w]=useState(0),[m,u]=useState(0);return useEffect(()=>{let e=()=>{w(window.innerWidth),u(window.innerHeight);},i=o?listenResizeDebounced(0,e,o,n):listenResize(e);return e(),i},[o,n]),[d,m]};
|
|
4
|
+
let useWindowSize=(o,n)=>{let[d,w]=useState(0),[m,u]=useState(0);return useEffect(()=>{let e=()=>{w(window.innerWidth),u(window.innerHeight);},i=o?listenResizeDebounced(0,e,o,n):listenResize(e);return e(),i},[o,n]),[d,m]};
|
|
13
5
|
|
|
14
6
|
export { useWindowSize as default, useWindowSize };
|