foxact 0.2.15 → 0.2.17

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/README.md CHANGED
@@ -26,7 +26,7 @@ Written in TypeScript. Unlocking strong typing benefits with TypeScript 4.8+.
26
26
 
27
27
  #### Super Lightweight
28
28
 
29
- The entire **foxact** library has zero dependencies and is **less than 5 KiB gzipped in sum**, ensuring a lean and efficient solution. And what's more...
29
+ The entire **foxact** library has zero dependencies and is **about 5 KiB gzipped in sum**, ensuring a lean and efficient solution. And what's more...
30
30
 
31
31
  #### Fully Tree Shakable
32
32
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foxact",
3
- "version": "0.2.15",
3
+ "version": "0.2.17",
4
4
  "description": "React Hooks/Utils done right. For browser, SSR, and React Server Components.",
5
5
  "sideEffects": false,
6
6
  "files": [
@@ -191,14 +191,14 @@
191
191
  "require": "./use-map/index.cjs",
192
192
  "default": "./use-map/index.js"
193
193
  },
194
- "./use-react-router-is-match": {
195
- "types": "./use-react-router-is-match/index.d.ts",
194
+ "./use-next-pathname": {
195
+ "types": "./use-next-pathname/index.d.ts",
196
196
  "import": {
197
- "types": "./use-react-router-is-match/index.d.ts",
198
- "default": "./use-react-router-is-match/index.mjs"
197
+ "types": "./use-next-pathname/index.d.ts",
198
+ "default": "./use-next-pathname/index.mjs"
199
199
  },
200
- "require": "./use-react-router-is-match/index.cjs",
201
- "default": "./use-react-router-is-match/index.js"
200
+ "require": "./use-next-pathname/index.cjs",
201
+ "default": "./use-next-pathname/index.js"
202
202
  },
203
203
  "./use-react-router-enable-concurrent-navigation": {
204
204
  "types": "./use-react-router-enable-concurrent-navigation/index.d.ts",
@@ -209,6 +209,15 @@
209
209
  "require": "./use-react-router-enable-concurrent-navigation/index.cjs",
210
210
  "default": "./use-react-router-enable-concurrent-navigation/index.js"
211
211
  },
212
+ "./use-react-router-is-match": {
213
+ "types": "./use-react-router-is-match/index.d.ts",
214
+ "import": {
215
+ "types": "./use-react-router-is-match/index.d.ts",
216
+ "default": "./use-react-router-is-match/index.mjs"
217
+ },
218
+ "require": "./use-react-router-is-match/index.cjs",
219
+ "default": "./use-react-router-is-match/index.js"
220
+ },
212
221
  "./use-retimer": {
213
222
  "types": "./use-retimer/index.d.ts",
214
223
  "import": {
@@ -227,14 +236,14 @@
227
236
  "require": "./use-set/index.cjs",
228
237
  "default": "./use-set/index.js"
229
238
  },
230
- "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired": {
231
- "types": "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.d.ts",
239
+ "./use-singleton": {
240
+ "types": "./use-singleton/index.d.ts",
232
241
  "import": {
233
- "types": "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.d.ts",
234
- "default": "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.mjs"
242
+ "types": "./use-singleton/index.d.ts",
243
+ "default": "./use-singleton/index.mjs"
235
244
  },
236
- "require": "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.cjs",
237
- "default": "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.js"
245
+ "require": "./use-singleton/index.cjs",
246
+ "default": "./use-singleton/index.js"
238
247
  },
239
248
  "./use-uncontrolled": {
240
249
  "types": "./use-uncontrolled/index.d.ts",
@@ -244,6 +253,15 @@
244
253
  },
245
254
  "require": "./use-uncontrolled/index.cjs",
246
255
  "default": "./use-uncontrolled/index.js"
256
+ },
257
+ "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired": {
258
+ "types": "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.d.ts",
259
+ "import": {
260
+ "types": "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.d.ts",
261
+ "default": "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.mjs"
262
+ },
263
+ "require": "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.cjs",
264
+ "default": "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.js"
247
265
  }
248
266
  }
249
267
  }
