extra-react-hooks 0.1.12 → 0.1.15
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 +48 -5
- package/dist/es2015/index.min.mjs +2 -2
- package/dist/es2015/index.min.mjs.map +1 -1
- package/dist/es2015/index.mjs +76 -7
- package/dist/es2015/index.mjs.map +1 -1
- package/dist/es2015/index.umd.js +79 -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 +76 -7
- package/dist/es2018/index.mjs.map +1 -1
- package/dist/es2018/index.umd.js +79 -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 +4 -0
- package/lib/es2015/index.js +4 -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 +13 -0
- package/lib/es2015/use-multiple-selection.js +39 -0
- package/lib/es2015/use-multiple-selection.js.map +1 -0
- 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 +5 -6
- package/lib/es2015/use-single-selection.js +4 -4
- 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 +4 -0
- package/lib/es2018/index.js +4 -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 +13 -0
- package/lib/es2018/use-multiple-selection.js +39 -0
- package/lib/es2018/use-multiple-selection.js.map +1 -0
- 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 +5 -6
- package/lib/es2018/use-single-selection.js +4 -4
- 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 +12 -11
package/dist/es2015/index.umd.js
CHANGED
|
@@ -2515,6 +2515,41 @@
|
|
|
2515
2515
|
return () => isMounted.current;
|
|
2516
2516
|
}
|
|
2517
2517
|
|
|
2518
|
+
var State;
|
|
2519
|
+
(function (State) {
|
|
2520
|
+
State[State["InitialValue"] = 0] = "InitialValue";
|
|
2521
|
+
State[State["First"] = 1] = "First";
|
|
2522
|
+
State[State["NotFirst"] = 2] = "NotFirst";
|
|
2523
|
+
})(State || (State = {}));
|
|
2524
|
+
function useIsFirstRender() {
|
|
2525
|
+
const state = react.exports.useRef(State.InitialValue);
|
|
2526
|
+
switch (state.current) {
|
|
2527
|
+
case State.InitialValue:
|
|
2528
|
+
state.current = State.First;
|
|
2529
|
+
break;
|
|
2530
|
+
case State.First:
|
|
2531
|
+
state.current = State.NotFirst;
|
|
2532
|
+
break;
|
|
2533
|
+
case State.NotFirst: break;
|
|
2534
|
+
}
|
|
2535
|
+
return () => state.current === State.First;
|
|
2536
|
+
}
|
|
2537
|
+
|
|
2538
|
+
function useRenderCounter() {
|
|
2539
|
+
const counter = react.exports.useRef(0);
|
|
2540
|
+
counter.current++;
|
|
2541
|
+
return counter.current;
|
|
2542
|
+
}
|
|
2543
|
+
|
|
2544
|
+
function useUpdateEffect(effect, deps) {
|
|
2545
|
+
const isFirstRender = useIsFirstRender();
|
|
2546
|
+
react.exports.useEffect(() => {
|
|
2547
|
+
if (!isFirstRender()) {
|
|
2548
|
+
return effect();
|
|
2549
|
+
}
|
|
2550
|
+
}, deps);
|
|
2551
|
+
}
|
|
2552
|
+
|
|
2518
2553
|
var es2018$7 = {};
|
|
2519
2554
|
|
|
2520
2555
|
var array = {};
|
|
@@ -5330,14 +5365,14 @@
|
|
|
5330
5365
|
return es2018$6;
|
|
5331
5366
|
}
|
|
5332
5367
|
|
|
5333
|
-
var es2018Exports = requireEs2018();
|
|
5368
|
+
var es2018Exports$1 = requireEs2018();
|
|
5334
5369
|
|
|
5335
|
-
function useSingleSelection(values,
|
|
5336
|
-
es2018Exports.assert(values.length > 0, 'The parameter values must be a non-empty array');
|
|
5337
|
-
if (es2018$7.isntUndefined(
|
|
5338
|
-
es2018Exports.assert(
|
|
5370
|
+
function useSingleSelection(values, defaultSelectedIndex) {
|
|
5371
|
+
es2018Exports$1.assert(values.length > 0, 'The parameter values must be a non-empty array');
|
|
5372
|
+
if (es2018$7.isntUndefined(defaultSelectedIndex)) {
|
|
5373
|
+
es2018Exports$1.assert(defaultSelectedIndex >= 0 && defaultSelectedIndex < values.length, 'The parameter defaultSelectedIndex must be in the range of 0 to values.length');
|
|
5339
5374
|
}
|
|
5340
|
-
const [selectedIndex, setSelectedIndex] = react.exports.useState(
|
|
5375
|
+
const [selectedIndex, setSelectedIndex] = react.exports.useState(defaultSelectedIndex);
|
|
5341
5376
|
return {
|
|
5342
5377
|
value: es2018$7.isUndefined(selectedIndex) ? undefined : values[selectedIndex],
|
|
5343
5378
|
options: values.map((value, index) => ({
|
|
@@ -5349,6 +5384,40 @@
|
|
|
5349
5384
|
};
|
|
5350
5385
|
}
|
|
5351
5386
|
|
|
5387
|
+
var es2018Exports = requireEs2018$1();
|
|
5388
|
+
|
|
5389
|
+
function useMultipleSelection(values, defaultSelectedIndexes = []) {
|
|
5390
|
+
es2018Exports$1.assert(values.length > 0, 'The parameter values must be a non-empty array');
|
|
5391
|
+
for (const index of defaultSelectedIndexes) {
|
|
5392
|
+
es2018Exports$1.assert(index >= 0 && index < values.length, 'The index of parameter defaultSelectedIndexes must be in the range of 0 to values.length');
|
|
5393
|
+
}
|
|
5394
|
+
const [selectedIndexes, setSelectedIndexes] = react.exports.useState(new Set(defaultSelectedIndexes));
|
|
5395
|
+
return {
|
|
5396
|
+
values: es2018Exports.toArray(es2018Exports.map(selectedIndexes, i => values[i])),
|
|
5397
|
+
options: values.map((value, index) => {
|
|
5398
|
+
const selected = selectedIndexes.has(index);
|
|
5399
|
+
const select = () => {
|
|
5400
|
+
const set = new Set(selectedIndexes);
|
|
5401
|
+
set.add(index);
|
|
5402
|
+
setSelectedIndexes(set);
|
|
5403
|
+
};
|
|
5404
|
+
const unselect = () => {
|
|
5405
|
+
const set = new Set(selectedIndexes);
|
|
5406
|
+
set.delete(index);
|
|
5407
|
+
setSelectedIndexes(set);
|
|
5408
|
+
};
|
|
5409
|
+
return {
|
|
5410
|
+
value,
|
|
5411
|
+
index,
|
|
5412
|
+
selected,
|
|
5413
|
+
select,
|
|
5414
|
+
unselect,
|
|
5415
|
+
toggle: selected ? unselect : select
|
|
5416
|
+
};
|
|
5417
|
+
})
|
|
5418
|
+
};
|
|
5419
|
+
}
|
|
5420
|
+
|
|
5352
5421
|
function useStateCycle(stateList, initialStateIndex = 0) {
|
|
5353
5422
|
const [index, setIndex] = react.exports.useState(initialStateIndex);
|
|
5354
5423
|
return [
|
|
@@ -13628,13 +13697,17 @@
|
|
|
13628
13697
|
exports.useFiniteStateMachine = useFiniteStateMachine;
|
|
13629
13698
|
exports.useForceUpdate = useForceUpdate;
|
|
13630
13699
|
exports.useIncrement = useIncrement;
|
|
13700
|
+
exports.useIsFirstRender = useIsFirstRender;
|
|
13631
13701
|
exports.useIsMounted = useIsMounted;
|
|
13632
13702
|
exports.useMount = useMount;
|
|
13703
|
+
exports.useMultipleSelection = useMultipleSelection;
|
|
13704
|
+
exports.useRenderCounter = useRenderCounter;
|
|
13633
13705
|
exports.useResizeObserver = useResizeObserver;
|
|
13634
13706
|
exports.useSingleSelection = useSingleSelection;
|
|
13635
13707
|
exports.useStateCycle = useStateCycle;
|
|
13636
13708
|
exports.useStep = useStep;
|
|
13637
13709
|
exports.useToggle = useToggle;
|
|
13710
|
+
exports.useUpdateEffect = useUpdateEffect;
|
|
13638
13711
|
|
|
13639
13712
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
13640
13713
|
|