kui-utils 0.0.3 → 0.0.5

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/cjs/index.js CHANGED
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var _ = require('lodash');
7
+ var reactRouter = require('react-router');
7
8
  var mobx = require('mobx');
8
9
 
9
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -66,6 +67,37 @@ var useToggle = function (isModalOpen) {
66
67
  return [isOpen, handleOpen, handleClose];
67
68
  };
68
69
 
70
+ var useDebounce = function (value, delay, callback, deps) {
71
+ var debouncedChangeHandler = React.useMemo(function () { return ___default["default"].debounce(callback, delay); }, [value, delay, deps]);
72
+ React.useEffect(function () {
73
+ if (value) {
74
+ debouncedChangeHandler();
75
+ }
76
+ return function () {
77
+ debouncedChangeHandler.cancel();
78
+ };
79
+ }, [value, delay, deps]);
80
+ };
81
+
82
+ var useTabIndex = function (paths) {
83
+ var searchParams = reactRouter.useLocation().search;
84
+ return paths.findIndex(function (path) { return path.includes(searchParams); }) || null;
85
+ };
86
+
87
+ var useWindowWidth = function (time) {
88
+ if (time === void 0) { time = 10; }
89
+ var _a = React.useState(0), width = _a[0], setWidth = _a[1];
90
+ React.useEffect(function () {
91
+ setWidth(window.innerWidth);
92
+ var handleResize = ___default["default"].debounce(function () {
93
+ setWidth(window.innerWidth);
94
+ }, time);
95
+ window.addEventListener("resize", handleResize);
96
+ return function () { return window.removeEventListener("resize", handleResize); };
97
+ }, []);
98
+ return width;
99
+ };
100
+
69
101
  var addLeadZero = function (number) { return (number < 10 ? "0".concat(number) : number); };
70
102
 
71
103
  var addToArrayByCondition = function (condition, elem) { return (condition ? [elem] : []); };
@@ -2280,6 +2312,9 @@ exports.strongPasswordRegExp = strongPasswordRegExp;
2280
2312
  exports.swiftRegExp = swiftRegExp;
2281
2313
  exports.toNumber = toNumber;
2282
2314
  exports.updateQueryParams = updateQueryParams;
2315
+ exports.useDebounce = useDebounce;
2283
2316
  exports.useForkRef = useForkRef;
2317
+ exports.useTabIndex = useTabIndex;
2284
2318
  exports.useToggle = useToggle;
2319
+ exports.useWindowWidth = useWindowWidth;
2285
2320
  //# sourceMappingURL=index.js.map