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
@@ -2456,10 +2456,32 @@ if (process.env.NODE_ENV === 'production') {
2456
2456
  react.exports = react_development;
2457
2457
  }
2458
2458
 
2459
+ function useIncrement(initialValue) {
2460
+ const [value, setValue] = react.exports.useState(initialValue);
2461
+ const increment = react.exports.useCallback((step = 1) => {
2462
+ setValue(value => value + step);
2463
+ }, []);
2464
+ const reset = react.exports.useCallback(() => {
2465
+ setValue(initialValue);
2466
+ }, []);
2467
+ return [value, increment, reset];
2468
+ }
2469
+
2459
2470
  function useMount(effect) {
2460
2471
  react.exports.useEffect(effect, []);
2461
2472
  }
2462
2473
 
2474
+ function useIsMounted() {
2475
+ const isMounted = react.exports.useRef(false);
2476
+ useMount(() => {
2477
+ isMounted.current = true;
2478
+ return () => {
2479
+ isMounted.current = false;
2480
+ };
2481
+ });
2482
+ return () => isMounted.current;
2483
+ }
2484
+
2463
2485
  var es2018$1 = {};
2464
2486
 
2465
2487
  var array = {};
@@ -2512,8 +2534,8 @@ asyncIterable.isntAsyncIterable = asyncIterable.isAsyncIterable = void 0;
2512
2534
  const null_1$1 = _null;
2513
2535
  const undefined_1$2 = _undefined;
2514
2536
  function isAsyncIterable(val) {
2515
- return null_1$1.isntNull(val)
2516
- && undefined_1$2.isntUndefined(val)
2537
+ return (0, null_1$1.isntNull)(val)
2538
+ && (0, undefined_1$2.isntUndefined)(val)
2517
2539
  && typeof val[Symbol.asyncIterator] === 'function';
2518
2540
  }
2519
2541
  asyncIterable.isAsyncIterable = isAsyncIterable;
@@ -2550,36 +2572,20 @@ var char = {};
2550
2572
 
2551
2573
  var string = {};
2552
2574
 
2553
- string.isntStringObject = string.isStringObject = string.isntStringPrimitive = string.isStringPrimitive = string.isntString = string.isString = void 0;
2575
+ string.isntString = string.isString = void 0;
2554
2576
  function isString(val) {
2555
- return isStringPrimitive(val) || isStringObject(val);
2577
+ return typeof val === 'string';
2556
2578
  }
2557
2579
  string.isString = isString;
2558
2580
  function isntString(val) {
2559
2581
  return !isString(val);
2560
2582
  }
2561
2583
  string.isntString = isntString;
2562
- function isStringPrimitive(val) {
2563
- return typeof val === 'string';
2564
- }
2565
- string.isStringPrimitive = isStringPrimitive;
2566
- function isntStringPrimitive(val) {
2567
- return !isStringPrimitive(val);
2568
- }
2569
- string.isntStringPrimitive = isntStringPrimitive;
2570
- function isStringObject(val) {
2571
- return typeof val === 'object' && val instanceof String;
2572
- }
2573
- string.isStringObject = isStringObject;
2574
- function isntStringObject(val) {
2575
- return !isStringObject(val);
2576
- }
2577
- string.isntStringObject = isntStringObject;
2578
2584
 
2579
- char.isntCharObject = char.isCharObject = char.isntCharPrimitive = char.isCharPrimitive = char.isntChar = char.isChar = void 0;
2585
+ char.isntChar = char.isChar = void 0;
2580
2586
  const string_1$1 = string;
2581
2587
  function isChar(val) {
2582
- return (string_1$1.isString(val) || string_1$1.isStringObject(val))
2588
+ return (0, string_1$1.isString)(val)
2583
2589
  && val.length === 1;
2584
2590
  }
2585
2591
  char.isChar = isChar;
@@ -2587,24 +2593,6 @@ function isntChar(val) {
2587
2593
  return !isChar(val);
2588
2594
  }
2589
2595
  char.isntChar = isntChar;
2590
- function isCharPrimitive(val) {
2591
- return string_1$1.isString(val)
2592
- && val.length === 1;
2593
- }
2594
- char.isCharPrimitive = isCharPrimitive;
2595
- function isntCharPrimitive(val) {
2596
- return !isCharPrimitive(val);
2597
- }
2598
- char.isntCharPrimitive = isntCharPrimitive;
2599
- function isCharObject(val) {
2600
- return string_1$1.isStringObject(val)
2601
- && val.length === 1;
2602
- }
2603
- char.isCharObject = isCharObject;
2604
- function isntCharObject(val) {
2605
- return !isCharObject(val);
2606
- }
2607
- char.isntCharObject = isntCharObject;
2608
2596
 
