@koine/react 2.0.0-beta.75 → 2.0.0-beta.77
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.js +1 -5
- package/Meta.js +1 -5
- package/NoJs.js +1 -7
- package/Polymorphic.js +1 -1
- package/calendar/CalendarDaygridCell.js +1 -42
- package/calendar/CalendarDaygridNav.js +1 -22
- package/calendar/CalendarDaygridTable.js +1 -50
- package/calendar/CalendarLegend.js +1 -4
- package/calendar/calendar-api-google.js +1 -90
- package/calendar/types.js +1 -1
- package/calendar/useCalendar.js +1 -175
- package/calendar/useDateLocale.js +1 -16
- package/calendar/utils.js +1 -172
- package/calendar.js +1 -7
- package/{components → cjs}/FaviconTags.d.ts +1 -0
- package/cjs/FaviconTags.js +1 -0
- package/{components → cjs}/Meta.d.ts +1 -0
- package/cjs/Meta.js +1 -0
- package/{components → cjs}/NoJs.d.ts +1 -0
- package/cjs/NoJs.js +1 -0
- package/cjs/Polymorphic.js +1 -0
- package/cjs/calendar/CalendarDaygridCell.d.ts +35 -0
- package/cjs/calendar/CalendarDaygridCell.js +1 -0
- package/cjs/calendar/CalendarDaygridNav.d.ts +27 -0
- package/cjs/calendar/CalendarDaygridNav.js +1 -0
- package/cjs/calendar/CalendarDaygridTable.d.ts +25 -0
- package/cjs/calendar/CalendarDaygridTable.js +1 -0
- package/cjs/calendar/CalendarLegend.d.ts +18 -0
- package/cjs/calendar/CalendarLegend.js +1 -0
- package/cjs/calendar/calendar-api-google.d.ts +10 -0
- package/cjs/calendar/calendar-api-google.js +1 -0
- package/cjs/calendar/types.d.ts +62 -0
- package/cjs/calendar/types.js +1 -0
- package/cjs/calendar/useCalendar.d.ts +35 -0
- package/cjs/calendar/useCalendar.js +1 -0
- package/cjs/calendar/useDateLocale.d.ts +2 -0
- package/cjs/calendar/useDateLocale.js +1 -0
- package/cjs/calendar/utils.d.ts +11 -0
- package/cjs/calendar/utils.js +1 -0
- package/cjs/calendar.d.ts +7 -0
- package/cjs/calendar.js +1 -0
- package/{utils → cjs}/classed.d.ts +2 -2
- package/cjs/classed.js +1 -0
- package/{utils → cjs}/createUseMediaQueryWidth.d.ts +1 -1
- package/cjs/createUseMediaQueryWidth.js +1 -0
- package/{utils → cjs}/extendComponent.d.ts +1 -1
- package/cjs/extendComponent.js +1 -0
- package/cjs/forms/antispam.d.ts +27 -0
- package/cjs/forms/antispam.js +1 -0
- package/cjs/forms.d.ts +1 -0
- package/cjs/forms.js +1 -0
- package/{hooks → cjs}/index.d.ts +9 -0
- package/cjs/index.js +1 -0
- package/{utils → cjs}/mergeRefs.d.ts +1 -0
- package/cjs/mergeRefs.js +1 -0
- package/cjs/package.json +31 -0
- package/cjs/types.d.ts +2 -0
- package/cjs/types.js +1 -0
- package/{hooks → cjs}/useAsyncFn.d.ts +1 -1
- package/cjs/useAsyncFn.js +1 -0
- package/{hooks → cjs}/useFirstMountState.d.ts +1 -0
- package/cjs/useFirstMountState.js +1 -0
- package/{hooks → cjs}/useFixedOffset.d.ts +1 -0
- package/cjs/useFixedOffset.js +1 -0
- package/{hooks → cjs}/useFocus.d.ts +1 -0
- package/cjs/useFocus.js +1 -0
- package/{hooks → cjs}/useInterval.d.ts +1 -0
- package/cjs/useInterval.js +1 -0
- package/cjs/useIsomorphicLayoutEffect.d.ts +3 -0
- package/cjs/useIsomorphicLayoutEffect.js +1 -0
- package/{hooks → cjs}/useKeyUp.d.ts +1 -0
- package/cjs/useKeyUp.js +1 -0
- package/{hooks → cjs}/useMeasure.d.ts +1 -1
- package/cjs/useMeasure.js +1 -0
- package/{hooks → cjs}/useMountedState.d.ts +1 -0
- package/cjs/useMountedState.js +1 -0
- package/{hooks → cjs}/useNavigateAway.d.ts +1 -0
- package/cjs/useNavigateAway.js +1 -0
- package/{hooks → cjs}/usePrevious.d.ts +1 -0
- package/cjs/usePrevious.js +1 -0
- package/{hooks → cjs}/usePreviousRef.d.ts +1 -0
- package/cjs/usePreviousRef.js +1 -0
- package/{hooks → cjs}/useReveal.d.ts +1 -0
- package/cjs/useReveal.js +1 -0
- package/{hooks → cjs}/useScrollPosition.d.ts +1 -1
- package/cjs/useScrollPosition.js +1 -0
- package/{hooks → cjs}/useScrollThreshold.d.ts +1 -0
- package/cjs/useScrollThreshold.js +1 -0
- package/{hooks → cjs}/useScrollTo.d.ts +1 -0
- package/cjs/useScrollTo.js +1 -0
- package/{hooks → cjs}/useSmoothScroll.d.ts +1 -0
- package/cjs/useSmoothScroll.js +1 -0
- package/{hooks → cjs}/useSpinDelay.d.ts +1 -0
- package/cjs/useSpinDelay.js +1 -0
- package/{hooks → cjs}/useTraceUpdate.d.ts +1 -0
- package/cjs/useTraceUpdate.js +1 -0
- package/{hooks → cjs}/useUpdateEffect.d.ts +1 -0
- package/cjs/useUpdateEffect.js +1 -0
- package/{hooks → cjs}/useWindowSize.d.ts +1 -0
- package/cjs/useWindowSize.js +1 -0
- package/classed.d.ts +1 -1
- package/classed.js +1 -41
- package/createUseMediaQueryWidth.js +1 -38
- package/extendComponent.js +1 -9
- package/forms/antispam.js +1 -29
- package/forms.js +1 -1
- package/index.js +1 -26
- package/mergeRefs.js +1 -13
- package/package.json +53 -136
- package/types.js +1 -1
- package/useAsyncFn.js +1 -26
- package/useFirstMountState.js +1 -10
- package/useFixedOffset.js +1 -42
- package/useFocus.js +1 -9
- package/useInterval.js +1 -20
- package/useIsomorphicLayoutEffect.d.ts +2 -2
- package/useIsomorphicLayoutEffect.js +1 -4
- package/useKeyUp.js +1 -16
- package/useMeasure.js +1 -119
- package/useMountedState.js +1 -13
- package/useNavigateAway.js +1 -25
- package/usePrevious.js +1 -9
- package/usePreviousRef.js +1 -9
- package/useReveal.js +1 -42
- package/useScrollPosition.js +1 -58
- package/useScrollThreshold.js +1 -26
- package/useScrollTo.js +1 -18
- package/useSmoothScroll.js +1 -32
- package/useSpinDelay.js +1 -36
- package/useTraceUpdate.js +1 -17
- package/useUpdateEffect.js +1 -11
- package/useWindowSize.js +1 -20
- package/README.md +0 -1
- package/calendar.cjs.d.ts +0 -1
- package/calendar.cjs.default.js +0 -1
- package/calendar.cjs.js +0 -62
- package/calendar.cjs.mjs +0 -2
- package/calendar.esm.js +0 -35
- package/components/FaviconTags.js +0 -4
- package/components/Meta.js +0 -4
- package/components/NoJs.js +0 -6
- package/forms.cjs.d.ts +0 -1
- package/forms.cjs.default.js +0 -1
- package/forms.cjs.js +0 -11
- package/forms.cjs.mjs +0 -2
- package/forms.esm.js +0 -6
- package/hooks/index.js +0 -19
- package/hooks/useAsyncFn.js +0 -25
- package/hooks/useFirstMountState.js +0 -9
- package/hooks/useFixedOffset.js +0 -41
- package/hooks/useFocus.js +0 -8
- package/hooks/useInterval.js +0 -19
- package/hooks/useIsomorphicLayoutEffect.d.ts +0 -2
- package/hooks/useIsomorphicLayoutEffect.js +0 -3
- package/hooks/useKeyUp.js +0 -15
- package/hooks/useMeasure.js +0 -118
- package/hooks/useMountedState.js +0 -12
- package/hooks/useNavigateAway.js +0 -24
- package/hooks/usePrevious.js +0 -8
- package/hooks/usePreviousRef.js +0 -8
- package/hooks/useReveal.js +0 -41
- package/hooks/useScrollPosition.js +0 -57
- package/hooks/useScrollThreshold.js +0 -25
- package/hooks/useScrollTo.js +0 -17
- package/hooks/useSmoothScroll.js +0 -31
- package/hooks/useSpinDelay.js +0 -35
- package/hooks/useTraceUpdate.js +0 -16
- package/hooks/useUpdateEffect.js +0 -10
- package/hooks/useWindowSize.js +0 -19
- package/index.cjs.d.ts +0 -1
- package/index.cjs.default.js +0 -1
- package/index.cjs.js +0 -87
- package/index.cjs.mjs +0 -2
- package/index.esm.js +0 -58
- package/utils/Polymorphic.js +0 -1
- package/utils/classed.js +0 -40
- package/utils/createUseMediaQueryWidth.js +0 -37
- package/utils/extendComponent.js +0 -8
- package/utils/index.d.ts +0 -5
- package/utils/index.js +0 -4
- package/utils/mergeRefs.js +0 -12
- /package/{utils → cjs}/Polymorphic.d.ts +0 -0
|
@@ -4,4 +4,4 @@ type Position = {
|
|
|
4
4
|
};
|
|
5
5
|
type ElementRef = React.MutableRefObject<HTMLElement | undefined>;
|
|
6
6
|
export declare let useScrollPosition: (effect: (currentPosition: Position, prevPosition: Position) => void, deps?: import("react").DependencyList, element?: ElementRef, boundingElement?: ElementRef, wait?: number) => void;
|
|
7
|
-
export
|
|
7
|
+
export default useScrollPosition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useRef as t}from"react";import{isBrowser as r}from"@koine/utils";import{listenScroll as e}from"@koine/dom";import{useIsomorphicLayoutEffect as o}from"./useIsomorphicLayoutEffect";let l={x:0,y:0},n=t=>t?.getBoundingClientRect(),u=(t,e)=>{if(!r)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};export let useScrollPosition=(l,n=[],i,c,m)=>{let f=t(u(null,c)),s=null,d=()=>{let t=u(i,c);l(t,f.current),f.current=t,s=null};o(()=>{if(!r)return;let t=e(()=>{m?null===s&&(s=window.setTimeout(d,m)):d()},c?.current);return()=>{t(),s&&clearTimeout(s)}},n)};export default useScrollPosition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useCallback as r,useEffect as e,useState as o}from"react";import{noop as t}from"@koine/utils";import{listenScroll as l}from"@koine/dom";export let useScrollThreshold=(i,m)=>{let[u,f]=o(!1),n=r(()=>{if(i){let r=window.scrollY,e=r<i,o=r>i;f(o),m&&m(e,o)}},[i,m]);return e(()=>{if(i){let r=l(n);return n(),r}return t},[i,n]),u};export default useScrollThreshold;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{isBrowser as e}from"@koine/utils";export let useScrollTo=(o="",t=0)=>{if(!e)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)};export default useScrollTo;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useCallback as e}from"react";import{isNumber as t}from"@koine/utils";import{getOffsetTopSlim as o,scrollTo as r}from"@koine/dom";import{useFixedOffset as l}from"./useFixedOffset";export let useSmoothScroll=m=>{let i=l();return e((e,l,f,u,n)=>{let c;let p=!1;if(t(e))c=e;else if(e){let t=document.getElementById(e);t&&(c=o(t)-i.current,p=!0)}t(c)&&r(c=c+(l||0)+(m||p?0:i.current),f,u,n)},[m,i])};export default useSmoothScroll;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEffect as e,useRef as r,useState as t}from"react";export let useSpinDelay=(u,c=500,i=200)=>{let[n,o]=t(0),l=r();return e(()=>{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]),e(()=>()=>clearTimeout(l.current),[]),2===n||3===n};export default useSpinDelay;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEffect as e,useRef as t}from"react";export let useTraceUpdate=r=>{let c=t(r);e(()=>{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})};export default useTraceUpdate;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEffect as t}from"react";import{useFirstMountState as e}from"./useFirstMountState";export let useUpdateEffect=(r,f)=>{let o=e();t(()=>{if(!o)return r()},f)};export default useUpdateEffect;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEffect as e,useState as i}from"react";import{listenResize as r,listenResizeDebounced as t}from"@koine/dom";export let useWindowSize=(o,n)=>{let[d,w]=i(0),[m,u]=i(0);return e(()=>{let e=()=>{w(window.innerWidth),u(window.innerHeight)},i=o?t(0,e,o,n):r(e);return e(),i},[o,n]),[d,m]};export default useWindowSize;
|
package/classed.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ type ClassedAugmentedProps<Props> = Props & {
|
|
|
4
4
|
ref?: React.Ref<any>;
|
|
5
5
|
};
|
|
6
6
|
type ClassedFinalProps<Props, Component> = Component extends React.ReactHTML ? React.HTMLProps<Component> & ClassedAugmentedProps<Props> : ClassedAugmentedProps<Props>;
|
|
7
|
-
export declare let classed: <Props, Component extends React.ElementType<any, keyof React.JSX.IntrinsicElements> = any>(component: Component) => (strings: TemplateStringsArray, ...args: ((props: Props) => string)[]
|
|
7
|
+
export declare let classed: <Props, Component extends React.ElementType<any, keyof React.JSX.IntrinsicElements> = any>(component: Component) => (strings: TemplateStringsArray, ...args: string[] | ((props: Props) => string)[]) => React.ForwardRefExoticComponent<React.PropsWithoutRef<ClassedFinalProps<Props, Component>> & React.RefAttributes<Component>>;
|
|
8
8
|
export default classed;
|
package/classed.js
CHANGED
|
@@ -1,41 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export let classed = (component) => {
|
|
3
|
-
const type = component.type || component;
|
|
4
|
-
return function (strings, ...args) {
|
|
5
|
-
const WrappedComponent = forwardRef(function (props, ref) {
|
|
6
|
-
const argResolved = args
|
|
7
|
-
.map((arg, index) => {
|
|
8
|
-
let result = "";
|
|
9
|
-
if (typeof arg === "function") {
|
|
10
|
-
result = arg(props);
|
|
11
|
-
}
|
|
12
|
-
else if (typeof arg !== "undefined") {
|
|
13
|
-
result = arg.toString();
|
|
14
|
-
}
|
|
15
|
-
return strings[index] + result;
|
|
16
|
-
})
|
|
17
|
-
.join("");
|
|
18
|
-
const isNativeHtmlElement = typeof type === "string";
|
|
19
|
-
const propsToForward = isNativeHtmlElement
|
|
20
|
-
? {}
|
|
21
|
-
: props;
|
|
22
|
-
if (isNativeHtmlElement) {
|
|
23
|
-
for (const key in props) {
|
|
24
|
-
if (!key.startsWith("$")) {
|
|
25
|
-
propsToForward[key] = props[key];
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
let className = argResolved || strings[0];
|
|
30
|
-
className = className.match(/class="([^"]*)/)?.[1] || className;
|
|
31
|
-
className += props?.className ? " " + props?.className : "";
|
|
32
|
-
return createElement(type, {
|
|
33
|
-
...propsToForward,
|
|
34
|
-
className: className || undefined,
|
|
35
|
-
ref,
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
return WrappedComponent;
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
export default classed;
|
|
1
|
+
import{createElement as t,forwardRef as e}from"react";export let classed=r=>{let s=r.type||r;return function(r,...a){return e(function(e,n){let o=a.map((t,s)=>{let a="";return"function"==typeof t?a=t(e):void 0!==t&&(a=t.toString()),r[s]+a}).join(""),l="string"==typeof s,i=l?{}:e;if(l)for(let t in e)t.startsWith("$")||(i[t]=e[t]);let c=o||r[0];return c=(c.match(/class="([^"]*)/)?.[1]||c)+(e?.className?" "+e?.className:""),t(s,{...i,className:c||void 0,ref:n})})}};export default classed;
|
|
@@ -1,38 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getMediaQueryWidthResolvers, isUndefined, } from "@koine/utils";
|
|
3
|
-
import { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect";
|
|
4
|
-
export let createUseMediaQueryWidth = (customBreakpoints) => {
|
|
5
|
-
const queryResolvers = getMediaQueryWidthResolvers(customBreakpoints);
|
|
6
|
-
return function useMediaQueryWidth(media, serverValue) {
|
|
7
|
-
const definition = media.substring(1);
|
|
8
|
-
let [rule, ruleBreakpoint] = definition.split("-");
|
|
9
|
-
if (isUndefined(ruleBreakpoint)) {
|
|
10
|
-
ruleBreakpoint = rule;
|
|
11
|
-
}
|
|
12
|
-
if (isUndefined(rule)) {
|
|
13
|
-
rule = "min";
|
|
14
|
-
}
|
|
15
|
-
const [br1, br2] = ruleBreakpoint.split("_");
|
|
16
|
-
const query = queryResolvers[rule](br1, br2);
|
|
17
|
-
const [matches, setMatches] = useState(isUndefined(serverValue) ? null : serverValue);
|
|
18
|
-
useIsomorphicLayoutEffect(() => {
|
|
19
|
-
const mq = window.matchMedia(query);
|
|
20
|
-
const handleChange = (event) => {
|
|
21
|
-
setMatches(event.matches);
|
|
22
|
-
};
|
|
23
|
-
setMatches(mq.matches);
|
|
24
|
-
if (!mq.addEventListener) {
|
|
25
|
-
mq.addListener(handleChange);
|
|
26
|
-
return () => {
|
|
27
|
-
mq.removeListener(handleChange);
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
mq.addEventListener("change", handleChange);
|
|
31
|
-
return () => {
|
|
32
|
-
mq.removeEventListener("change", handleChange);
|
|
33
|
-
};
|
|
34
|
-
}, [query]);
|
|
35
|
-
return matches;
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
export default createUseMediaQueryWidth;
|
|
1
|
+
import{useState as e}from"react";import{getMediaQueryWidthResolvers as t,isUndefined as r}from"@koine/utils";import{useIsomorphicLayoutEffect as i}from"./useIsomorphicLayoutEffect";export let createUseMediaQueryWidth=n=>{let a=t(n);return function(t,n){let[o,s]=t.substring(1).split("-");r(s)&&(s=o),r(o)&&(o="min");let[d,m]=s.split("_"),u=a[o](d,m),[c,l]=e(r(n)?null:n);return i(()=>{let e=window.matchMedia(u),t=e=>{l(e.matches)};return(l(e.matches),e.addEventListener)?(e.addEventListener("change",t),()=>{e.removeEventListener("change",t)}):(e.addListener(t),()=>{e.removeListener(t)})},[u]),c}};export default createUseMediaQueryWidth;
|
package/extendComponent.js
CHANGED
|
@@ -1,9 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export let extendComponent = (component, defaultProps) => {
|
|
3
|
-
const NewComponent = (props) => createElement(component, props);
|
|
4
|
-
return Object.assign(NewComponent, {
|
|
5
|
-
...defaultProps,
|
|
6
|
-
defaultProps,
|
|
7
|
-
});
|
|
8
|
-
};
|
|
9
|
-
export default extendComponent;
|
|
1
|
+
import{createElement as e}from"react";export let extendComponent=(t,o)=>Object.assign(o=>e(t,o),{...o,defaultProps:o});export default extendComponent;
|
package/forms/antispam.js
CHANGED
|
@@ -1,29 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { decode, encode, isUndefined } from "@koine/utils";
|
|
3
|
-
export let encodeForm = (validationRules) => {
|
|
4
|
-
const encoded = {};
|
|
5
|
-
const encodedNames = {};
|
|
6
|
-
for (const name in validationRules) {
|
|
7
|
-
if (!name.startsWith("_")) {
|
|
8
|
-
const encodedName = encode(name);
|
|
9
|
-
encoded[encodedName] = validationRules[name];
|
|
10
|
-
encodedNames[name] = encodedName;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
const encodedSchema = object(encoded).required();
|
|
14
|
-
return { encodedSchema, encodedNames };
|
|
15
|
-
};
|
|
16
|
-
export let decodeForm = (formData) => {
|
|
17
|
-
const json = {};
|
|
18
|
-
for (const encodedName in formData) {
|
|
19
|
-
const decodedName = decode(encodedName);
|
|
20
|
-
if (encodedName.startsWith("_")) {
|
|
21
|
-
json[encodedName.substring(1)] = formData[encodedName];
|
|
22
|
-
}
|
|
23
|
-
else if (!isUndefined(formData[encodedName]) &&
|
|
24
|
-
formData[decodedName] === "") {
|
|
25
|
-
json[decodedName] = formData[encodedName];
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return json;
|
|
29
|
-
};
|
|
1
|
+
import{object as e}from"@kuus/yup";import{decode as t,encode as r,isUndefined as o}from"@koine/utils";export let encodeForm=t=>{let o={},i={};for(let e in t)if(!e.startsWith("_")){let l=r(e);o[l]=t[e],i[e]=l}return{encodedSchema:e(o).required(),encodedNames:i}};export let decodeForm=e=>{let r={};for(let i in e){let l=t(i);i.startsWith("_")?r[i.substring(1)]=e[i]:o(e[i])||""!==e[l]||(r[l]=e[i])}return r};
|
package/forms.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export*from"./forms/antispam";
|
package/index.js
CHANGED
|
@@ -1,26 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
export { createUseMediaQueryWidth, } from "./createUseMediaQueryWidth";
|
|
3
|
-
export { extendComponent, } from "./extendComponent";
|
|
4
|
-
export { FaviconTags } from "./FaviconTags";
|
|
5
|
-
export { mergeRefs } from "./mergeRefs";
|
|
6
|
-
export { Meta } from "./Meta";
|
|
7
|
-
export { NoJs } from "./NoJs";
|
|
8
|
-
export { useAsyncFn, } from "./useAsyncFn";
|
|
9
|
-
export { useFirstMountState } from "./useFirstMountState";
|
|
10
|
-
export { useFixedOffset } from "./useFixedOffset";
|
|
11
|
-
export { useFocus } from "./useFocus";
|
|
12
|
-
export { useInterval } from "./useInterval";
|
|
13
|
-
export { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect";
|
|
14
|
-
export { useKeyUp } from "./useKeyUp";
|
|
15
|
-
export { useMeasure, } from "./useMeasure";
|
|
16
|
-
export { useMountedState } from "./useMountedState";
|
|
17
|
-
export { useNavigateAway, } from "./useNavigateAway";
|
|
18
|
-
export { usePrevious } from "./usePrevious";
|
|
19
|
-
export { usePreviousRef } from "./usePreviousRef";
|
|
20
|
-
export { useScrollPosition } from "./useScrollPosition";
|
|
21
|
-
export { useScrollThreshold } from "./useScrollThreshold";
|
|
22
|
-
export { useSmoothScroll } from "./useSmoothScroll";
|
|
23
|
-
export { useSpinDelay } from "./useSpinDelay";
|
|
24
|
-
export { useTraceUpdate } from "./useTraceUpdate";
|
|
25
|
-
export { useUpdateEffect } from "./useUpdateEffect";
|
|
26
|
-
export { useWindowSize } from "./useWindowSize";
|
|
1
|
+
export{classed}from"./classed";export{createUseMediaQueryWidth}from"./createUseMediaQueryWidth";export{extendComponent}from"./extendComponent";export{FaviconTags}from"./FaviconTags";export{mergeRefs}from"./mergeRefs";export{Meta}from"./Meta";export{NoJs}from"./NoJs";export{useAsyncFn}from"./useAsyncFn";export{useFirstMountState}from"./useFirstMountState";export{useFixedOffset}from"./useFixedOffset";export{useFocus}from"./useFocus";export{useInterval}from"./useInterval";export{useIsomorphicLayoutEffect}from"./useIsomorphicLayoutEffect";export{useKeyUp}from"./useKeyUp";export{useMeasure}from"./useMeasure";export{useMountedState}from"./useMountedState";export{useNavigateAway}from"./useNavigateAway";export{usePrevious}from"./usePrevious";export{usePreviousRef}from"./usePreviousRef";export{useScrollPosition}from"./useScrollPosition";export{useScrollThreshold}from"./useScrollThreshold";export{useSmoothScroll}from"./useSmoothScroll";export{useSpinDelay}from"./useSpinDelay";export{useTraceUpdate}from"./useTraceUpdate";export{useUpdateEffect}from"./useUpdateEffect";export{useWindowSize}from"./useWindowSize";
|
package/mergeRefs.js
CHANGED
|
@@ -1,13 +1 @@
|
|
|
1
|
-
export let mergeRefs
|
|
2
|
-
return (value) => {
|
|
3
|
-
refs.forEach((ref) => {
|
|
4
|
-
if (typeof ref === "function") {
|
|
5
|
-
ref(value);
|
|
6
|
-
}
|
|
7
|
-
else if (ref != null) {
|
|
8
|
-
ref.current = value;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
export default mergeRefs;
|
|
1
|
+
export let mergeRefs=e=>r=>{e.forEach(e=>{"function"==typeof e?e(r):null!=e&&(e.current=r)})};export default mergeRefs;
|
package/package.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"name": "@koine/react",
|
|
3
3
|
"sideEffects": false,
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@koine/dom": "2.0.0-beta.
|
|
6
|
-
"@koine/utils": "2.0.0-beta.
|
|
5
|
+
"@koine/dom": "2.0.0-beta.77",
|
|
6
|
+
"@koine/utils": "2.0.0-beta.77"
|
|
7
7
|
},
|
|
8
8
|
"peerDependencies": {
|
|
9
9
|
"@kuus/yup": "1.0.0-beta.7",
|
|
@@ -25,265 +25,182 @@
|
|
|
25
25
|
"optional": true
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
|
+
"module": "./index.js",
|
|
29
|
+
"type": "module",
|
|
30
|
+
"main": "./cjs/index.js",
|
|
28
31
|
"exports": {
|
|
29
32
|
".": {
|
|
30
|
-
"
|
|
31
|
-
"import": "./index.
|
|
32
|
-
"default": "./index.cjs.js"
|
|
33
|
+
"require": "./cjs/index.js",
|
|
34
|
+
"import": "./index.js"
|
|
33
35
|
},
|
|
34
36
|
"./FaviconTags": {
|
|
37
|
+
"require": "./cjs/FaviconTags.js",
|
|
35
38
|
"import": "./FaviconTags.js"
|
|
36
39
|
},
|
|
37
40
|
"./Meta": {
|
|
41
|
+
"require": "./cjs/Meta.js",
|
|
38
42
|
"import": "./Meta.js"
|
|
39
43
|
},
|
|
40
44
|
"./NoJs": {
|
|
45
|
+
"require": "./cjs/NoJs.js",
|
|
41
46
|
"import": "./NoJs.js"
|
|
42
47
|
},
|
|
43
48
|
"./Polymorphic": {
|
|
49
|
+
"require": "./cjs/Polymorphic.js",
|
|
44
50
|
"import": "./Polymorphic.js"
|
|
45
51
|
},
|
|
46
|
-
"./calendar.cjs.default": {
|
|
47
|
-
"import": "./calendar.cjs.default.js"
|
|
48
|
-
},
|
|
49
|
-
"./calendar.cjs": {
|
|
50
|
-
"import": "./calendar.cjs.js"
|
|
51
|
-
},
|
|
52
|
-
"./calendar.esm": {
|
|
53
|
-
"import": "./calendar.esm.js"
|
|
54
|
-
},
|
|
55
52
|
"./calendar": {
|
|
56
|
-
"
|
|
57
|
-
"import": "./calendar.
|
|
58
|
-
"default": "./calendar.cjs.js"
|
|
53
|
+
"require": "./cjs/calendar.js",
|
|
54
|
+
"import": "./calendar.js"
|
|
59
55
|
},
|
|
60
56
|
"./calendar/CalendarDaygridCell": {
|
|
57
|
+
"require": "./cjs/calendar/CalendarDaygridCell.js",
|
|
61
58
|
"import": "./calendar/CalendarDaygridCell.js"
|
|
62
59
|
},
|
|
63
60
|
"./calendar/CalendarDaygridNav": {
|
|
61
|
+
"require": "./cjs/calendar/CalendarDaygridNav.js",
|
|
64
62
|
"import": "./calendar/CalendarDaygridNav.js"
|
|
65
63
|
},
|
|
66
64
|
"./calendar/CalendarDaygridTable": {
|
|
65
|
+
"require": "./cjs/calendar/CalendarDaygridTable.js",
|
|
67
66
|
"import": "./calendar/CalendarDaygridTable.js"
|
|
68
67
|
},
|
|
69
68
|
"./calendar/CalendarLegend": {
|
|
69
|
+
"require": "./cjs/calendar/CalendarLegend.js",
|
|
70
70
|
"import": "./calendar/CalendarLegend.js"
|
|
71
71
|
},
|
|
72
72
|
"./calendar/calendar-api-google": {
|
|
73
|
+
"require": "./cjs/calendar/calendar-api-google.js",
|
|
73
74
|
"import": "./calendar/calendar-api-google.js"
|
|
74
75
|
},
|
|
75
76
|
"./calendar/types": {
|
|
77
|
+
"require": "./cjs/calendar/types.js",
|
|
76
78
|
"import": "./calendar/types.js"
|
|
77
79
|
},
|
|
78
80
|
"./calendar/useCalendar": {
|
|
81
|
+
"require": "./cjs/calendar/useCalendar.js",
|
|
79
82
|
"import": "./calendar/useCalendar.js"
|
|
80
83
|
},
|
|
81
84
|
"./calendar/useDateLocale": {
|
|
85
|
+
"require": "./cjs/calendar/useDateLocale.js",
|
|
82
86
|
"import": "./calendar/useDateLocale.js"
|
|
83
87
|
},
|
|
84
88
|
"./calendar/utils": {
|
|
89
|
+
"require": "./cjs/calendar/utils.js",
|
|
85
90
|
"import": "./calendar/utils.js"
|
|
86
91
|
},
|
|
87
92
|
"./classed": {
|
|
93
|
+
"require": "./cjs/classed.js",
|
|
88
94
|
"import": "./classed.js"
|
|
89
95
|
},
|
|
90
|
-
"./components/FaviconTags": {
|
|
91
|
-
"import": "./components/FaviconTags.js"
|
|
92
|
-
},
|
|
93
|
-
"./components/Meta": {
|
|
94
|
-
"import": "./components/Meta.js"
|
|
95
|
-
},
|
|
96
|
-
"./components/NoJs": {
|
|
97
|
-
"import": "./components/NoJs.js"
|
|
98
|
-
},
|
|
99
96
|
"./createUseMediaQueryWidth": {
|
|
97
|
+
"require": "./cjs/createUseMediaQueryWidth.js",
|
|
100
98
|
"import": "./createUseMediaQueryWidth.js"
|
|
101
99
|
},
|
|
102
100
|
"./extendComponent": {
|
|
101
|
+
"require": "./cjs/extendComponent.js",
|
|
103
102
|
"import": "./extendComponent.js"
|
|
104
103
|
},
|
|
105
|
-
"./forms.cjs.default": {
|
|
106
|
-
"import": "./forms.cjs.default.js"
|
|
107
|
-
},
|
|
108
|
-
"./forms.cjs": {
|
|
109
|
-
"import": "./forms.cjs.js"
|
|
110
|
-
},
|
|
111
|
-
"./forms.esm": {
|
|
112
|
-
"import": "./forms.esm.js"
|
|
113
|
-
},
|
|
114
104
|
"./forms": {
|
|
115
|
-
"
|
|
116
|
-
"import": "./forms.
|
|
117
|
-
"default": "./forms.cjs.js"
|
|
105
|
+
"require": "./cjs/forms.js",
|
|
106
|
+
"import": "./forms.js"
|
|
118
107
|
},
|
|
119
108
|
"./forms/antispam": {
|
|
109
|
+
"require": "./cjs/forms/antispam.js",
|
|
120
110
|
"import": "./forms/antispam.js"
|
|
121
111
|
},
|
|
122
|
-
"./hooks": {
|
|
123
|
-
"import": "./hooks/index.js"
|
|
124
|
-
},
|
|
125
|
-
"./hooks/useAsyncFn": {
|
|
126
|
-
"import": "./hooks/useAsyncFn.js"
|
|
127
|
-
},
|
|
128
|
-
"./hooks/useFirstMountState": {
|
|
129
|
-
"import": "./hooks/useFirstMountState.js"
|
|
130
|
-
},
|
|
131
|
-
"./hooks/useFixedOffset": {
|
|
132
|
-
"import": "./hooks/useFixedOffset.js"
|
|
133
|
-
},
|
|
134
|
-
"./hooks/useFocus": {
|
|
135
|
-
"import": "./hooks/useFocus.js"
|
|
136
|
-
},
|
|
137
|
-
"./hooks/useInterval": {
|
|
138
|
-
"import": "./hooks/useInterval.js"
|
|
139
|
-
},
|
|
140
|
-
"./hooks/useIsomorphicLayoutEffect": {
|
|
141
|
-
"import": "./hooks/useIsomorphicLayoutEffect.js"
|
|
142
|
-
},
|
|
143
|
-
"./hooks/useKeyUp": {
|
|
144
|
-
"import": "./hooks/useKeyUp.js"
|
|
145
|
-
},
|
|
146
|
-
"./hooks/useMeasure": {
|
|
147
|
-
"import": "./hooks/useMeasure.js"
|
|
148
|
-
},
|
|
149
|
-
"./hooks/useMountedState": {
|
|
150
|
-
"import": "./hooks/useMountedState.js"
|
|
151
|
-
},
|
|
152
|
-
"./hooks/useNavigateAway": {
|
|
153
|
-
"import": "./hooks/useNavigateAway.js"
|
|
154
|
-
},
|
|
155
|
-
"./hooks/usePrevious": {
|
|
156
|
-
"import": "./hooks/usePrevious.js"
|
|
157
|
-
},
|
|
158
|
-
"./hooks/usePreviousRef": {
|
|
159
|
-
"import": "./hooks/usePreviousRef.js"
|
|
160
|
-
},
|
|
161
|
-
"./hooks/useReveal": {
|
|
162
|
-
"import": "./hooks/useReveal.js"
|
|
163
|
-
},
|
|
164
|
-
"./hooks/useScrollPosition": {
|
|
165
|
-
"import": "./hooks/useScrollPosition.js"
|
|
166
|
-
},
|
|
167
|
-
"./hooks/useScrollThreshold": {
|
|
168
|
-
"import": "./hooks/useScrollThreshold.js"
|
|
169
|
-
},
|
|
170
|
-
"./hooks/useScrollTo": {
|
|
171
|
-
"import": "./hooks/useScrollTo.js"
|
|
172
|
-
},
|
|
173
|
-
"./hooks/useSmoothScroll": {
|
|
174
|
-
"import": "./hooks/useSmoothScroll.js"
|
|
175
|
-
},
|
|
176
|
-
"./hooks/useSpinDelay": {
|
|
177
|
-
"import": "./hooks/useSpinDelay.js"
|
|
178
|
-
},
|
|
179
|
-
"./hooks/useTraceUpdate": {
|
|
180
|
-
"import": "./hooks/useTraceUpdate.js"
|
|
181
|
-
},
|
|
182
|
-
"./hooks/useUpdateEffect": {
|
|
183
|
-
"import": "./hooks/useUpdateEffect.js"
|
|
184
|
-
},
|
|
185
|
-
"./hooks/useWindowSize": {
|
|
186
|
-
"import": "./hooks/useWindowSize.js"
|
|
187
|
-
},
|
|
188
|
-
"./index.cjs.default": {
|
|
189
|
-
"import": "./index.cjs.default.js"
|
|
190
|
-
},
|
|
191
|
-
"./index.cjs": {
|
|
192
|
-
"import": "./index.cjs.js"
|
|
193
|
-
},
|
|
194
|
-
"./index.esm": {
|
|
195
|
-
"import": "./index.esm.js"
|
|
196
|
-
},
|
|
197
112
|
"./mergeRefs": {
|
|
113
|
+
"require": "./cjs/mergeRefs.js",
|
|
198
114
|
"import": "./mergeRefs.js"
|
|
199
115
|
},
|
|
200
116
|
"./types": {
|
|
117
|
+
"require": "./cjs/types.js",
|
|
201
118
|
"import": "./types.js"
|
|
202
119
|
},
|
|
203
120
|
"./useAsyncFn": {
|
|
121
|
+
"require": "./cjs/useAsyncFn.js",
|
|
204
122
|
"import": "./useAsyncFn.js"
|
|
205
123
|
},
|
|
206
124
|
"./useFirstMountState": {
|
|
125
|
+
"require": "./cjs/useFirstMountState.js",
|
|
207
126
|
"import": "./useFirstMountState.js"
|
|
208
127
|
},
|
|
209
128
|
"./useFixedOffset": {
|
|
129
|
+
"require": "./cjs/useFixedOffset.js",
|
|
210
130
|
"import": "./useFixedOffset.js"
|
|
211
131
|
},
|
|
212
132
|
"./useFocus": {
|
|
133
|
+
"require": "./cjs/useFocus.js",
|
|
213
134
|
"import": "./useFocus.js"
|
|
214
135
|
},
|
|
215
136
|
"./useInterval": {
|
|
137
|
+
"require": "./cjs/useInterval.js",
|
|
216
138
|
"import": "./useInterval.js"
|
|
217
139
|
},
|
|
218
140
|
"./useIsomorphicLayoutEffect": {
|
|
141
|
+
"require": "./cjs/useIsomorphicLayoutEffect.js",
|
|
219
142
|
"import": "./useIsomorphicLayoutEffect.js"
|
|
220
143
|
},
|
|
221
144
|
"./useKeyUp": {
|
|
145
|
+
"require": "./cjs/useKeyUp.js",
|
|
222
146
|
"import": "./useKeyUp.js"
|
|
223
147
|
},
|
|
224
148
|
"./useMeasure": {
|
|
149
|
+
"require": "./cjs/useMeasure.js",
|
|
225
150
|
"import": "./useMeasure.js"
|
|
226
151
|
},
|
|
227
152
|
"./useMountedState": {
|
|
153
|
+
"require": "./cjs/useMountedState.js",
|
|
228
154
|
"import": "./useMountedState.js"
|
|
229
155
|
},
|
|
230
156
|
"./useNavigateAway": {
|
|
157
|
+
"require": "./cjs/useNavigateAway.js",
|
|
231
158
|
"import": "./useNavigateAway.js"
|
|
232
159
|
},
|
|
233
160
|
"./usePrevious": {
|
|
161
|
+
"require": "./cjs/usePrevious.js",
|
|
234
162
|
"import": "./usePrevious.js"
|
|
235
163
|
},
|
|
236
164
|
"./usePreviousRef": {
|
|
165
|
+
"require": "./cjs/usePreviousRef.js",
|
|
237
166
|
"import": "./usePreviousRef.js"
|
|
238
167
|
},
|
|
239
168
|
"./useReveal": {
|
|
169
|
+
"require": "./cjs/useReveal.js",
|
|
240
170
|
"import": "./useReveal.js"
|
|
241
171
|
},
|
|
242
172
|
"./useScrollPosition": {
|
|
173
|
+
"require": "./cjs/useScrollPosition.js",
|
|
243
174
|
"import": "./useScrollPosition.js"
|
|
244
175
|
},
|
|
245
176
|
"./useScrollThreshold": {
|
|
177
|
+
"require": "./cjs/useScrollThreshold.js",
|
|
246
178
|
"import": "./useScrollThreshold.js"
|
|
247
179
|
},
|
|
248
180
|
"./useScrollTo": {
|
|
181
|
+
"require": "./cjs/useScrollTo.js",
|
|
249
182
|
"import": "./useScrollTo.js"
|
|
250
183
|
},
|
|
251
184
|
"./useSmoothScroll": {
|
|
185
|
+
"require": "./cjs/useSmoothScroll.js",
|
|
252
186
|
"import": "./useSmoothScroll.js"
|
|
253
187
|
},
|
|
254
188
|
"./useSpinDelay": {
|
|
189
|
+
"require": "./cjs/useSpinDelay.js",
|
|
255
190
|
"import": "./useSpinDelay.js"
|
|
256
191
|
},
|
|
257
192
|
"./useTraceUpdate": {
|
|
193
|
+
"require": "./cjs/useTraceUpdate.js",
|
|
258
194
|
"import": "./useTraceUpdate.js"
|
|
259
195
|
},
|
|
260
196
|
"./useUpdateEffect": {
|
|
197
|
+
"require": "./cjs/useUpdateEffect.js",
|
|
261
198
|
"import": "./useUpdateEffect.js"
|
|
262
199
|
},
|
|
263
200
|
"./useWindowSize": {
|
|
201
|
+
"require": "./cjs/useWindowSize.js",
|
|
264
202
|
"import": "./useWindowSize.js"
|
|
265
|
-
}
|
|
266
|
-
"./utils/Polymorphic": {
|
|
267
|
-
"import": "./utils/Polymorphic.js"
|
|
268
|
-
},
|
|
269
|
-
"./utils/classed": {
|
|
270
|
-
"import": "./utils/classed.js"
|
|
271
|
-
},
|
|
272
|
-
"./utils/createUseMediaQueryWidth": {
|
|
273
|
-
"import": "./utils/createUseMediaQueryWidth.js"
|
|
274
|
-
},
|
|
275
|
-
"./utils/extendComponent": {
|
|
276
|
-
"import": "./utils/extendComponent.js"
|
|
277
|
-
},
|
|
278
|
-
"./utils": {
|
|
279
|
-
"import": "./utils/index.js"
|
|
280
|
-
},
|
|
281
|
-
"./utils/mergeRefs": {
|
|
282
|
-
"import": "./utils/mergeRefs.js"
|
|
283
|
-
},
|
|
284
|
-
"./package.json": "./package.json"
|
|
203
|
+
}
|
|
285
204
|
},
|
|
286
|
-
"
|
|
287
|
-
"main": "./index.cjs.js",
|
|
288
|
-
"version": "2.0.0-beta.75"
|
|
205
|
+
"version": "2.0.0-beta.77"
|
|
289
206
|
}
|
package/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
package/useAsyncFn.js
CHANGED
|
@@ -1,26 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useMountedState } from "./useMountedState";
|
|
3
|
-
export let useAsyncFn = (fn, deps = [], initialState = { loading: false }) => {
|
|
4
|
-
const lastCallId = useRef(0);
|
|
5
|
-
const isMounted = useMountedState();
|
|
6
|
-
const [state, set] = useState(initialState);
|
|
7
|
-
const callback = useCallback((...args) => {
|
|
8
|
-
const callId = ++lastCallId.current;
|
|
9
|
-
if (!state.loading) {
|
|
10
|
-
set((prevState) => ({ ...prevState, loading: true }));
|
|
11
|
-
}
|
|
12
|
-
return fn(...args).then((value) => {
|
|
13
|
-
isMounted() &&
|
|
14
|
-
callId === lastCallId.current &&
|
|
15
|
-
set({ value, loading: false });
|
|
16
|
-
return value;
|
|
17
|
-
}, (error) => {
|
|
18
|
-
isMounted() &&
|
|
19
|
-
callId === lastCallId.current &&
|
|
20
|
-
set({ error, loading: false });
|
|
21
|
-
return error;
|
|
22
|
-
});
|
|
23
|
-
}, deps);
|
|
24
|
-
return [state, callback];
|
|
25
|
-
};
|
|
26
|
-
export default useAsyncFn;
|
|
1
|
+
import{useCallback as e,useRef as t,useState as r}from"react";import{useMountedState as n}from"./useMountedState";export let useAsyncFn=(o,u=[],l={loading:!1})=>{let a=t(0),d=n(),[i,c]=r(l),g=e((...e)=>{let t=++a.current;return i.loading||c(e=>({...e,loading:!0})),o(...e).then(e=>(d()&&t===a.current&&c({value:e,loading:!1}),e),e=>(d()&&t===a.current&&c({error:e,loading:!1}),e))},u);return[i,g]};export default useAsyncFn;
|
package/useFirstMountState.js
CHANGED
|
@@ -1,10 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export let useFirstMountState = () => {
|
|
3
|
-
const isFirst = useRef(true);
|
|
4
|
-
if (isFirst.current) {
|
|
5
|
-
isFirst.current = false;
|
|
6
|
-
return true;
|
|
7
|
-
}
|
|
8
|
-
return isFirst.current;
|
|
9
|
-
};
|
|
10
|
-
export default useFirstMountState;
|
|
1
|
+
import{useRef as t}from"react";export let useFirstMountState=()=>{let r=t(!0);return r.current?(r.current=!1,!0):r.current};export default useFirstMountState;
|