extra-react-hooks 0.1.3 → 0.1.7

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.
Files changed (65) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +32 -0
  3. package/dist/es2015/index.min.mjs +2 -2
  4. package/dist/es2015/index.min.mjs.map +1 -1
  5. package/dist/es2015/index.mjs +109 -66
  6. package/dist/es2015/index.mjs.map +1 -1
  7. package/dist/es2015/index.umd.js +114 -67
  8. package/dist/es2015/index.umd.js.map +1 -1
  9. package/dist/es2015/index.umd.min.js +2 -2
  10. package/dist/es2015/index.umd.min.js.map +1 -1
  11. package/dist/es2018/index.min.mjs +2 -2
  12. package/dist/es2018/index.min.mjs.map +1 -1
  13. package/dist/es2018/index.mjs +109 -66
  14. package/dist/es2018/index.mjs.map +1 -1
  15. package/dist/es2018/index.umd.js +114 -67
  16. package/dist/es2018/index.umd.js.map +1 -1
  17. package/dist/es2018/index.umd.min.js +2 -2
  18. package/dist/es2018/index.umd.min.js.map +1 -1
  19. package/lib/es2015/index.d.ts +4 -0
  20. package/lib/es2015/index.js +4 -0
  21. package/lib/es2015/index.js.map +1 -1
  22. package/lib/es2015/use-increment.d.ts +1 -0
  23. package/lib/es2015/use-increment.js +16 -0
  24. package/lib/es2015/use-increment.js.map +1 -0
  25. package/lib/es2015/use-is-mounted.d.ts +1 -0
  26. package/lib/es2015/use-is-mounted.js +17 -0
  27. package/lib/es2015/use-is-mounted.js.map +1 -0
  28. package/lib/es2015/use-mount.js +1 -1
  29. package/lib/es2015/use-mount.js.map +1 -1
  30. package/lib/es2015/use-resize-observer.d.ts +2 -0
  31. package/lib/es2015/use-resize-observer.js +18 -0
  32. package/lib/es2015/use-resize-observer.js.map +1 -0
  33. package/lib/es2015/use-single-selection.js +5 -5
  34. package/lib/es2015/use-single-selection.js.map +1 -1
  35. package/lib/es2015/use-state-cycle.js +8 -5
  36. package/lib/es2015/use-state-cycle.js.map +1 -1
  37. package/lib/es2015/use-step.d.ts +1 -0
  38. package/lib/es2015/use-step.js +32 -0
  39. package/lib/es2015/use-step.js.map +1 -0
  40. package/lib/es2015/use-toggle.js +1 -1
  41. package/lib/es2015/use-toggle.js.map +1 -1
  42. package/lib/es2018/index.d.ts +4 -0
  43. package/lib/es2018/index.js +4 -0
  44. package/lib/es2018/index.js.map +1 -1
  45. package/lib/es2018/use-increment.d.ts +1 -0
  46. package/lib/es2018/use-increment.js +16 -0
  47. package/lib/es2018/use-increment.js.map +1 -0
  48. package/lib/es2018/use-is-mounted.d.ts +1 -0
  49. package/lib/es2018/use-is-mounted.js +17 -0
  50. package/lib/es2018/use-is-mounted.js.map +1 -0
  51. package/lib/es2018/use-mount.js +1 -1
  52. package/lib/es2018/use-mount.js.map +1 -1
  53. package/lib/es2018/use-resize-observer.d.ts +2 -0
  54. package/lib/es2018/use-resize-observer.js +18 -0
  55. package/lib/es2018/use-resize-observer.js.map +1 -0
  56. package/lib/es2018/use-single-selection.js +5 -5
  57. package/lib/es2018/use-single-selection.js.map +1 -1
  58. package/lib/es2018/use-state-cycle.js +8 -5
  59. package/lib/es2018/use-state-cycle.js.map +1 -1
  60. package/lib/es2018/use-step.d.ts +1 -0
  61. package/lib/es2018/use-step.js +32 -0
  62. package/lib/es2018/use-step.js.map +1 -0
  63. package/lib/es2018/use-toggle.js +1 -1
  64. package/lib/es2018/use-toggle.js.map +1 -1
  65. package/package.json +28 -22
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
3
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ExtraReactHooks = {}));
5
- }(this, (function (exports) { 'use strict';
5
+ })(this, (function (exports) { 'use strict';
6
6
 
7
7
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
8
8
 
@@ -2462,10 +2462,32 @@
2462
2462
  react.exports = react_development;
2463
2463
  }
2464
2464
 
2465
+ function useIncrement(initialValue) {
2466
+ const [value, setValue] = react.exports.useState(initialValue);
2467
+ const increment = react.exports.useCallback((step = 1) => {
2468
+ setValue(value => value + step);
2469
+ }, []);
2470
+ const reset = react.exports.useCallback(() => {
2471
+ setValue(initialValue);
2472
+ }, []);
2473
+ return [value, increment, reset];
2474
+ }
2475
+
2465
2476
  function useMount(effect) {
2466
2477
  react.exports.useEffect(effect, []);
2467
2478
  }
2468
2479
 
2480
+ function useIsMounted() {
2481
+ const isMounted = react.exports.useRef(false);
2482
+ useMount(() => {
2483
+ isMounted.current = true;
2484
+ return () => {
2485
+ isMounted.current = false;
2486
+ };
2487
+ });
2488
+ return () => isMounted.current;
2489
+ }
2490
+
2469
2491
  var es2018$1 = {};
2470
2492
 
2471
2493
  var array = {};
@@ -2518,8 +2540,8 @@
2518
2540
  const null_1$1 = _null;
2519
2541
  const undefined_1$2 = _undefined;
2520
2542
  function isAsyncIterable(val) {
2521
- return null_1$1.isntNull(val)
2522
- && undefined_1$2.isntUndefined(val)
2543
+ return (0, null_1$1.isntNull)(val)
2544
+ && (0, undefined_1$2.isntUndefined)(val)
2523
2545
  && typeof val[Symbol.asyncIterator] === 'function';
2524
2546
  }
2525
2547
  asyncIterable.isAsyncIterable = isAsyncIterable;
@@ -2556,36 +2578,20 @@
2556
2578
 
2557
2579
  var string = {};
2558
2580
 
2559
- string.isntStringObject = string.isStringObject = string.isntStringPrimitive = string.isStringPrimitive = string.isntString = string.isString = void 0;
2581
+ string.isntString = string.isString = void 0;
2560
2582
  function isString(val) {
2561
- return isStringPrimitive(val) || isStringObject(val);
2583
+ return typeof val === 'string';
2562
2584
  }
2563
2585
  string.isString = isString;
2564
2586
  function isntString(val) {
2565
2587
  return !isString(val);
2566
2588
  }
2567
2589
  string.isntString = isntString;
2568
- function isStringPrimitive(val) {
2569
- return typeof val === 'string';
2570
- }
2571
- string.isStringPrimitive = isStringPrimitive;
2572
- function isntStringPrimitive(val) {
2573
- return !isStringPrimitive(val);
2574
- }
2575
- string.isntStringPrimitive = isntStringPrimitive;
2576
- function isStringObject(val) {
2577
- return typeof val === 'object' && val instanceof String;
2578
- }
2579
- string.isStringObject = isStringObject;
2580
- function isntStringObject(val) {
2581
- return !isStringObject(val);
2582
- }
2583
- string.isntStringObject = isntStringObject;
2584
2590
 
2585
- char.isntCharObject = char.isCharObject = char.isntCharPrimitive = char.isCharPrimitive = char.isntChar = char.isChar = void 0;
2591
+ char.isntChar = char.isChar = void 0;
2586
2592
  const string_1$1 = string;
2587
2593
  function isChar(val) {
2588
- return (string_1$1.isString(val) || string_1$1.isStringObject(val))
2594
+ return (0, string_1$1.isString)(val)
2589
2595
  && val.length === 1;
2590
2596
  }
2591
2597
  char.isChar = isChar;
@@ -2593,24 +2599,6 @@
2593
2599
  return !isChar(val);
2594
2600
  }
2595
2601
  char.isntChar = isntChar;
2596
- function isCharPrimitive(val) {
2597
- return string_1$1.isString(val)
2598
- && val.length === 1;
2599
- }
2600
- char.isCharPrimitive = isCharPrimitive;
2601
- function isntCharPrimitive(val) {
2602
- return !isCharPrimitive(val);
2603
- }
2604
- char.isntCharPrimitive = isntCharPrimitive;
2605
- function isCharObject(val) {
2606
- return string_1$1.isStringObject(val)
2607
- && val.length === 1;
2608
- }
2609
- char.isCharObject = isCharObject;
2610
- function isntCharObject(val) {
2611
- return !isCharObject(val);
2612
- }
2613
- char.isntCharObject = isntCharObject;
2614
2602
 
2615
2603
  var date = {};
2616
2604
 
@@ -2632,6 +2620,18 @@
2632
2620
  }
2633
2621
  _enum.inEnum = inEnum;
2634
2622
 
2623
+ var error = {};
2624
+
2625
+ error.isntError = error.isError = void 0;
2626
+ function isError(val) {
2627
+ return val instanceof Error;
2628
+ }
2629
+ error.isError = isError;
2630
+ function isntError(val) {
2631
+ return !isError(val);
2632
+ }
2633
+ error.isntError = isntError;
2634
+
2635
2635
  var falsy = {};
2636
2636
 
2637
2637
  falsy.isntFalsy = falsy.isFalsy = void 0;
@@ -2662,8 +2662,8 @@
2662
2662
  const null_1 = _null;
2663
2663
  const undefined_1$1 = _undefined;
2664
2664
  function isIterable(val) {
2665
- return null_1.isntNull(val)
2666
- && undefined_1$1.isntUndefined(val)
2665
+ return (0, null_1.isntNull)(val)
2666
+ && (0, undefined_1$1.isntUndefined)(val)
2667
2667
  && typeof val[Symbol.iterator] === 'function';
2668
2668
  }
2669
2669
  iterable.isIterable = isIterable;
@@ -2717,16 +2717,16 @@
2717
2717
  const number_1 = number;
2718
2718
  const undefined_1 = _undefined;
2719
2719
  function isJsonRpcId(val) {
2720
- return string_1.isString(val) || number_1.isNumber(val);
2720
+ return (0, string_1.isString)(val) || (0, number_1.isNumber)(val);
2721
2721
  }
2722
2722
  function isJsonRpcParams(val) {
2723
- return array_1.isArray(val) || object_1.isObject(val);
2723
+ return (0, array_1.isArray)(val) || (0, object_1.isObject)(val);
2724
2724
  }
2725
2725
  function isJsonRpcNotification(val) {
2726
- return object_1.isRecord(val)
2727
- && string_1.isString(val.jsonrpc)
2728
- && string_1.isString(val.method)
2729
- && undefined_1.isUndefined(val.id)
2726
+ return (0, object_1.isRecord)(val)
2727
+ && (0, string_1.isString)(val.jsonrpc)
2728
+ && (0, string_1.isString)(val.method)
2729
+ && (0, undefined_1.isUndefined)(val.id)
2730
2730
  && isJsonRpcParams(val.params);
2731
2731
  }
2732
2732
  jsonRpc.isJsonRpcNotification = isJsonRpcNotification;
@@ -2735,9 +2735,9 @@
2735
2735
  }