2609
2597
  var date = {};
2610
2598
 
@@ -2626,6 +2614,18 @@ function inEnum(val, _enum) {
2626
2614
  }
2627
2615
  _enum.inEnum = inEnum;
2628
2616
 
2617
+ var error = {};
2618
+
2619
+ error.isntError = error.isError = void 0;
2620
+ function isError(val) {
2621
+ return val instanceof Error;
2622
+ }
2623
+ error.isError = isError;
2624
+ function isntError(val) {
2625
+ return !isError(val);
2626
+ }
2627
+ error.isntError = isntError;
2628
+
2629
2629
  var falsy = {};
2630
2630
 
2631
2631
  falsy.isntFalsy = falsy.isFalsy = void 0;
@@ -2656,8 +2656,8 @@ iterable.isntIterable = iterable.isIterable = void 0;
2656
2656
  const null_1 = _null;
2657
2657
  const undefined_1$1 = _undefined;
2658
2658
  function isIterable(val) {
2659
- return null_1.isntNull(val)
2660
- && undefined_1$1.isntUndefined(val)
2659
+ return (0, null_1.isntNull)(val)
2660
+ && (0, undefined_1$1.isntUndefined)(val)
2661
2661
  && typeof val[Symbol.iterator] === 'function';
2662
2662
  }
2663
2663
  iterable.isIterable = isIterable;
@@ -2711,16 +2711,16 @@ const string_1 = string;
2711
2711
  const number_1 = number;
2712
2712
  const undefined_1 = _undefined;
2713
2713
  function isJsonRpcId(val) {
2714
- return string_1.isString(val) || number_1.isNumber(val);
2714
+ return (0, string_1.isString)(val) || (0, number_1.isNumber)(val);
2715
2715
  }
2716
2716
  function isJsonRpcParams(val) {
2717
- return array_1.isArray(val) || object_1.isObject(val);
2717
+ return (0, array_1.isArray)(val) || (0, object_1.isObject)(val);
2718
2718
  }
2719
2719
  function isJsonRpcNotification(val) {
2720
- return object_1.isRecord(val)
2721
- && string_1.isString(val.jsonrpc)
2722
- && string_1.isString(val.method)
2723
- && undefined_1.isUndefined(val.id)
2720
+ return (0, object_1.isRecord)(val)
2721
+ && (0, string_1.isString)(val.jsonrpc)
2722
+ && (0, string_1.isString)(val.method)
2723
+ && (0, undefined_1.isUndefined)(val.id)
2724
2724
  && isJsonRpcParams(val.params);
2725
2725
  }
2726
2726
  jsonRpc.isJsonRpcNotification = isJsonRpcNotification;
@@ -2729,9 +2729,9 @@ function isntJsonRpcNotification(val) {
2729
2729
  }
2730
2730
  jsonRpc.isntJsonRpcNotification = isntJsonRpcNotification;
2731
2731
  function isJsonRpcRequest(val) {
2732
- return object_1.isRecord(val)
2733
- && string_1.isString(val.jsonrpc)
2734
- && string_1.isString(val.method)
2732
+ return (0, object_1.isRecord)(val)
2733
+ && (0, string_1.isString)(val.jsonrpc)
2734
+ && (0, string_1.isString)(val.method)
2735
2735
  && isJsonRpcId(val.id)
2736
2736
  && isJsonRpcParams(val.params);
2737
2737
  }
@@ -2741,10 +2741,10 @@ function isntJsonRpcRequest(val) {
2741
2741
  }
2742
2742
  jsonRpc.isntJsonRpcRequest = isntJsonRpcRequest;
2743
2743
  function isJsonRpcSuccess(val) {
2744
- return object_1.isRecord(val)
2745
- && string_1.isString(val.jsonrpc)
2746
- && string_1.isString(val.id)
2747
- && undefined_1.isntUndefined(val.result);
2744
+ return (0, object_1.isRecord)(val)
2745
+ && (0, string_1.isString)(val.jsonrpc)
2746
+ && (0, string_1.isString)(val.id)
2747
+ && 'result' in val;
2748
2748
  }
2749
2749
  jsonRpc.isJsonRpcSuccess = isJsonRpcSuccess;
