foxact 0.1.1 → 0.2.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/context-state/index.cjs +1 -0
- package/context-state/index.js +1 -0
- package/context-state/index.mjs +1 -0
- package/package.json +29 -11
- package/use-intersection/index.cjs +1 -0
- package/use-intersection/index.d.ts +9 -0
- package/use-intersection/index.js +1 -0
- package/use-intersection/index.mjs +1 -0
- package/use-isomorphic-layout-effect/index.cjs +1 -0
- package/use-isomorphic-layout-effect/index.d.ts +6 -0
- package/use-isomorphic-layout-effect/index.js +1 -0
- package/use-isomorphic-layout-effect/index.mjs +1 -0
- package/use-retimer/index.cjs +1 -0
- package/use-retimer/index.js +1 -0
- package/use-retimer/index.mjs +1 -0
- package/context-state.cjs +0 -34
- package/context-state.js +0 -34
- package/context-state.mjs +0 -32
- package/use-retimer.cjs +0 -16
- package/use-retimer.js +0 -16
- package/use-retimer.mjs +0 -14
- /package/{context-state.d.ts → context-state/index.d.ts} +0 -0
- /package/{use-retimer.d.ts → use-retimer/index.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime");require("client-only");var t=require("react");const r=()=>{};exports.createContextState=function(n){let u=t.createContext(n),a=t.createContext(r);return[r=>{let{children:c}=r,[i,o]=t.useState(n);return e.jsx(u.Provider,{value:i,children:e.jsx(a.Provider,{value:o,children:c})})},()=>t.useContext(u),()=>t.useContext(a)]};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime");require("client-only");var t=require("react");const r=()=>{};exports.createContextState=function(n){let u=t.createContext(n),a=t.createContext(r);return[r=>{let{children:c}=r,[i,o]=t.useState(n);return e.jsx(u.Provider,{value:i,children:e.jsx(a.Provider,{value:o,children:c})})},()=>t.useContext(u),()=>t.useContext(a)]};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import"client-only";import{useContext as r,useState as t,createContext as o}from"react";let i=()=>{};function n(n){let l=o(n),c=o(i);return[r=>{let{children:o}=r,[i,a]=t(n);return e(l.Provider,{value:i,children:e(c.Provider,{value:a,children:o})})},()=>r(l),()=>r(c)]}export{n as createContextState};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "foxact",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "React Hooks/Utils done right. For browser, SSR, and React Server Components.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"files": [
|
|
@@ -47,22 +47,40 @@
|
|
|
47
47
|
"exports": {
|
|
48
48
|
"./package.json": "./package.json",
|
|
49
49
|
"./context-state": {
|
|
50
|
-
"types": "./context-state.d.ts",
|
|
50
|
+
"types": "./context-state/index.d.ts",
|
|
51
51
|
"import": {
|
|
52
|
-
"types": "./context-state.d.ts",
|
|
53
|
-
"default": "./context-state.mjs"
|
|
52
|
+
"types": "./context-state/index.d.ts",
|
|
53
|
+
"default": "./context-state/index.mjs"
|
|
54
54
|
},
|
|
55
|
-
"require": "./context-state.cjs",
|
|
56
|
-
"default": "./context-state.js"
|
|
55
|
+
"require": "./context-state/index.cjs",
|
|
56
|
+
"default": "./context-state/index.js"
|
|
57
57
|
},
|
|
58
58
|
"./use-retimer": {
|
|
59
|
-
"types": "./use-retimer.d.ts",
|
|
59
|
+
"types": "./use-retimer/index.d.ts",
|
|
60
60
|
"import": {
|
|
61
|
-
"types": "./use-retimer.d.ts",
|
|
62
|
-
"default": "./use-retimer.mjs"
|
|
61
|
+
"types": "./use-retimer/index.d.ts",
|
|
62
|
+
"default": "./use-retimer/index.mjs"
|
|
63
63
|
},
|
|
64
|
-
"require": "./use-retimer.cjs",
|
|
65
|
-
"default": "./use-retimer.js"
|
|
64
|
+
"require": "./use-retimer/index.cjs",
|
|
65
|
+
"default": "./use-retimer/index.js"
|
|
66
|
+
},
|
|
67
|
+
"./use-isomorphic-layout-effect": {
|
|
68
|
+
"types": "./use-isomorphic-layout-effect/index.d.ts",
|
|
69
|
+
"import": {
|
|
70
|
+
"types": "./use-isomorphic-layout-effect/index.d.ts",
|
|
71
|
+
"default": "./use-isomorphic-layout-effect/index.mjs"
|
|
72
|
+
},
|
|
73
|
+
"require": "./use-isomorphic-layout-effect/index.cjs",
|
|
74
|
+
"default": "./use-isomorphic-layout-effect/index.js"
|
|
75
|
+
},
|
|
76
|
+
"./use-intersection": {
|
|
77
|
+
"types": "./use-intersection/index.d.ts",
|
|
78
|
+
"import": {
|
|
79
|
+
"types": "./use-intersection/index.d.ts",
|
|
80
|
+
"default": "./use-intersection/index.mjs"
|
|
81
|
+
},
|
|
82
|
+
"require": "./use-intersection/index.cjs",
|
|
83
|
+
"default": "./use-intersection/index.js"
|
|
66
84
|
}
|
|
67
85
|
}
|
|
68
86
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";require("client-only");var e=require("react");const t="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(self)||function(e){let t=Date.now();return setTimeout(()=>{e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})},1)},n="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(self)||function(e){return clearTimeout(e)},r="function"==typeof IntersectionObserver,l=new Map,i=[];exports.useIntersection=function(o){let{rootRef:u,rootMargin:s,disabled:a}=o,[c,f]=e.useState(!1),d=e.useRef(null);e.useEffect(()=>{if(r){if(a||c)return;let e=d.current;if(null==e?void 0:e.tagName)return function(e,t,n){let{id:r,observer:o,elements:u}=function(e){let t;let n={root:e.root||null,margin:e.rootMargin||""},r=i.find(e=>e.root===n.root&&e.margin===n.margin);if(r&&(t=l.get(r)))return t;let o=new Map,u=new IntersectionObserver(e=>{e.forEach(e=>{let t=o.get(e.target),n=e.isIntersecting||e.intersectionRatio>0;t&&n&&t(n)})},e);return t={id:n,observer:u,elements:o},i.push(n),l.set(n,t),t}(n);return u.set(e,t),o.observe(e),function(){if(u.delete(e),o.unobserve(e),0===u.size){o.disconnect(),l.delete(r);let e=i.findIndex(e=>e.root===r.root&&e.margin===r.margin);e>-1&&i.splice(e,1)}}}(e,e=>e&&f(!0),{root:null==u?void 0:u.current,rootMargin:s})}if(!c){let e=t(()=>f(!0));return()=>n(e)}},[a,s,u,c]);let b=e.useCallback(()=>{f(!1)},[]),g=e.useCallback(e=>{d.current=e},[]);return[g,c,b]};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type UseIntersectionObserverInit = Pick<IntersectionObserverInit, 'rootMargin' | 'root'>;
|
|
2
|
+
type UseIntersectionArgs = {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
} & UseIntersectionObserverInit & {
|
|
5
|
+
rootRef?: React.RefObject<HTMLElement> | null;
|
|
6
|
+
};
|
|
7
|
+
declare function useIntersection<T extends Element>({ rootRef, rootMargin, disabled }: UseIntersectionArgs): [(element: T | null) => void, boolean, () => void];
|
|
8
|
+
|
|
9
|
+
export { useIntersection };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";require("client-only");var e=require("react");const t="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(self)||function(e){let t=Date.now();return setTimeout(()=>{e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})},1)},n="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(self)||function(e){return clearTimeout(e)},r="function"==typeof IntersectionObserver,l=new Map,i=[];exports.useIntersection=function(o){let{rootRef:u,rootMargin:s,disabled:a}=o,[c,f]=e.useState(!1),d=e.useRef(null);e.useEffect(()=>{if(r){if(a||c)return;let e=d.current;if(null==e?void 0:e.tagName)return function(e,t,n){let{id:r,observer:o,elements:u}=function(e){let t;let n={root:e.root||null,margin:e.rootMargin||""},r=i.find(e=>e.root===n.root&&e.margin===n.margin);if(r&&(t=l.get(r)))return t;let o=new Map,u=new IntersectionObserver(e=>{e.forEach(e=>{let t=o.get(e.target),n=e.isIntersecting||e.intersectionRatio>0;t&&n&&t(n)})},e);return t={id:n,observer:u,elements:o},i.push(n),l.set(n,t),t}(n);return u.set(e,t),o.observe(e),function(){if(u.delete(e),o.unobserve(e),0===u.size){o.disconnect(),l.delete(r);let e=i.findIndex(e=>e.root===r.root&&e.margin===r.margin);e>-1&&i.splice(e,1)}}}(e,e=>e&&f(!0),{root:null==u?void 0:u.current,rootMargin:s})}if(!c){let e=t(()=>f(!0));return()=>n(e)}},[a,s,u,c]);let b=e.useCallback(()=>{f(!1)},[]),g=e.useCallback(e=>{d.current=e},[]);return[g,c,b]};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"client-only";import{useState as e,useRef as t,useEffect as n,useCallback as r}from"react";let l="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(self)||function(e){let t=Date.now();return setTimeout(()=>{e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})},1)},i="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(self)||function(e){return clearTimeout(e)},o="function"==typeof IntersectionObserver;function u(u){let{rootRef:f,rootMargin:s,disabled:d}=u,[m,g]=e(!1),b=t(null);n(()=>{if(o){if(d||m)return;let e=b.current;if(null==e?void 0:e.tagName)return function(e,t,n){let{id:r,observer:l,elements:i}=function(e){let t;let n={root:e.root||null,margin:e.rootMargin||""},r=c.find(e=>e.root===n.root&&e.margin===n.margin);if(r&&(t=a.get(r)))return t;let l=new Map,i=new IntersectionObserver(e=>{e.forEach(e=>{let t=l.get(e.target),n=e.isIntersecting||e.intersectionRatio>0;t&&n&&t(n)})},e);return t={id:n,observer:i,elements:l},c.push(n),a.set(n,t),t}(n);return i.set(e,t),l.observe(e),function(){if(i.delete(e),l.unobserve(e),0===i.size){l.disconnect(),a.delete(r);let e=c.findIndex(e=>e.root===r.root&&e.margin===r.margin);e>-1&&c.splice(e,1)}}}(e,e=>e&&g(!0),{root:null==f?void 0:f.current,rootMargin:s})}if(!m){let e=l(()=>g(!0));return()=>i(e)}},[d,s,f,m]);let p=r(()=>{g(!1)},[]),I=r(e=>{b.current=e},[]);return[I,m,p]}let a=new Map,c=[];export{u as useIntersection};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";require("client-only");var e=require("react");const t="undefined"!=typeof window?e.useLayoutEffect:e.useEffect;exports.useIsomorphicLayoutEffect=t,exports.useLayoutEffect=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";require("client-only");var e=require("react");const t="undefined"!=typeof window?e.useLayoutEffect:e.useEffect;exports.useIsomorphicLayoutEffect=t,exports.useLayoutEffect=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"client-only";import{useLayoutEffect as e,useEffect as t}from"react";let o="undefined"!=typeof window?e:t,f=o;export{o as useIsomorphicLayoutEffect,f as useLayoutEffect};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";require("client-only");var e=require("react");exports.useRetimer=()=>{let r=e.useRef();return e.useCallback(e=>{"number"==typeof r.current&&clearTimeout(r.current),r.current=e},[])};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";require("client-only");var e=require("react");exports.useRetimer=()=>{let r=e.useRef();return e.useCallback(e=>{"number"==typeof r.current&&clearTimeout(r.current),r.current=e},[])};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"client-only";import{useRef as e,useCallback as r}from"react";let t=()=>{let t=e();return r(e=>{"number"==typeof t.current&&clearTimeout(t.current),t.current=e},[])};export{t as useRetimer};
|
package/context-state.cjs
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
require('client-only');
|
|
5
|
-
var react = require('react');
|
|
6
|
-
|
|
7
|
-
const noop = ()=>{
|
|
8
|
-
// noop;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
function createContextState(initialState) {
|
|
12
|
-
const StateContext = /*#__PURE__*/ react.createContext(initialState);
|
|
13
|
-
const DispatchContext = /*#__PURE__*/ react.createContext(noop);
|
|
14
|
-
const useValue = ()=>react.useContext(StateContext);
|
|
15
|
-
const useSetValue = ()=>react.useContext(DispatchContext);
|
|
16
|
-
const Provider = (param)=>{
|
|
17
|
-
let { children } = param;
|
|
18
|
-
const [value, setValue] = react.useState(initialState);
|
|
19
|
-
return /*#__PURE__*/ jsxRuntime.jsx(StateContext.Provider, {
|
|
20
|
-
value: value,
|
|
21
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(DispatchContext.Provider, {
|
|
22
|
-
value: setValue,
|
|
23
|
-
children: children
|
|
24
|
-
})
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
return [
|
|
28
|
-
Provider,
|
|
29
|
-
useValue,
|
|
30
|
-
useSetValue
|
|
31
|
-
];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
exports.createContextState = createContextState;
|
package/context-state.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
require('client-only');
|
|
5
|
-
var react = require('react');
|
|
6
|
-
|
|
7
|
-
const noop = ()=>{
|
|
8
|
-
// noop;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
function createContextState(initialState) {
|
|
12
|
-
const StateContext = /*#__PURE__*/ react.createContext(initialState);
|
|
13
|
-
const DispatchContext = /*#__PURE__*/ react.createContext(noop);
|
|
14
|
-
const useValue = ()=>react.useContext(StateContext);
|
|
15
|
-
const useSetValue = ()=>react.useContext(DispatchContext);
|
|
16
|
-
const Provider = (param)=>{
|
|
17
|
-
let { children } = param;
|
|
18
|
-
const [value, setValue] = react.useState(initialState);
|
|
19
|
-
return /*#__PURE__*/ jsxRuntime.jsx(StateContext.Provider, {
|
|
20
|
-
value: value,
|
|
21
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(DispatchContext.Provider, {
|
|
22
|
-
value: setValue,
|
|
23
|
-
children: children
|
|
24
|
-
})
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
return [
|
|
28
|
-
Provider,
|
|
29
|
-
useValue,
|
|
30
|
-
useSetValue
|
|
31
|
-
];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
exports.createContextState = createContextState;
|
package/context-state.mjs
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import 'client-only';
|
|
3
|
-
import { useContext, useState, createContext } from 'react';
|
|
4
|
-
|
|
5
|
-
const noop = ()=>{
|
|
6
|
-
// noop;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
function createContextState(initialState) {
|
|
10
|
-
const StateContext = /*#__PURE__*/ createContext(initialState);
|
|
11
|
-
const DispatchContext = /*#__PURE__*/ createContext(noop);
|
|
12
|
-
const useValue = ()=>useContext(StateContext);
|
|
13
|
-
const useSetValue = ()=>useContext(DispatchContext);
|
|
14
|
-
const Provider = (param)=>{
|
|
15
|
-
let { children } = param;
|
|
16
|
-
const [value, setValue] = useState(initialState);
|
|
17
|
-
return /*#__PURE__*/ jsx(StateContext.Provider, {
|
|
18
|
-
value: value,
|
|
19
|
-
children: /*#__PURE__*/ jsx(DispatchContext.Provider, {
|
|
20
|
-
value: setValue,
|
|
21
|
-
children: children
|
|
22
|
-
})
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
return [
|
|
26
|
-
Provider,
|
|
27
|
-
useValue,
|
|
28
|
-
useSetValue
|
|
29
|
-
];
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export { createContextState };
|
package/use-retimer.cjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
require('client-only');
|
|
4
|
-
var react = require('react');
|
|
5
|
-
|
|
6
|
-
const useRetimer = ()=>{
|
|
7
|
-
const timerIdRef = react.useRef();
|
|
8
|
-
return react.useCallback((timerId)=>{
|
|
9
|
-
if (typeof timerIdRef.current === 'number') {
|
|
10
|
-
clearTimeout(timerIdRef.current);
|
|
11
|
-
}
|
|
12
|
-
timerIdRef.current = timerId;
|
|
13
|
-
}, []);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
exports.useRetimer = useRetimer;
|
package/use-retimer.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
require('client-only');
|
|
4
|
-
var react = require('react');
|
|
5
|
-
|
|
6
|
-
const useRetimer = ()=>{
|
|
7
|
-
const timerIdRef = react.useRef();
|
|
8
|
-
return react.useCallback((timerId)=>{
|
|
9
|
-
if (typeof timerIdRef.current === 'number') {
|
|
10
|
-
clearTimeout(timerIdRef.current);
|
|
11
|
-
}
|
|
12
|
-
timerIdRef.current = timerId;
|
|
13
|
-
}, []);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
exports.useRetimer = useRetimer;
|
package/use-retimer.mjs
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import 'client-only';
|
|
2
|
-
import { useRef, useCallback } from 'react';
|
|
3
|
-
|
|
4
|
-
const useRetimer = ()=>{
|
|
5
|
-
const timerIdRef = useRef();
|
|
6
|
-
return useCallback((timerId)=>{
|
|
7
|
-
if (typeof timerIdRef.current === 'number') {
|
|
8
|
-
clearTimeout(timerIdRef.current);
|
|
9
|
-
}
|
|
10
|
-
timerIdRef.current = timerId;
|
|
11
|
-
}, []);
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export { useRetimer };
|
|
File without changes
|
|
File without changes
|