package/sizes.json CHANGED
@@ -1 +1 @@
1
- {"total":{"raw":8871,"gzip":5737,"br":0},"exports":{"create-context-state":{"raw":146,"gzip":116,"br":102},"context-state":{"raw":371,"gzip":240,"br":204},"noop":{"raw":32,"gzip":52,"br":36},"typescript-happy-forward-ref":{"raw":118,"gzip":102,"br":87},"use":{"raw":279,"gzip":175,"br":151},"request-idle-callback":{"raw":407,"gzip":231,"br":180},"use-array":{"raw":329,"gzip":242,"br":201},"use-composition-input":{"raw":420,"gzip":262,"br":230},"use-debounced-state":{"raw":380,"gzip":275,"br":231},"use-clipboard":{"raw":1071,"gzip":614,"br":527},"use-debounced-value":{"raw":370,"gzip":263,"br":214},"use-error-boundary":{"raw":238,"gzip":194,"br":158},"use-is-client":{"raw":148,"gzip":143,"br":115},"use-intersection":{"raw":1214,"gzip":652,"br":592},"use-map":{"raw":348,"gzip":243,"br":210},"use-react-router-is-match":{"raw":562,"gzip":369,"br":309},"use-retimer":{"raw":197,"gzip":165,"br":125},"use-isomorphic-layout-effect":{"raw":177,"gzip":143,"br":120},"use-set":{"raw":349,"gzip":242,"br":203},"use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired":{"raw":461,"gzip":325,"br":256},"use-react-router-enable-concurrent-navigation":{"raw":950,"gzip":453,"br":373},"use-uncontrolled":{"raw":304,"gzip":236,"br":201}}}
1
+ {"total":{"raw":9337,"gzip":6112,"br":0},"exports":{"context-state":{"raw":371,"gzip":240,"br":204},"noop":{"raw":32,"gzip":52,"br":36},"request-idle-callback":{"raw":407,"gzip":231,"br":180},"typescript-happy-forward-ref":{"raw":118,"gzip":102,"br":87},"use":{"raw":279,"gzip":175,"br":151},"use-array":{"raw":329,"gzip":242,"br":201},"use-composition-input":{"raw":449,"gzip":280,"br":240},"use-clipboard":{"raw":1071,"gzip":614,"br":527},"use-debounced-value":{"raw":370,"gzip":263,"br":214},"create-context-state":{"raw":146,"gzip":116,"br":102},"use-is-client":{"raw":148,"gzip":143,"br":115},"use-debounced-state":{"raw":380,"gzip":275,"br":231},"use-map":{"raw":348,"gzip":243,"br":210},"use-error-boundary":{"raw":238,"gzip":194,"br":158},"use-next-pathname":{"raw":313,"gzip":236,"br":196},"use-intersection":{"raw":1214,"gzip":652,"br":592},"use-react-router-is-match":{"raw":562,"gzip":369,"br":309},"use-retimer":{"raw":197,"gzip":165,"br":125},"use-set":{"raw":349,"gzip":242,"br":203},"use-singleton":{"raw":135,"gzip":129,"br":111},"use-uncontrolled":{"raw":293,"gzip":228,"br":189},"use-isomorphic-layout-effect":{"raw":177,"gzip":143,"br":120},"use-react-router-enable-concurrent-navigation":{"raw":950,"gzip":453,"br":373},"use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired":{"raw":461,"gzip":325,"br":256}}}
@@ -1 +1 @@
1
- "use strict";require("client-only");var e=require("react");exports.useCompositionInput=r=>{let t=e.useRef();t.current||(t.current={c:!1,e:!1});let u=e.useCallback(e=>{if("value"in e.target){let u=e.target.value;t.current.c?t.current.e=!1:(r(u),t.current.e=!0)}},[r]),c=e.useCallback(()=>{t.current.c=!0,t.current.e=!1},[]),n=e.useCallback(e=>{t.current.c=!1,t.current.e||u(e)},[u]);return{onChange:u,onCompositionStart:c,onCompositionEnd:n}};
1
+ "use strict";require("client-only");var e=require("react"),r=require("../use-singleton/index.cjs");exports.useCompositionInput=t=>{let u=r.useSingleton(()=>({c:!1,e:!1})),c=e.useCallback(e=>{if("value"in e.target){let r=e.target.value;u.current.c?u.current.e=!1:(t(r),u.current.e=!0)}},[t,u]),n=e.useCallback(()=>{u.current.c=!0,u.current.e=!1},[u]),l=e.useCallback(e=>{u.current.c=!1,u.current.e||c(e)},[u,c]);return{onChange:c,onCompositionStart:n,onCompositionEnd:l}};
@@ -1 +1 @@
1
- "use strict";require("client-only");var e=require("react");exports.useCompositionInput=r=>{let t=e.useRef();t.current||(t.current={c:!1,e:!1});let u=e.useCallback(e=>{if("value"in e.target){let u=e.target.value;t.current.c?t.current.e=!1:(r(u),t.current.e=!0)}},[r]),c=e.useCallback(()=>{t.current.c=!0,t.current.e=!1},[]),n=e.useCallback(e=>{t.current.c=!1,t.current.e||u(e)},[u]);return{onChange:u,onCompositionStart:c,onCompositionEnd:n}};
1
+ "use strict";require("client-only");var e=require("react"),r=require("../use-singleton/index.js");exports.useCompositionInput=t=>{let u=r.useSingleton(()=>({c:!1,e:!1})),n=e.useCallback(e=>{if("value"in e.target){let r=e.target.value;u.current.c?u.current.e=!1:(t(r),u.current.e=!0)}},[t,u]),c=e.useCallback(()=>{u.current.c=!0,u.current.e=!1},[u]),l=e.useCallback(e=>{u.current.c=!1,u.current.e||n(e)},[u,n]);return{onChange:n,onCompositionStart:c,onCompositionEnd:l}};
@@ -1 +1 @@
1
- import"client-only";import{useRef as e,useCallback as r}from"react";let t=t=>{let c=e();c.current||(c.current={c:!1,e:!1});let n=r(e=>{if("value"in e.target){let r=e.target.value;c.current.c?c.current.e=!1:(t(r),c.current.e=!0)}},[t]),u=r(()=>{c.current.c=!0,c.current.e=!1},[]),l=r(e=>{c.current.c=!1,c.current.e||n(e)},[n]);return{onChange:n,onCompositionStart:u,onCompositionEnd:l}};export{t as useCompositionInput};
1
+ import"client-only";import{useCallback as e}from"react";import{useSingleton as r}from"../use-singleton/index.mjs";let t=t=>{let n=r(()=>({c:!1,e:!1})),c=e(e=>{if("value"in e.target){let r=e.target.value;n.current.c?n.current.e=!1:(t(r),n.current.e=!0)}},[t,n]),u=e(()=>{n.current.c=!0,n.current.e=!1},[n]),o=e(e=>{n.current.c=!1,n.current.e||c(e)},[n,c]);return{onChange:c,onCompositionStart:u,onCompositionEnd:o}};export{t as useCompositionInput};
@@ -0,0 +1 @@
1
+ "use strict";require("client-only");var e=require("next/router.js"),t=require("react");exports.useNextPathname=function(){let r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],{asPath:u}=e.useRouter();return t.useMemo(()=>{let e=u.split(/[?#]/)[0];return r?e.endsWith("/")?e:"".concat(e,"/"):e},[r,u])};
@@ -0,0 +1,4 @@
1
+ /** @see https://foxact.skk.moe/use-next-pathname */
2
+ declare const useNextPathname: (ensureTrailingSlash?: boolean) => string;
3
+
4
+ export { useNextPathname };
@@ -0,0 +1 @@
1
+ "use strict";require("client-only");var e=require("next/router.js"),t=require("react");exports.useNextPathname=function(){let r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],{asPath:u}=e.useRouter();return t.useMemo(()=>{let e=u.split(/[?#]/)[0];return r?e.endsWith("/")?e:"".concat(e,"/"):e},[r,u])};
@@ -0,0 +1 @@
1
+ import"client-only";import{useRouter as t}from"next/router.js";import{useMemo as e}from"react";let r=function(){let r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],{asPath:n}=t();return e(()=>{let t=n.split(/[?#]/)[0];return r?t.endsWith("/")?t:"".concat(t,"/"):t},[r,n])};export{r as useNextPathname};
@@ -0,0 +1 @@
1
+ "use strict";require("client-only");var e=require("react");exports.useSingleton=r=>{let t=e.useRef();return t.current||(t.current=r()),t};
@@ -0,0 +1,7 @@
1
+ interface SingletonRefObject<T> {
2
+ readonly current: T;
3
+ }
4
+ /** @see https://foxact.skk.moe/use-singleton */
5
+ declare const useSingleton: <T>(initializor: () => T) => SingletonRefObject<T>;
6
+
7
+ export { SingletonRefObject, useSingleton };
@@ -0,0 +1 @@
1
+ "use strict";require("client-only");var e=require("react");exports.useSingleton=r=>{let t=e.useRef();return t.current||(t.current=r()),t};
@@ -0,0 +1 @@
1
+ import"client-only";import{useRef as r}from"react";let t=t=>{let e=r();return e.current||(e.current=t()),e};export{t as useSingleton};
@@ -1 +1 @@
1
- "use strict";require("client-only");var e=require("react");const r=e=>e;exports.useUncontrolled=function(u){let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,t=e.useRef(null),n=e.useCallback((e,r)=>l(r),[l]),[c,s]=e.useReducer(n,u),a=e.useCallback(()=>{t.current&&s(t.current.value)},[]);return[c,a,t]};
1
+ "use strict";require("client-only");var e=require("react");const r=e=>e;exports.useUncontrolled=function(u){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,n=e.useRef(null),[l,c]=e.useReducer((e,r)=>t(r),u),s=e.useCallback(()=>{n.current&&c(n.current.value)},[]);return[l,s,n]};
@@ -1 +1 @@
1
- "use strict";require("client-only");var e=require("react");const r=e=>e;exports.useUncontrolled=function(u){let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,t=e.useRef(null),n=e.useCallback((e,r)=>l(r),[l]),[c,s]=e.useReducer(n,u),a=e.useCallback(()=>{t.current&&s(t.current.value)},[]);return[c,a,t]};
1
+ "use strict";require("client-only");var e=require("react");const r=e=>e;exports.useUncontrolled=function(u){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,n=e.useRef(null),[l,c]=e.useReducer((e,r)=>t(r),u),s=e.useCallback(()=>{n.current&&c(n.current.value)},[]);return[l,s,n]};
@@ -1 +1 @@
1
- import"client-only";import{useRef as t,useCallback as e,useReducer as r}from"react";let n=t=>t;function l(l){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n,u=t(null),c=e((t,e)=>o(e),[o]),[i,m]=r(c,l),p=e(()=>{u.current&&m(u.current.value)},[]);return[i,p,u]}export{l as useUncontrolled};
1
+ import"client-only";import{useRef as t,useReducer as e,useCallback as r}from"react";let n=t=>t;function l(l){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n,u=t(null),[c,i]=e((t,e)=>o(e),l),m=r(()=>{u.current&&i(u.current.value)},[]);return[c,m,u]}export{l as useUncontrolled};