2736
2736
  jsonRpc.isntJsonRpcNotification = isntJsonRpcNotification;
2737
2737
  function isJsonRpcRequest(val) {
2738
- return object_1.isRecord(val)
2739
- && string_1.isString(val.jsonrpc)
2740
- && string_1.isString(val.method)
2738
+ return (0, object_1.isRecord)(val)
2739
+ && (0, string_1.isString)(val.jsonrpc)
2740
+ && (0, string_1.isString)(val.method)
2741
2741
  && isJsonRpcId(val.id)
2742
2742
  && isJsonRpcParams(val.params);
2743
2743
  }
@@ -2747,10 +2747,10 @@
2747
2747
  }
2748
2748
  jsonRpc.isntJsonRpcRequest = isntJsonRpcRequest;
2749
2749
  function isJsonRpcSuccess(val) {
2750
- return object_1.isRecord(val)
2751
- && string_1.isString(val.jsonrpc)
2752
- && string_1.isString(val.id)
2753
- && undefined_1.isntUndefined(val.result);
2750
+ return (0, object_1.isRecord)(val)
2751
+ && (0, string_1.isString)(val.jsonrpc)
2752
+ && (0, string_1.isString)(val.id)
2753
+ && 'result' in val;
2754
2754
  }
2755
2755
  jsonRpc.isJsonRpcSuccess = isJsonRpcSuccess;