2750
2750
  function isntJsonRpcSuccess(val) {
@@ -2752,8 +2752,8 @@ function isntJsonRpcSuccess(val) {
2752
2752
  }
2753
2753
  jsonRpc.isntJsonRpcSuccess = isntJsonRpcSuccess;
2754
2754
  function isJsonRpcError(val) {
2755
- return object_1.isRecord(val)
2756
- && string_1.isString(val.jsonrpc)
2755
+ return (0, object_1.isRecord)(val)
2756
+ && (0, string_1.isString)(val.jsonrpc)
2757
2757
  && isJsonRpcId(val.id)
2758
2758
  && isJsonRpcErrorObject(val.error);
2759
2759
  }
@@ -2763,10 +2763,10 @@ function isntJsonRpcError(val) {
2763
2763
  }
2764
2764
  jsonRpc.isntJsonRpcError = isntJsonRpcError;
2765
2765
  function isJsonRpcErrorObject(val) {
2766
- return object_1.isRecord(val)
2767
- && number_1.isNumber(val.code)
2768
- && string_1.isString(val.message)
2769
- && (undefined_1.isUndefined(val.data) || object_1.isObject(val.data));
2766
+ return (0, object_1.isRecord)(val)
2767
+ && (0, number_1.isNumber)(val.code)
2768
+ && (0, string_1.isString)(val.message)
2769
+ && ((0, undefined_1.isUndefined)(val.data) || (0, object_1.isObject)(val.data));
2770
2770
  }
2771
2771
 
2772
2772
  var json = {};
@@ -2818,6 +2818,7 @@ __exportStar(boolean, exports);
2818
2818
  __exportStar(char, exports);
2819
2819
  __exportStar(date, exports);
2820
2820
  __exportStar(_enum, exports);
2821
+ __exportStar(error, exports);
2821
2822
  __exportStar(falsy, exports);
2822
2823
  __exportStar(_function, exports);
2823
2824
  __exportStar(iterable, exports);
@@ -2931,14 +2932,17 @@ function useSingleSelection(values, defaultIndex) {
2931
2932
 
2932
2933
  function useStateCycle(stateList, initialStateIndex = 0) {
2933
2934
  const [index, setIndex] = react.exports.useState(initialStateIndex);
2934
- return [stateList[index], () => {
2935
+ return [
2936
+ stateList[index],
2937
+ () => setIndex(index => {
2935
2938
  if (index + 1 < stateList.length) {
2936
- setIndex(index + 1);
2939
+ return index + 1;
2937
2940
  }
2938
2941
  else {
2939
- setIndex(0);
2942
+ return 0;
2940
2943
  }
2941
- }];
2944
+ })
2945
+ ];
2942
2946
  }
2943
2947
 
2944
2948
  function useToggle(initialState = false) {
@@ -2947,5 +2951,44 @@ function useToggle(initialState = false) {
2947
2951
  return [state, toggle];
2948
2952
  }
2949
2953
 
2950
- export { useMount, useSingleSelection, useStateCycle, useToggle };
2954
+ function useResizeObserver(callback, refs) {
2955
+ const deps = refs.map(x => x.current);
2956
+ react.exports.useEffect(() => {
2957
+ const observer = new ResizeObserver(callback);
2958
+ refs
2959
+ .map(x => x.current)
2960
+ .filter(es2018$1.isntNull)
2961
+ .forEach(x => observer.observe(x));
2962
+ return () => observer.disconnect();
2963
+ }, deps);
2964
+ }
2965
+
2966
+ function useStep(steps, initialStepIndex = 0) {
2967
+ const [index, setIndex] = react.exports.useState(initialStepIndex);
2968
+ return [
2969
+ steps[index],
2970
+ () => {
2971
+ setIndex(index => {
2972
+ if (index === steps.length - 1) {
2973
+ return index;
2974
+ }
2975
+ else {
2976
+ return index + 1;
2977
+ }
2978
+ });
2979
+ },
2980
+ () => {
2981
+ setIndex(index => {
2982
+ if (index === 0) {
2983
+ return index;
2984
+ }
2985
+ else {
2986
+ return index - 1;
2987
+ }
2988
+ });
2989
+ }
2990
+ ];
2991
+ }
2992
+
2993
+ export { useIncrement, useIsMounted, useMount, useResizeObserver, useSingleSelection, useStateCycle, useStep, useToggle };
2951
2994
  //# sourceMappingURL=index.mjs.map