extra-react-hooks 0.2.0 → 0.3.1

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 (92) hide show
  1. package/README.md +28 -30
  2. package/dist/es2015/index.min.mjs +3 -3
  3. package/dist/es2015/index.min.mjs.map +1 -1
  4. package/dist/es2015/index.mjs +1279 -496
  5. package/dist/es2015/index.mjs.map +1 -1
  6. package/dist/es2015/index.umd.js +1280 -495
  7. package/dist/es2015/index.umd.js.map +1 -1
  8. package/dist/es2015/index.umd.min.js +3 -3
  9. package/dist/es2015/index.umd.min.js.map +1 -1
  10. package/dist/es2018/index.min.mjs +3 -3
  11. package/dist/es2018/index.min.mjs.map +1 -1
  12. package/dist/es2018/index.mjs +1279 -496
  13. package/dist/es2018/index.mjs.map +1 -1
  14. package/dist/es2018/index.umd.js +1280 -495
  15. package/dist/es2018/index.umd.js.map +1 -1
  16. package/dist/es2018/index.umd.min.js +3 -3
  17. package/dist/es2018/index.umd.min.js.map +1 -1
  18. package/lib/es2015/index.d.ts +2 -0
  19. package/lib/es2015/index.js +2 -0
  20. package/lib/es2015/index.js.map +1 -1
  21. package/lib/es2015/types.d.ts +3 -0
  22. package/lib/es2015/types.js +3 -0
  23. package/lib/es2015/types.js.map +1 -0
  24. package/lib/es2015/use-finite-state-machine.js +1 -1
  25. package/lib/es2015/use-finite-state-machine.js.map +1 -1
  26. package/lib/es2015/use-force-update.js +4 -1
  27. package/lib/es2015/use-force-update.js.map +1 -1
  28. package/lib/es2015/use-iife.d.ts +2 -0
  29. package/lib/es2015/use-iife.js +25 -0
  30. package/lib/es2015/use-iife.js.map +1 -0
  31. package/lib/es2015/use-increment.js +5 -5
  32. package/lib/es2015/use-increment.js.map +1 -1
  33. package/lib/es2015/use-is-first-render.js +4 -1
  34. package/lib/es2015/use-is-first-render.js.map +1 -1
  35. package/lib/es2015/use-is-mounted.js +7 -4
  36. package/lib/es2015/use-is-mounted.js.map +1 -1
  37. package/lib/es2015/use-multiple-selection.d.ts +8 -12
  38. package/lib/es2015/use-multiple-selection.js +45 -29
  39. package/lib/es2015/use-multiple-selection.js.map +1 -1
  40. package/lib/es2015/use-single-selection.d.ts +6 -13
  41. package/lib/es2015/use-single-selection.js +18 -15
  42. package/lib/es2015/use-single-selection.js.map +1 -1
  43. package/lib/es2015/use-state-cycle.d.ts +2 -1
  44. package/lib/es2015/use-state-cycle.js +7 -7
  45. package/lib/es2015/use-state-cycle.js.map +1 -1
  46. package/lib/es2015/use-step.d.ts +2 -1
  47. package/lib/es2015/use-step.js +21 -23
  48. package/lib/es2015/use-step.js.map +1 -1
  49. package/lib/es2015/use-toggle.d.ts +1 -4
  50. package/lib/es2015/use-toggle.js +4 -2
  51. package/lib/es2015/use-toggle.js.map +1 -1
  52. package/lib/es2015/use-unmount.d.ts +1 -0
  53. package/lib/es2015/use-unmount.js +9 -0
  54. package/lib/es2015/use-unmount.js.map +1 -0
  55. package/lib/es2018/index.d.ts +2 -0
  56. package/lib/es2018/index.js +2 -0
  57. package/lib/es2018/index.js.map +1 -1
  58. package/lib/es2018/types.d.ts +3 -0
  59. package/lib/es2018/types.js +3 -0
  60. package/lib/es2018/types.js.map +1 -0
  61. package/lib/es2018/use-finite-state-machine.js +1 -1
  62. package/lib/es2018/use-finite-state-machine.js.map +1 -1
  63. package/lib/es2018/use-force-update.js +4 -1
  64. package/lib/es2018/use-force-update.js.map +1 -1
  65. package/lib/es2018/use-iife.d.ts +2 -0
  66. package/lib/es2018/use-iife.js +25 -0
  67. package/lib/es2018/use-iife.js.map +1 -0
  68. package/lib/es2018/use-increment.js +5 -5
  69. package/lib/es2018/use-increment.js.map +1 -1
  70. package/lib/es2018/use-is-first-render.js +4 -1
  71. package/lib/es2018/use-is-first-render.js.map +1 -1
  72. package/lib/es2018/use-is-mounted.js +7 -4
  73. package/lib/es2018/use-is-mounted.js.map +1 -1
  74. package/lib/es2018/use-multiple-selection.d.ts +8 -12
  75. package/lib/es2018/use-multiple-selection.js +45 -29
  76. package/lib/es2018/use-multiple-selection.js.map +1 -1
  77. package/lib/es2018/use-single-selection.d.ts +6 -13
  78. package/lib/es2018/use-single-selection.js +18 -15
  79. package/lib/es2018/use-single-selection.js.map +1 -1
  80. package/lib/es2018/use-state-cycle.d.ts +2 -1
  81. package/lib/es2018/use-state-cycle.js +7 -7
  82. package/lib/es2018/use-state-cycle.js.map +1 -1
  83. package/lib/es2018/use-step.d.ts +2 -1
  84. package/lib/es2018/use-step.js +21 -23
  85. package/lib/es2018/use-step.js.map +1 -1
  86. package/lib/es2018/use-toggle.d.ts +1 -4
  87. package/lib/es2018/use-toggle.js +4 -2
  88. package/lib/es2018/use-toggle.js.map +1 -1
  89. package/lib/es2018/use-unmount.d.ts +1 -0
  90. package/lib/es2018/use-unmount.js +9 -0
  91. package/lib/es2018/use-unmount.js.map +1 -0
  92. package/package.json +4 -2