2756
2756
  function isntJsonRpcSuccess(val) {
@@ -2758,8 +2758,8 @@
2758
2758
  }
2759
2759
  jsonRpc.isntJsonRpcSuccess = isntJsonRpcSuccess;
2760
2760
  function isJsonRpcError(val) {
2761
- return object_1.isRecord(val)
2762
- && string_1.isString(val.jsonrpc)
2761
+ return (0, object_1.isRecord)(val)
2762
+ && (0, string_1.isString)(val.jsonrpc)
2763
2763
  && isJsonRpcId(val.id)
2764
2764
  && isJsonRpcErrorObject(val.error);
2765
2765
  }
@@ -2769,10 +2769,10 @@
2769
2769
  }
2770
2770
  jsonRpc.isntJsonRpcError = isntJsonRpcError;
2771
2771
  function isJsonRpcErrorObject(val) {
2772
- return object_1.isRecord(val)
2773
- && number_1.isNumber(val.code)
2774
- && string_1.isString(val.message)
2775
- && (undefined_1.isUndefined(val.data) || object_1.isObject(val.data));
2772
+ return (0, object_1.isRecord)(val)
2773
+ && (0, number_1.isNumber)(val.code)
2774
+ && (0, string_1.isString)(val.message)
2775
+ && ((0, undefined_1.isUndefined)(val.data) || (0, object_1.isObject)(val.data));
2776
2776
  }
