extra-react-hooks 0.5.0 → 0.5.2

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
@@ -49,11 +49,32 @@ function useMultipleSelection<T>(
49
49
  function useMount(effect: EffectCallback): void
50
50
  ```
51
51
 
52
+ ### useMountAsync
53
+ ```ts
54
+ function useMountAsync(effect: (signal: AbortSignal) => Promise<void>): void
55
+ ```
56
+
52
57
  ### useUnmount
53
58
  ```ts
54
59
  function useUnmount(effect: () => void): void
55
60
  ```
56
61
 
62
+ ### useEffectAsync
63
+ ```ts
64
+ function useEffectAsync(
65
+ effect: (signal: AbortSignal) => Promise<void>
66
+ , deps?: DependencyList
67
+ ): void
68
+ ```
69
+
70
+ ### useCallbackAsync
71
+ ```ts
72
+ function useCallbackAsync<Args extends unknown[]>(
73
+ callback: (...args: [...args: Args, signal: AbortSignal]) => Promise<void>
74
+ , deps: DependencyList
75
+ ): (...args: Args) => void
76
+ ```
77
+
57
78
  ### useUpdateEffect
58
79
  ```ts
59
80
  function useUpdateEffect(
package/lib/index.d.ts CHANGED
@@ -3,7 +3,10 @@ export * from './use-is-mounted.js';
3
3
  export * from './use-is-first-render.js';
4
4
  export * from './use-render-counter.js';
5
5
  export * from './use-mount.js';
6
+ export * from './use-mount-async.js';
6
7
  export * from './use-unmount.js';
8
+ export * from './use-effect-async.js';
9
+ export * from './use-callback-async.js';
7
10
  export * from './use-update-effect.js';
8
11
  export * from './use-single-selection.js';
9
12
  export * from './use-multiple-selection.js';
package/lib/index.js CHANGED
@@ -3,7 +3,10 @@ export * from './use-is-mounted.js';
3
3
  export * from './use-is-first-render.js';
4
4
  export * from './use-render-counter.js';
5
5
  export * from './use-mount.js';
6
+ export * from './use-mount-async.js';
6
7
  export * from './use-unmount.js';
8
+ export * from './use-effect-async.js';
9
+ export * from './use-callback-async.js';
7
10
  export * from './use-update-effect.js';
8
11
  export * from './use-single-selection.js';
9
12
  export * from './use-multiple-selection.js';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,eAAe,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { DependencyList } from 'react';
2
+ export declare function useCallbackAsync<Args extends unknown[]>(callback: (...args: [...args: Args, signal: AbortSignal]) => Promise<void>, deps: DependencyList): (...args: Args) => void;
@@ -0,0 +1,20 @@
1
+ import { useEffect, useCallback, useMemo } from 'react';
2
+ import { go } from '@blackglory/prelude';
3
+ import { AbortController } from 'extra-abort';
4
+ const abort = Symbol();
5
+ export function useCallbackAsync(callback, deps) {
6
+ const controller = useMemo(() => new AbortController(), deps);
7
+ useEffect(() => () => controller.abort(abort), deps);
8
+ return useCallback((...args) => {
9
+ go(async () => {
10
+ try {
11
+ await callback(...args, controller.signal);
12
+ }
13
+ catch (err) {
14
+ if (err !== abort)
15
+ throw err;
16
+ }
17
+ });
18
+ }, deps);
19
+ }
20
+ //# sourceMappingURL=use-callback-async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-callback-async.js","sourceRoot":"","sources":["../src/use-callback-async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAA;AACvE,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;AAEtB,MAAM,UAAU,gBAAgB,CAC9B,QAA0E,EAC1E,IAAoB;IAEpB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE,EAAE,IAAI,CAAC,CAAA;IAC7D,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;IAEpD,OAAO,WAAW,CAAC,CAAC,GAAG,IAAU,EAAE,EAAE;QACnC,EAAE,CAAC,KAAK,IAAI,EAAE;YACZ,IAAI;gBACF,MAAM,QAAQ,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;aAC3C;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,GAAG,KAAK,KAAK;oBAAE,MAAM,GAAG,CAAA;aAC7B;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,IAAI,CAAC,CAAA;AACV,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { DependencyList } from 'react';
2
+ export declare function useEffectAsync(effect: (signal: AbortSignal) => Promise<void>, deps?: DependencyList): void;
@@ -0,0 +1,20 @@
1
+ import { useEffect } from 'react';
2
+ import { go } from '@blackglory/prelude';
3
+ import { AbortController } from 'extra-abort';
4
+ const abort = Symbol();
5
+ export function useEffectAsync(effect, deps) {
6
+ useEffect(() => {
7
+ const controller = new AbortController();
8
+ go(async () => {
9
+ try {
10
+ await effect(controller.signal);
11
+ }
12
+ catch (err) {
13
+ if (err !== abort)
14
+ throw err;
15
+ }
16
+ });
17
+ return () => controller.abort();
18
+ }, deps);
19
+ }
20
+ //# sourceMappingURL=use-effect-async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-effect-async.js","sourceRoot":"","sources":["../src/use-effect-async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;AAEtB,MAAM,UAAU,cAAc,CAC5B,MAA8C,EAC9C,IAAqB;IAErB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QAExC,EAAE,CAAC,KAAK,IAAI,EAAE;YACZ,IAAI;gBACF,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;aAChC;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,GAAG,KAAK,KAAK;oBAAE,MAAM,GAAG,CAAA;aAC7B;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IACjC,CAAC,EAAE,IAAI,CAAC,CAAA;AACV,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function useMountAsync(effect: (signal: AbortSignal) => Promise<void>): void;
@@ -0,0 +1,5 @@
1
+ import { useEffectAsync } from './use-effect-async.js';
2
+ export function useMountAsync(effect) {
3
+ useEffectAsync(effect, []);
4
+ }
5
+ //# sourceMappingURL=use-mount-async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mount-async.js","sourceRoot":"","sources":["../src/use-mount-async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,UAAU,aAAa,CAAC,MAA8C;IAC1E,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAC5B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { NonEmptyArray } from 'justypes';
1
+ import { NonEmptyArray } from '@blackglory/prelude';
2
2
  import { IOptionState } from "./types.js";
3
3
  export declare function useMultipleSelection<T>(options: NonEmptyArray<T>, defaultSelectedIndexes?: number[]): {
4
4
  selectedIndexes: number[];
@@ -1,6 +1,5 @@
1
1
  import { useState, useMemo, useCallback } from 'react';
2
- import { assert } from '@blackglory/errors';
3
- import { toArray } from 'iterable-operator';
2
+ import { assert, toArray } from '@blackglory/prelude';
4
3
  import { useIIFE } from "./use-iife.js";
5
4
  export function useMultipleSelection(options, defaultSelectedIndexes = []) {
6
5
  useIIFE(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-multiple-selection.js","sourceRoot":"","sources":["../src/use-multiple-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAG3C,OAAO,EAAE,OAAO,EAAE,sBAAwB;AAE1C,MAAM,UAAU,oBAAoB,CAClC,OAAyB,EACzB,yBAAmC,EAAE;IAQrC,OAAO,CAAC,GAAG,EAAE;QACX,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE;YAC1C,MAAM,CACJ,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,EACpC,0FAA0F,CAC3F,CAAA;SACF;IACH,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAE5B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAEvF,OAAO;QACL,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;QAC3E,YAAY,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACrE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/B,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;KACpC,CAAA;IAED,SAAS,kBAAkB;QACzB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAClC,OAAO,EAAE,QAAQ,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,UAAU,CAAC,KAAa;QAC/B,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,SAAS,MAAM,CAAC,KAAa;QAC3B,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;YACrB,QAAQ,CAAC,KAAK,CAAC,CAAA;SAChB;aAAM;YACL,MAAM,CAAC,KAAK,CAAC,CAAA;SACd;IACH,CAAC;IAED,SAAS,MAAM,CAAC,KAAa;QAC3B,kBAAkB,CAAC,eAAe,CAAC,EAAE;YACnC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAA;YACvC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACjB,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,QAAQ,CAAC,KAAa;QAC7B,kBAAkB,CAAC,eAAe,CAAC,EAAE;YACnC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAA;YACvC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACpB,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"use-multiple-selection.js","sourceRoot":"","sources":["../src/use-multiple-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAiB,MAAM,qBAAqB,CAAA;AAEpE,OAAO,EAAE,OAAO,EAAE,sBAAwB;AAE1C,MAAM,UAAU,oBAAoB,CAClC,OAAyB,EACzB,yBAAmC,EAAE;IAQrC,OAAO,CAAC,GAAG,EAAE;QACX,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE;YAC1C,MAAM,CACJ,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,EACpC,0FAA0F,CAC3F,CAAA;SACF;IACH,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAE5B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAEvF,OAAO;QACL,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;QAC3E,YAAY,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACrE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/B,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;KACpC,CAAA;IAED,SAAS,kBAAkB;QACzB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAClC,OAAO,EAAE,QAAQ,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,UAAU,CAAC,KAAa;QAC/B,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,SAAS,MAAM,CAAC,KAAa;QAC3B,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;YACrB,QAAQ,CAAC,KAAK,CAAC,CAAA;SAChB;aAAM;YACL,MAAM,CAAC,KAAK,CAAC,CAAA;SACd;IACH,CAAC;IAED,SAAS,MAAM,CAAC,KAAa;QAC3B,kBAAkB,CAAC,eAAe,CAAC,EAAE;YACnC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAA;YACvC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACjB,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,QAAQ,CAAC,KAAa;QAC7B,kBAAkB,CAAC,eAAe,CAAC,EAAE;YACnC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAA;YACvC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACpB,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { useEffect } from 'react';
2
- import { isntNull } from 'extra-utils';
2
+ import { isntNull } from '@blackglory/prelude';
3
3
  export function useResizeObserver(callback, refs) {
4
4
  const deps = refs.map(x => x.current);
5
5
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-resize-observer.js","sourceRoot":"","sources":["../src/use-resize-observer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,MAAM,UAAU,iBAAiB,CAC/B,QAAgC,EAChC,IAAmE;IAEnE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAErC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAA;QAE7C,IAAI;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACnB,MAAM,CAAC,QAAQ,CAAC;aAChB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;IACpC,CAAC,EAAE,IAAI,CAAC,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"use-resize-observer.js","sourceRoot":"","sources":["../src/use-resize-observer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,MAAM,UAAU,iBAAiB,CAC/B,QAAgC,EAChC,IAAmE;IAEnE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAErC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAA;QAE7C,IAAI;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACnB,MAAM,CAAC,QAAQ,CAAC;aAChB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;IACpC,CAAC,EAAE,IAAI,CAAC,CAAA;AACV,CAAC"}
@@ -1,4 +1,4 @@
1
- import { NonEmptyArray } from 'justypes';
1
+ import { NonEmptyArray } from '@blackglory/prelude';
2
2
  import { IOptionState } from "./types.js";
3
3
  export declare function useSingleSelection<T>(options: NonEmptyArray<T>, defaultSelectedIndex: number): {
4
4
  selectedIndex: number;
@@ -1,5 +1,5 @@
1
1
  import { useState, useMemo, useCallback } from 'react';
2
- import { assert } from '@blackglory/errors';
2
+ import { assert } from '@blackglory/prelude';
3
3
  import { useIIFE } from "./use-iife.js";
4
4
  export function useSingleSelection(options, defaultSelectedIndex) {
5
5
  useIIFE(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-single-selection.js","sourceRoot":"","sources":["../src/use-single-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3C,OAAO,EAAE,OAAO,EAAE,sBAAwB;AAE1C,MAAM,UAAU,kBAAkB,CAChC,OAAyB,EACzB,oBAA4B;IAM5B,OAAO,CAAC,GAAG,EAAE;QACX,MAAM,CACJ,oBAAoB,IAAI,CAAC,IAAI,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAClE,+EAA+E,CAChF,CAAA;IACH,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAE1B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IAExE,OAAO;QACL,aAAa;QACb,YAAY,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;KAChC,CAAA;IAED,SAAS,kBAAkB;QACzB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,QAAQ,EAAE,KAAK,KAAK,aAAa;SAClC,CAAC,CAAC,CAAA;IACL,CAAC;IAED,SAAS,MAAM,CAAC,KAAa;QAC3B,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"use-single-selection.js","sourceRoot":"","sources":["../src/use-single-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,MAAM,EAAiB,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,sBAAwB;AAE1C,MAAM,UAAU,kBAAkB,CAChC,OAAyB,EACzB,oBAA4B;IAM5B,OAAO,CAAC,GAAG,EAAE;QACX,MAAM,CACJ,oBAAoB,IAAI,CAAC,IAAI,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAClE,+EAA+E,CAChF,CAAA;IACH,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAE1B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IAExE,OAAO;QACL,aAAa;QACb,YAAY,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;KAChC,CAAA;IAED,SAAS,kBAAkB;QACzB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,QAAQ,EAAE,KAAK,KAAK,aAAa;SAClC,CAAC,CAAC,CAAA;IACL,CAAC;IAED,SAAS,MAAM,CAAC,KAAa;QAC3B,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;AACH,CAAC"}
@@ -1,2 +1,2 @@
1
- import { NonEmptyArray } from 'justypes';
1
+ import { NonEmptyArray } from '@blackglory/prelude';
2
2
  export declare function useStateCycle<T>(orderedStates: NonEmptyArray<T>, initialStateIndex?: number): [state: T, next: () => void];
package/lib/use-step.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { NonEmptyArray } from 'justypes';
1
+ import { NonEmptyArray } from '@blackglory/prelude';
2
2
  export declare function useStep<T>(steps: NonEmptyArray<T>, initialStepIndex?: number): [currentStep: T, next: () => void, previous: () => void];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "extra-react-hooks",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "files": [
@@ -33,15 +33,15 @@
33
33
  }
34
34
  },
35
35
  "devDependencies": {
36
- "@blackglory/wait-for": "^0.6.0",
37
- "@commitlint/cli": "^17.4.4",
38
- "@commitlint/config-conventional": "^17.4.4",
36
+ "@blackglory/wait-for": "^0.7.3",
37
+ "@commitlint/cli": "^17.6.1",
38
+ "@commitlint/config-conventional": "^17.6.1",
39
39
  "@testing-library/react": "^14.0.0",
40
40
  "@types/jasmine": "^4.3.1",
41
- "@types/react": "^18.0.28",
42
- "@typescript-eslint/eslint-plugin": "^5.54.0",
43
- "@typescript-eslint/parser": "^5.54.0",
44
- "eslint": "^8.35.0",
41
+ "@types/react": "^18.0.35",
42
+ "@typescript-eslint/eslint-plugin": "^5.58.0",
43
+ "@typescript-eslint/parser": "^5.58.0",
44
+ "eslint": "^8.38.0",
45
45
  "eslint-plugin-react-hooks": "^4.6.0",
46
46
  "husky": "4",
47
47
  "karma": "^6.4.1",
@@ -56,18 +56,16 @@
56
56
  "standard-version": "^9.3.2",
57
57
  "ts-loader": "^9.4.2",
58
58
  "ts-patch": "^2.1.0",
59
- "tsconfig-paths-webpack-plugin": "^4.0.0",
59
+ "tsconfig-paths-webpack-plugin": "^4.0.1",
60
60
  "tslib": "^2.4.1",
61
61
  "typescript": "4.9.5",
62
62
  "typescript-transform-paths": "^3.4.6",
63
- "webpack": "^5.75.0"
63
+ "webpack": "^5.79.0"
64
64
  },
65
65
  "dependencies": {
66
- "@blackglory/errors": "^3.0.0",
67
- "extra-fsm": "^0.1.1",
68
- "extra-utils": "^5.1.0",
69
- "iterable-operator": "^4.0.3",
70
- "justypes": "^4.1.0",
66
+ "@blackglory/prelude": "^0.3.2",
67
+ "extra-abort": "^0.3.6",
68
+ "extra-fsm": "^0.2.0",
71
69
  "rxjs": "^7.8.0"
72
70
  },
73
71
  "peerDependencies": {