package/README.md CHANGED
@@ -7,6 +7,12 @@ yarn add extra-react-hooks
7
7
  ```
8
8
 
9
9
  ## API
10
+ ```ts
11
+ interface IOptionState {
12
+ selected: boolean
13
+ }
14
+ ```
15
+
10
16
  ### useToggle
11
17
  ```ts
12
18
  function useToggle(initialState: boolean = false): [on: boolean, toggle: () => void]
@@ -14,45 +20,27 @@ function useToggle(initialState: boolean = false): [on: boolean, toggle: () => v
14
20
 
15
21
  ### useSingleSelection
16
22
  ```ts
17
- interface ISingleSelectionOption<T> {
18
- value: T
19
- index: number
20
- selected: boolean
21
-
22
- select(): void
23
- }
24
-
25
23
  function useSingleSelection<T>(
26
- values: T[]
24
+ options: NonEmptyArray<T>
27
25
  , defaultSelectedIndex: number
28
26
  ): {
29
- selectedValue: T
30
- options: Array<ISingleSelectionOption<T>>
31
- }
32
- function useSingleSelection<T>(values: T[]): {
33
- selectedValue: T | undefined
34
- options: Array<ISingleSelectionOption<T>>
27
+ selectedIndex: number
28
+ optionStates: IOptionState[]
29
+ select: (index: number) => void
35
30
  }
36
31
  ```
37
32
 
38
33
  ### useMultipleSelection
39
34
  ```ts
40
- interface IMultipleSelectionOption<T> {
41
- value: T
42
- index: number
43
- selected: boolean
44
-
45
- select(): void
46
- unselect(): void
47
- toggle(): void
48
- }
49
-
50
35
  function useMultipleSelection<T>(
51
- values: T[]
36
+ options: NonEmptyArray<T>
52
37
  , defaultSelectedIndexes: number[] = []
53
38
  ): {
54
- selectedValues: T[]
55
- options: Array<IMultipleSelectionOption<T>>
39
+ selectedIndexes: number[]
40
+ optionStates: IOptionState[]
41
+ toggle: (index: number) => void
42
+ select: (index: number) => void
43
+ unselect: (index: number) => void
56
44
  }
57
45
  ```
58
46
 
@@ -61,6 +49,11 @@ function useMultipleSelection<T>(
61
49
  function useMount(effect: EffectCallback): void
62
50
  ```
63
51
 
52
+ ### useUnmount
53
+ ```ts
54
+ function useUnmount(effect: () => void): void
55
+ ```
56
+
64
57
  ### useUpdateEffect
65
58
  ```ts
66
59
  function useUpdateEffect(
@@ -72,7 +65,7 @@ function useUpdateEffect(
72
65
  ### useStateCycle
73
66
  ```ts
74
67
  function useStateCycle<T>(
75
- stateList: [T, ...T[]]
68
+ orderedStates: NonEmptyArray<T>
76
69
  , initialStateIndex: number = 0
77
70
  ): [state: T, next: () => void]
78
71
  ```
@@ -105,7 +98,7 @@ function useResizeObserver(
105
98
  ### useStep
106
99
  ```ts
107
100
  function useStep<T>(
108
- steps: [T, ...T[]]
101
+ steps: NonEmptyArray<T>
109
102
  , initialStepIndex: number = 0
110
103
  ): [currentStep: T, next: () => void, previous: () => void]
111
104
  ```
@@ -131,3 +124,8 @@ The `ObservableFiniteStateMachine` comes from [@blackglory/structures].
131
124
  ```ts
132
125
  function useRenderCounter(): number
133
126
  ```
127
+
128
+ ### useIIFE
129
+ ```ts
130
+ function useIIFE(iife: () => void, deps: React.DependencyList): void
131
+ ```