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.
@@ -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.1.1",
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,6 @@
1
+ import { useLayoutEffect as useLayoutEffect$1 } from 'react';
2
+
3
+ declare const useIsomorphicLayoutEffect: typeof useLayoutEffect$1;
4
+ declare const useLayoutEffect: typeof useLayoutEffect$1;
5
+
6
+ export { useIsomorphicLayoutEffect, useLayoutEffect };
@@ -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