extra-react-hooks 0.1.13 → 0.2.0
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 +21 -3
- package/dist/es2015/index.min.mjs +2 -2
- package/dist/es2015/index.min.mjs.map +1 -1
- package/dist/es2015/index.mjs +42 -7
- package/dist/es2015/index.mjs.map +1 -1
- package/dist/es2015/index.umd.js +44 -6
- package/dist/es2015/index.umd.js.map +1 -1
- package/dist/es2015/index.umd.min.js +2 -2
- package/dist/es2015/index.umd.min.js.map +1 -1
- package/dist/es2018/index.min.mjs +2 -2
- package/dist/es2018/index.min.mjs.map +1 -1
- package/dist/es2018/index.mjs +42 -7
- package/dist/es2018/index.mjs.map +1 -1
- package/dist/es2018/index.umd.js +44 -6
- package/dist/es2018/index.umd.js.map +1 -1
- package/dist/es2018/index.umd.min.js +2 -2
- package/dist/es2018/index.umd.min.js.map +1 -1
- package/lib/es2015/index.d.ts +3 -0
- package/lib/es2015/index.js +3 -0
- package/lib/es2015/index.js.map +1 -1
- package/lib/es2015/use-is-first-render.d.ts +1 -0
- package/lib/es2015/use-is-first-render.js +25 -0
- package/lib/es2015/use-is-first-render.js.map +1 -0
- package/lib/es2015/use-multiple-selection.d.ts +1 -1
- package/lib/es2015/use-multiple-selection.js +3 -3
- package/lib/es2015/use-multiple-selection.js.map +1 -1
- package/lib/es2015/use-render-counter.d.ts +1 -0
- package/lib/es2015/use-render-counter.js +11 -0
- package/lib/es2015/use-render-counter.js.map +1 -0
- package/lib/es2015/use-single-selection.d.ts +2 -2
- package/lib/es2015/use-single-selection.js +3 -3
- package/lib/es2015/use-single-selection.js.map +1 -1
- package/lib/es2015/use-update-effect.d.ts +2 -0
- package/lib/es2015/use-update-effect.js +15 -0
- package/lib/es2015/use-update-effect.js.map +1 -0
- package/lib/es2018/index.d.ts +3 -0
- package/lib/es2018/index.js +3 -0
- package/lib/es2018/index.js.map +1 -1
- package/lib/es2018/use-is-first-render.d.ts +1 -0
- package/lib/es2018/use-is-first-render.js +25 -0
- package/lib/es2018/use-is-first-render.js.map +1 -0
- package/lib/es2018/use-multiple-selection.d.ts +1 -1
- package/lib/es2018/use-multiple-selection.js +3 -3
- package/lib/es2018/use-multiple-selection.js.map +1 -1
- package/lib/es2018/use-render-counter.d.ts +1 -0
- package/lib/es2018/use-render-counter.js +11 -0
- package/lib/es2018/use-render-counter.js.map +1 -0
- package/lib/es2018/use-single-selection.d.ts +2 -2
- package/lib/es2018/use-single-selection.js +3 -3
- package/lib/es2018/use-single-selection.js.map +1 -1
- package/lib/es2018/use-update-effect.d.ts +2 -0
- package/lib/es2018/use-update-effect.js +15 -0
- package/lib/es2018/use-update-effect.js.map +1 -0
- package/package.json +1 -1
package/dist/es2018/index.mjs
CHANGED
|
@@ -2509,6 +2509,41 @@ function useIsMounted() {
|
|
|
2509
2509
|
return () => isMounted.current;
|
|
2510
2510
|
}
|
|
2511
2511
|
|
|
2512
|
+
var State;
|
|
2513
|
+
(function (State) {
|
|
2514
|
+
State[State["InitialValue"] = 0] = "InitialValue";
|
|
2515
|
+
State[State["First"] = 1] = "First";
|
|
2516
|
+
State[State["NotFirst"] = 2] = "NotFirst";
|
|
2517
|
+
})(State || (State = {}));
|
|
2518
|
+
function useIsFirstRender() {
|
|
2519
|
+
const state = react.exports.useRef(State.InitialValue);
|
|
2520
|
+
switch (state.current) {
|
|
2521
|
+
case State.InitialValue:
|
|
2522
|
+
state.current = State.First;
|
|
2523
|
+
break;
|
|
2524
|
+
case State.First:
|
|
2525
|
+
state.current = State.NotFirst;
|
|
2526
|
+
break;
|
|
2527
|
+
case State.NotFirst: break;
|
|
2528
|
+
}
|
|
2529
|
+
return () => state.current === State.First;
|
|
2530
|
+
}
|
|
2531
|
+
|
|
2532
|
+
function useRenderCounter() {
|
|
2533
|
+
const counter = react.exports.useRef(0);
|
|
2534
|
+
counter.current++;
|
|
2535
|
+
return counter.current;
|
|
2536
|
+
}
|
|
2537
|
+
|
|
2538
|
+
function useUpdateEffect(effect, deps) {
|
|
2539
|
+
const isFirstRender = useIsFirstRender();
|
|
2540
|
+
react.exports.useEffect(() => {
|
|
2541
|
+
if (!isFirstRender()) {
|
|
2542
|
+
return effect();
|
|
2543
|
+
}
|
|
2544
|
+
}, deps);
|
|
2545
|
+
}
|
|
2546
|
+
|
|
2512
2547
|
var es2018$7 = {};
|
|
2513
2548
|
|
|
2514
2549
|
var array = {};
|
|
@@ -5332,15 +5367,15 @@ function useSingleSelection(values, defaultSelectedIndex) {
|
|
|
5332
5367
|
es2018Exports$1.assert(defaultSelectedIndex >= 0 && defaultSelectedIndex < values.length, 'The parameter defaultSelectedIndex must be in the range of 0 to values.length');
|
|
5333
5368
|
}
|
|
5334
5369
|
const [selectedIndex, setSelectedIndex] = react.exports.useState(defaultSelectedIndex);
|
|
5335
|
-
return {
|
|
5336
|
-
|
|
5370
|
+
return react.exports.useMemo(() => ({
|
|
5371
|
+
selectedValue: es2018$7.isUndefined(selectedIndex) ? undefined : values[selectedIndex],
|
|
5337
5372
|
options: values.map((value, index) => ({
|
|
5338
5373
|
value,
|
|
5339
5374
|
index,
|
|
5340
5375
|
selected: index === selectedIndex,
|
|
5341
5376
|
select: () => setSelectedIndex(index)
|
|
5342
5377
|
}))
|
|
5343
|
-
};
|
|
5378
|
+
}), [selectedIndex]);
|
|
5344
5379
|
}
|
|
5345
5380
|
|
|
5346
5381
|
var es2018Exports = requireEs2018$1();
|
|
@@ -5351,8 +5386,8 @@ function useMultipleSelection(values, defaultSelectedIndexes = []) {
|
|
|
5351
5386
|
es2018Exports$1.assert(index >= 0 && index < values.length, 'The index of parameter defaultSelectedIndexes must be in the range of 0 to values.length');
|
|
5352
5387
|
}
|
|
5353
5388
|
const [selectedIndexes, setSelectedIndexes] = react.exports.useState(new Set(defaultSelectedIndexes));
|
|
5354
|
-
return {
|
|
5355
|
-
|
|
5389
|
+
return react.exports.useMemo(() => ({
|
|
5390
|
+
selectedValues: es2018Exports.toArray(es2018Exports.map(selectedIndexes, i => values[i])),
|
|
5356
5391
|
options: values.map((value, index) => {
|
|
5357
5392
|
const selected = selectedIndexes.has(index);
|
|
5358
5393
|
const select = () => {
|
|
@@ -5374,7 +5409,7 @@ function useMultipleSelection(values, defaultSelectedIndexes = []) {
|
|
|
5374
5409
|
toggle: selected ? unselect : select
|
|
5375
5410
|
};
|
|
5376
5411
|
})
|
|
5377
|
-
};
|
|
5412
|
+
}), [selectedIndexes]);
|
|
5378
5413
|
}
|
|
5379
5414
|
|
|
5380
5415
|
function useStateCycle(stateList, initialStateIndex = 0) {
|
|
@@ -13653,5 +13688,5 @@ function useFiniteStateMachine(schema, initialState) {
|
|
|
13653
13688
|
}
|
|
13654
13689
|
|
|
13655
13690
|
var ObservableFiniteStateMachine = es2018$2.ObservableFiniteStateMachine;
|
|
13656
|
-
export { ObservableFiniteStateMachine, useFiniteStateMachine, useForceUpdate, useIncrement, useIsMounted, useMount, useMultipleSelection, useResizeObserver, useSingleSelection, useStateCycle, useStep, useToggle };
|
|
13691
|
+
export { ObservableFiniteStateMachine, useFiniteStateMachine, useForceUpdate, useIncrement, useIsFirstRender, useIsMounted, useMount, useMultipleSelection, useRenderCounter, useResizeObserver, useSingleSelection, useStateCycle, useStep, useToggle, useUpdateEffect };
|
|
13657
13692
|
//# sourceMappingURL=index.mjs.map
|