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/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 = {};
|
|
@@ -5324,14 +5359,14 @@ function requireEs2018 () {
|
|
|
5324
5359
|
return es2018$6;
|
|
5325
5360
|
}
|
|
5326
5361
|
|
|
5327
|
-
var es2018Exports = requireEs2018();
|
|
5362
|
+
var es2018Exports$1 = requireEs2018();
|
|
5328
5363
|
|
|
5329
|
-
function useSingleSelection(values,
|
|
5330
|
-
es2018Exports.assert(values.length > 0, 'The parameter values must be a non-empty array');
|
|
5331
|
-
if (es2018$7.isntUndefined(
|
|
5332
|
-
es2018Exports.assert(
|
|
5364
|
+
function useSingleSelection(values, defaultSelectedIndex) {
|
|
5365
|
+
es2018Exports$1.assert(values.length > 0, 'The parameter values must be a non-empty array');
|
|
5366
|
+
if (es2018$7.isntUndefined(defaultSelectedIndex)) {
|
|
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
|
-
const [selectedIndex, setSelectedIndex] = react.exports.useState(
|
|
5369
|
+
const [selectedIndex, setSelectedIndex] = react.exports.useState(defaultSelectedIndex);
|
|
5335
5370
|
return {
|
|
5336
5371
|
value: es2018$7.isUndefined(selectedIndex) ? undefined : values[selectedIndex],
|
|
5337
5372
|
options: values.map((value, index) => ({
|
|
@@ -5343,6 +5378,40 @@ function useSingleSelection(values, defaultIndex) {
|
|
|
5343
5378
|
};
|
|
5344
5379
|
}
|
|
5345
5380
|
|
|
5381
|
+
var es2018Exports = requireEs2018$1();
|
|
5382
|
+
|
|
5383
|
+
function useMultipleSelection(values, defaultSelectedIndexes = []) {
|
|
5384
|
+
es2018Exports$1.assert(values.length > 0, 'The parameter values must be a non-empty array');
|
|
5385
|
+
for (const index of defaultSelectedIndexes) {
|
|
5386
|
+
es2018Exports$1.assert(index >= 0 && index < values.length, 'The index of parameter defaultSelectedIndexes must be in the range of 0 to values.length');
|
|
5387
|
+
}
|
|
5388
|
+
const [selectedIndexes, setSelectedIndexes] = react.exports.useState(new Set(defaultSelectedIndexes));
|
|
5389
|
+
return {
|
|
5390
|
+
values: es2018Exports.toArray(es2018Exports.map(selectedIndexes, i => values[i])),
|
|
5391
|
+
options: values.map((value, index) => {
|
|
5392
|
+
const selected = selectedIndexes.has(index);
|
|
5393
|
+
const select = () => {
|
|
5394
|
+
const set = new Set(selectedIndexes);
|
|
5395
|
+
set.add(index);
|
|
5396
|
+
setSelectedIndexes(set);
|
|
5397
|
+
};
|
|
5398
|
+
const unselect = () => {
|
|
5399
|
+
const set = new Set(selectedIndexes);
|
|
5400
|
+
set.delete(index);
|
|
5401
|
+
setSelectedIndexes(set);
|
|
5402
|
+
};
|
|
5403
|
+
return {
|
|
5404
|
+
value,
|
|
5405
|
+
index,
|
|
5406
|
+
selected,
|
|
5407
|
+
select,
|
|
5408
|
+
unselect,
|
|
5409
|
+
toggle: selected ? unselect : select
|
|
5410
|
+
};
|
|
5411
|
+
})
|
|
5412
|
+
};
|
|
5413
|
+
}
|
|
5414
|
+
|
|
5346
5415
|
function useStateCycle(stateList, initialStateIndex = 0) {
|
|
5347
5416
|
const [index, setIndex] = react.exports.useState(initialStateIndex);
|
|
5348
5417
|
return [
|
|
@@ -13619,5 +13688,5 @@ function useFiniteStateMachine(schema, initialState) {
|
|
|
13619
13688
|
}
|
|
13620
13689
|
|
|
13621
13690
|
var ObservableFiniteStateMachine = es2018$2.ObservableFiniteStateMachine;
|
|
13622
|
-
export { ObservableFiniteStateMachine, useFiniteStateMachine, useForceUpdate, useIncrement, useIsMounted, useMount, useResizeObserver, useSingleSelection, useStateCycle, useStep, useToggle };
|
|
13691
|
+
export { ObservableFiniteStateMachine, useFiniteStateMachine, useForceUpdate, useIncrement, useIsFirstRender, useIsMounted, useMount, useMultipleSelection, useRenderCounter, useResizeObserver, useSingleSelection, useStateCycle, useStep, useToggle, useUpdateEffect };
|
|
13623
13692
|
//# sourceMappingURL=index.mjs.map
|