2777
2777
 
2778
2778
  var json = {};
@@ -2824,6 +2824,7 @@
2824
2824
  __exportStar(char, exports);
2825
2825
  __exportStar(date, exports);
2826
2826
  __exportStar(_enum, exports);
2827
+ __exportStar(error, exports);
2827
2828
  __exportStar(falsy, exports);
2828
2829
  __exportStar(_function, exports);
2829
2830
  __exportStar(iterable, exports);
@@ -2937,14 +2938,17 @@
2937
2938
 
2938
2939
  function useStateCycle(stateList, initialStateIndex = 0) {
2939
2940
  const [index, setIndex] = react.exports.useState(initialStateIndex);
2940
- return [stateList[index], () => {
2941
+ return [
2942
+ stateList[index],
2943
+ () => setIndex(index => {
2941
2944
  if (index + 1 < stateList.length) {
2942
- setIndex(index + 1);
2945
+ return index + 1;
2943
2946
  }
2944
2947
  else {
2945
- setIndex(0);
2948
+ return 0;
2946
2949
  }
2947
- }];
2950
+ })
2951
+ ];
2948
2952
  }
2949
2953
 
2950
2954
  function useToggle(initialState = false) {
@@ -2953,12 +2957,55 @@
2953
2957
  return [state, toggle];
2954
2958
  }
2955
2959
 
2960
+ function useResizeObserver(callback, refs) {
2961
+ const deps = refs.map(x => x.current);
2962
+ react.exports.useEffect(() => {
2963
+ const observer = new ResizeObserver(callback);
2964
+ refs
2965
+ .map(x => x.current)
2966
+ .filter(es2018$1.isntNull)
2967
+ .forEach(x => observer.observe(x));
2968
+ return () => observer.disconnect();
2969
+ }, deps);
2970
+ }
2971
+
2972
+ function useStep(steps, initialStepIndex = 0) {
2973
+ const [index, setIndex] = react.exports.useState(initialStepIndex);
2974
+ return [
2975
+ steps[index],
2976
+ () => {
2977
+ setIndex(index => {
2978
+ if (index === steps.length - 1) {
2979
+ return index;
2980
+ }
2981
+ else {
2982
+ return index + 1;
2983
+ }
2984
+ });
2985
+ },
2986
+ () => {
2987
+ setIndex(index => {
2988
+ if (index === 0) {
2989
+ return index;
2990
+ }
2991
+ else {
2992
+ return index - 1;
2993
+ }
2994
+ });
2995
+ }
2996
+ ];
2997
+ }
2998
+
2999
+ exports.useIncrement = useIncrement;
3000
+ exports.useIsMounted = useIsMounted;
2956
3001
  exports.useMount = useMount;
3002
+ exports.useResizeObserver = useResizeObserver;
2957
3003
  exports.useSingleSelection = useSingleSelection;
2958
3004
  exports.useStateCycle = useStateCycle;
3005
+ exports.useStep = useStep;
2959
3006
  exports.useToggle = useToggle;
2960
3007
 
2961
3008
  Object.defineProperty(exports, '__esModule', { value: true });
2962
3009
 
2963
- })));
3010
+ }));
2964
3011
  //# sourceMappingURL=index.umd.js.map