@astral/ui 4.86.0 → 4.87.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.
- package/components/NotificationList/ListItem/useLogic/useLogic.js +1 -1
- package/components/Select/Select.js +1 -1
- package/components/Select/useLogic/useLogic.d.ts +1 -1
- package/components/TagsList/types.d.ts +2 -2
- package/components/TagsList/useLogic/useLogic.js +16 -10
- package/components/TagsList/utils/getKey/getKey.js +4 -4
- package/components/createGlobalState/createGlobalState.d.ts +6 -0
- package/components/createGlobalState/createGlobalState.js +25 -0
- package/components/createGlobalState/index.d.ts +1 -0
- package/components/createGlobalState/index.js +1 -0
- package/components/createGlobalState/public.d.ts +1 -0
- package/components/createGlobalState/public.js +1 -0
- package/components/createGlobalState/utils/index.d.ts +1 -0
- package/components/createGlobalState/utils/index.js +1 -0
- package/components/createGlobalState/utils/resolveHookState/index.d.ts +1 -0
- package/components/createGlobalState/utils/resolveHookState/index.js +1 -0
- package/components/createGlobalState/utils/resolveHookState/resolveHookState.d.ts +4 -0
- package/components/createGlobalState/utils/resolveHookState/resolveHookState.js +8 -0
- package/components/createGlobalState/utils/types.d.ts +5 -0
- package/components/createGlobalState/utils/types.js +1 -0
- package/components/useDebounce/hooks/useTimeoutFn/index.d.ts +1 -0
- package/components/useDebounce/hooks/useTimeoutFn/index.js +1 -0
- package/components/useDebounce/hooks/useTimeoutFn/useTimeoutFn.d.ts +2 -0
- package/components/useDebounce/hooks/useTimeoutFn/useTimeoutFn.js +29 -0
- package/components/useDebounce/index.d.ts +1 -0
- package/components/useDebounce/index.js +1 -0
- package/components/useDebounce/public.d.ts +1 -0
- package/components/useDebounce/public.js +1 -0
- package/components/useDebounce/useDebounce.d.ts +6 -0
- package/components/useDebounce/useDebounce.js +10 -0
- package/components/useFirstMountState/index.d.ts +1 -1
- package/components/useFirstMountState/index.js +1 -1
- package/components/useFirstMountState/public.d.ts +1 -1
- package/components/useFirstMountState/public.js +1 -1
- package/components/useFirstMountState/useFirstMountState.d.ts +4 -1
- package/components/useFirstMountState/useFirstMountState.js +12 -1
- package/components/useIntersection/index.d.ts +1 -0
- package/components/useIntersection/index.js +1 -0
- package/components/useIntersection/public.d.ts +1 -0
- package/components/useIntersection/public.js +1 -0
- package/components/useIntersection/useIntersection.d.ts +5 -0
- package/components/useIntersection/useIntersection.js +22 -0
- package/components/useInterval/index.d.ts +1 -1
- package/components/useInterval/index.js +1 -1
- package/components/useInterval/public.d.ts +1 -1
- package/components/useInterval/public.js +1 -1
- package/components/useInterval/useInterval.d.ts +6 -1
- package/components/useInterval/useInterval.js +19 -1
- package/components/useIsomorphicLayoutEffect/index.d.ts +1 -0
- package/components/useIsomorphicLayoutEffect/index.js +1 -0
- package/components/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +2 -0
- package/components/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +5 -0
- package/components/useLocalStorage/index.d.ts +1 -1
- package/components/useLocalStorage/index.js +1 -1
- package/components/useLocalStorage/public.d.ts +1 -1
- package/components/useLocalStorage/public.js +1 -1
- package/components/useLocalStorage/useLocalStorage.d.ts +15 -1
- package/components/useLocalStorage/useLocalStorage.js +96 -1
- package/components/useMeasure/index.d.ts +1 -0
- package/components/useMeasure/index.js +1 -0
- package/components/useMeasure/public.d.ts +1 -0
- package/components/useMeasure/public.js +1 -0
- package/components/useMeasure/useMeasure.d.ts +13 -0
- package/components/useMeasure/useMeasure.js +42 -0
- package/components/useNewToggle/index.d.ts +1 -0
- package/components/useNewToggle/index.js +1 -0
- package/components/useNewToggle/public.d.ts +1 -0
- package/components/useNewToggle/public.js +1 -0
- package/components/useNewToggle/useNewToggle.d.ts +4 -0
- package/components/useNewToggle/useNewToggle.js +8 -0
- package/components/useRafState/hooks/useUnmount/index.d.ts +1 -0
- package/components/useRafState/hooks/useUnmount/index.js +1 -0
- package/components/useRafState/hooks/useUnmount/useUnmount.d.ts +1 -0
- package/components/useRafState/hooks/useUnmount/useUnmount.js +7 -0
- package/components/useRafState/index.d.ts +1 -0
- package/components/useRafState/index.js +1 -0
- package/components/useRafState/useRafState.d.ts +2 -0
- package/components/useRafState/useRafState.js +16 -0
- package/components/useScroll/index.d.ts +1 -0
- package/components/useScroll/index.js +1 -0
- package/components/useScroll/public.d.ts +1 -0
- package/components/useScroll/public.js +1 -0
- package/components/useScroll/useScroll.d.ts +9 -0
- package/components/useScroll/useScroll.js +39 -0
- package/components/useSet/index.d.ts +1 -1
- package/components/useSet/index.js +1 -1
- package/components/useSet/public.d.ts +1 -1
- package/components/useSet/public.js +1 -1
- package/components/useSet/useSet.d.ts +14 -1
- package/components/useSet/useSet.js +26 -1
- package/components/useSize/index.d.ts +1 -0
- package/components/useSize/index.js +1 -0
- package/components/useSize/public.d.ts +1 -0
- package/components/useSize/public.js +1 -0
- package/components/useSize/useSize.d.ts +17 -0
- package/components/useSize/useSize.js +79 -0
- package/components/useToggle/useToggle.d.ts +1 -0
- package/components/useToggle/useToggle.js +1 -0
- package/components/useUpdateEffect/index.d.ts +1 -1
- package/components/useUpdateEffect/index.js +1 -1
- package/components/useUpdateEffect/public.d.ts +1 -1
- package/components/useUpdateEffect/public.js +1 -1
- package/components/useUpdateEffect/useUpdateEffect.d.ts +5 -1
- package/components/useUpdateEffect/useUpdateEffect.js +13 -1
- package/components/useWindowScroll/index.d.ts +1 -0
- package/components/useWindowScroll/index.js +1 -0
- package/components/useWindowScroll/public.d.ts +1 -0
- package/components/useWindowScroll/public.js +1 -0
- package/components/useWindowScroll/useWindowScroll.d.ts +8 -0
- package/components/useWindowScroll/useWindowScroll.js +40 -0
- package/components/utils/addEventListenerSafe/addEventListenerSafe.d.ts +1 -0
- package/components/utils/addEventListenerSafe/addEventListenerSafe.js +5 -0
- package/components/utils/addEventListenerSafe/index.d.ts +1 -0
- package/components/utils/addEventListenerSafe/index.js +1 -0
- package/components/utils/isBrowser/index.d.ts +1 -0
- package/components/utils/isBrowser/index.js +1 -0
- package/components/utils/isBrowser/isBrowser.d.ts +1 -0
- package/components/utils/isBrowser/isBrowser.js +1 -0
- package/components/utils/removeEventListenerSafe/index.d.ts +1 -0
- package/components/utils/removeEventListenerSafe/index.js +1 -0
- package/components/utils/removeEventListenerSafe/removeEventListenerSafe.d.ts +1 -0
- package/components/utils/removeEventListenerSafe/removeEventListenerSafe.js +5 -0
- package/components/utils/replaceRaf/constants.d.ts +1 -0
- package/components/utils/replaceRaf/constants.js +1 -0
- package/components/utils/replaceRaf/index.d.ts +1 -0
- package/components/utils/replaceRaf/index.js +1 -0
- package/components/utils/replaceRaf/replaceRaf.d.ts +18 -0
- package/components/utils/replaceRaf/replaceRaf.js +81 -0
- package/node/components/NotificationList/ListItem/useLogic/useLogic.js +2 -2
- package/node/components/Select/Select.js +1 -1
- package/node/components/Select/useLogic/useLogic.d.ts +1 -1
- package/node/components/TagsList/types.d.ts +2 -2
- package/node/components/TagsList/useLogic/useLogic.js +16 -10
- package/node/components/TagsList/utils/getKey/getKey.js +4 -4
- package/node/components/createGlobalState/createGlobalState.d.ts +6 -0
- package/node/components/createGlobalState/createGlobalState.js +29 -0
- package/node/components/createGlobalState/index.d.ts +1 -0
- package/node/components/createGlobalState/index.js +17 -0
- package/node/components/createGlobalState/public.d.ts +1 -0
- package/node/components/createGlobalState/public.js +17 -0
- package/node/components/createGlobalState/utils/index.d.ts +1 -0
- package/node/components/createGlobalState/utils/index.js +17 -0
- package/node/components/createGlobalState/utils/resolveHookState/index.d.ts +1 -0
- package/node/components/createGlobalState/utils/resolveHookState/index.js +17 -0
- package/node/components/createGlobalState/utils/resolveHookState/resolveHookState.d.ts +4 -0
- package/node/components/createGlobalState/utils/resolveHookState/resolveHookState.js +12 -0
- package/node/components/createGlobalState/utils/types.d.ts +5 -0
- package/node/components/createGlobalState/utils/types.js +2 -0
- package/node/components/useDebounce/hooks/useTimeoutFn/index.d.ts +1 -0
- package/node/components/useDebounce/hooks/useTimeoutFn/index.js +17 -0
- package/node/components/useDebounce/hooks/useTimeoutFn/useTimeoutFn.d.ts +2 -0
- package/node/components/useDebounce/hooks/useTimeoutFn/useTimeoutFn.js +33 -0
- package/node/components/useDebounce/index.d.ts +1 -0
- package/node/components/useDebounce/index.js +17 -0
- package/node/components/useDebounce/public.d.ts +1 -0
- package/node/components/useDebounce/public.js +17 -0
- package/node/components/useDebounce/useDebounce.d.ts +6 -0
- package/node/components/useDebounce/useDebounce.js +14 -0
- package/node/components/useFirstMountState/index.d.ts +1 -1
- package/node/components/useFirstMountState/index.js +15 -3
- package/node/components/useFirstMountState/public.d.ts +1 -1
- package/node/components/useFirstMountState/public.js +15 -3
- package/node/components/useFirstMountState/useFirstMountState.d.ts +4 -1
- package/node/components/useFirstMountState/useFirstMountState.js +13 -2
- package/node/components/useIntersection/index.d.ts +1 -0
- package/node/components/useIntersection/index.js +17 -0
- package/node/components/useIntersection/public.d.ts +1 -0
- package/node/components/useIntersection/public.js +17 -0
- package/node/components/useIntersection/useIntersection.d.ts +5 -0
- package/node/components/useIntersection/useIntersection.js +26 -0
- package/node/components/useInterval/index.d.ts +1 -1
- package/node/components/useInterval/index.js +15 -3
- package/node/components/useInterval/public.d.ts +1 -1
- package/node/components/useInterval/public.js +15 -3
- package/node/components/useInterval/useInterval.d.ts +6 -1
- package/node/components/useInterval/useInterval.js +20 -2
- package/node/components/useIsomorphicLayoutEffect/index.d.ts +1 -0
- package/node/components/useIsomorphicLayoutEffect/index.js +17 -0
- package/node/components/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +2 -0
- package/node/components/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +8 -0
- package/node/components/useLocalStorage/index.d.ts +1 -1
- package/node/components/useLocalStorage/index.js +5 -14
- package/node/components/useLocalStorage/public.d.ts +1 -1
- package/node/components/useLocalStorage/public.js +5 -14
- package/node/components/useLocalStorage/useLocalStorage.d.ts +15 -1
- package/node/components/useLocalStorage/useLocalStorage.js +97 -2
- package/node/components/useMeasure/index.d.ts +1 -0
- package/node/components/useMeasure/index.js +8 -0
- package/node/components/useMeasure/public.d.ts +1 -0
- package/node/components/useMeasure/public.js +8 -0
- package/node/components/useMeasure/useMeasure.d.ts +13 -0
- package/node/components/useMeasure/useMeasure.js +44 -0
- package/node/components/useNewToggle/index.d.ts +1 -0
- package/node/components/useNewToggle/index.js +17 -0
- package/node/components/useNewToggle/public.d.ts +1 -0
- package/node/components/useNewToggle/public.js +17 -0
- package/node/components/useNewToggle/useNewToggle.d.ts +4 -0
- package/node/components/useNewToggle/useNewToggle.js +12 -0
- package/node/components/useRafState/hooks/useUnmount/index.d.ts +1 -0
- package/node/components/useRafState/hooks/useUnmount/index.js +17 -0
- package/node/components/useRafState/hooks/useUnmount/useUnmount.d.ts +1 -0
- package/node/components/useRafState/hooks/useUnmount/useUnmount.js +11 -0
- package/node/components/useRafState/index.d.ts +1 -0
- package/node/components/useRafState/index.js +17 -0
- package/node/components/useRafState/useRafState.d.ts +2 -0
- package/node/components/useRafState/useRafState.js +20 -0
- package/node/components/useScroll/index.d.ts +1 -0
- package/node/components/useScroll/index.js +17 -0
- package/node/components/useScroll/public.d.ts +1 -0
- package/node/components/useScroll/public.js +17 -0
- package/node/components/useScroll/useScroll.d.ts +9 -0
- package/node/components/useScroll/useScroll.js +43 -0
- package/node/components/useSet/index.d.ts +1 -1
- package/node/components/useSet/index.js +15 -3
- package/node/components/useSet/public.d.ts +1 -1
- package/node/components/useSet/public.js +15 -3
- package/node/components/useSet/useSet.d.ts +14 -1
- package/node/components/useSet/useSet.js +27 -2
- package/node/components/useSize/index.d.ts +1 -0
- package/node/components/useSize/index.js +8 -0
- package/node/components/useSize/public.d.ts +1 -0
- package/node/components/useSize/public.js +8 -0
- package/node/components/useSize/useSize.d.ts +17 -0
- package/node/components/useSize/useSize.js +106 -0
- package/node/components/useToggle/useToggle.d.ts +1 -0
- package/node/components/useToggle/useToggle.js +1 -0
- package/node/components/useUpdateEffect/index.d.ts +1 -1
- package/node/components/useUpdateEffect/index.js +15 -3
- package/node/components/useUpdateEffect/public.d.ts +1 -1
- package/node/components/useUpdateEffect/public.js +15 -3
- package/node/components/useUpdateEffect/useUpdateEffect.d.ts +5 -1
- package/node/components/useUpdateEffect/useUpdateEffect.js +14 -2
- package/node/components/useWindowScroll/index.d.ts +1 -0
- package/node/components/useWindowScroll/index.js +17 -0
- package/node/components/useWindowScroll/public.d.ts +1 -0
- package/node/components/useWindowScroll/public.js +17 -0
- package/node/components/useWindowScroll/useWindowScroll.d.ts +8 -0
- package/node/components/useWindowScroll/useWindowScroll.js +44 -0
- package/node/components/utils/addEventListenerSafe/addEventListenerSafe.d.ts +1 -0
- package/node/components/utils/addEventListenerSafe/addEventListenerSafe.js +9 -0
- package/node/components/utils/addEventListenerSafe/index.d.ts +1 -0
- package/node/components/utils/addEventListenerSafe/index.js +17 -0
- package/node/components/utils/isBrowser/index.d.ts +1 -0
- package/node/components/utils/isBrowser/index.js +17 -0
- package/node/components/utils/isBrowser/isBrowser.d.ts +1 -0
- package/node/components/utils/isBrowser/isBrowser.js +4 -0
- package/node/components/utils/removeEventListenerSafe/index.d.ts +1 -0
- package/node/components/utils/removeEventListenerSafe/index.js +17 -0
- package/node/components/utils/removeEventListenerSafe/removeEventListenerSafe.d.ts +1 -0
- package/node/components/utils/removeEventListenerSafe/removeEventListenerSafe.js +9 -0
- package/node/components/utils/replaceRaf/constants.d.ts +1 -0
- package/node/components/utils/replaceRaf/constants.js +4 -0
- package/node/components/utils/replaceRaf/index.d.ts +1 -0
- package/node/components/utils/replaceRaf/index.js +17 -0
- package/node/components/utils/replaceRaf/replaceRaf.d.ts +18 -0
- package/node/components/utils/replaceRaf/replaceRaf.js +86 -0
- package/package.json +1 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useIsomorphicLayoutEffect = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const isBrowser_1 = require("../utils/isBrowser");
|
|
6
|
+
exports.useIsomorphicLayoutEffect = isBrowser_1.isBrowser
|
|
7
|
+
? react_1.useLayoutEffect
|
|
8
|
+
: react_1.useEffect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { default as useLocalStorage } from './useLocalStorage';
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
16
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
6
|
+
exports.useLocalStorage = void 0;
|
|
7
|
+
var useLocalStorage_1 = require("./useLocalStorage");
|
|
8
|
+
Object.defineProperty(exports, "useLocalStorage", { enumerable: true, get: function () { return __importDefault(useLocalStorage_1).default; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { default as useLocalStorage } from './useLocalStorage';
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
16
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
6
|
+
exports.useLocalStorage = void 0;
|
|
7
|
+
var useLocalStorage_1 = require("./useLocalStorage");
|
|
8
|
+
Object.defineProperty(exports, "useLocalStorage", { enumerable: true, get: function () { return __importDefault(useLocalStorage_1).default; } });
|
|
@@ -1 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import { type Dispatch, type SetStateAction } from 'react';
|
|
2
|
+
type ParserOptions<T> = {
|
|
3
|
+
raw: true;
|
|
4
|
+
} | {
|
|
5
|
+
raw: false;
|
|
6
|
+
serializer: (value: T) => string;
|
|
7
|
+
deserializer: (value: string) => T;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Хук управляет состоянием, которое синхронизируется с localStorage браузера.
|
|
11
|
+
* Возвращает текущее значение, функцию для его обновления и функцию для удаления значения из localStorage.
|
|
12
|
+
*/
|
|
13
|
+
export declare const useLocalStorage: <T>(key: string, initialValue?: T | undefined, options?: ParserOptions<T> | undefined) => [T | undefined, Dispatch<SetStateAction<T | undefined>>, () => void];
|
|
14
|
+
declare const useLocalStorageExport: <T>(key: string, initialValue?: T | undefined, options?: ParserOptions<T> | undefined) => [T | undefined, Dispatch<SetStateAction<T | undefined>>, () => void];
|
|
15
|
+
export default useLocalStorageExport;
|
|
@@ -1,5 +1,100 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useLocalStorage = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const isBrowser_1 = require("../utils/isBrowser");
|
|
6
|
+
const noop = () => { };
|
|
7
|
+
/**
|
|
8
|
+
* Хук управляет состоянием, которое синхронизируется с localStorage браузера.
|
|
9
|
+
* Возвращает текущее значение, функцию для его обновления и функцию для удаления значения из localStorage.
|
|
10
|
+
*/
|
|
11
|
+
const useLocalStorage = (key, initialValue, options) => {
|
|
12
|
+
if (!key) {
|
|
13
|
+
throw new Error('useLocalStorage key may not be falsy');
|
|
14
|
+
}
|
|
15
|
+
const deserializer = (() => {
|
|
16
|
+
if (!options) {
|
|
17
|
+
return JSON.parse;
|
|
18
|
+
}
|
|
19
|
+
if (options.raw) {
|
|
20
|
+
return (value) => value;
|
|
21
|
+
}
|
|
22
|
+
return options.deserializer;
|
|
23
|
+
})();
|
|
24
|
+
const serializer = (() => {
|
|
25
|
+
if (!options) {
|
|
26
|
+
return JSON.stringify;
|
|
27
|
+
}
|
|
28
|
+
if (options.raw) {
|
|
29
|
+
return String;
|
|
30
|
+
}
|
|
31
|
+
return options.serializer;
|
|
32
|
+
})();
|
|
33
|
+
const initializer = (0, react_1.useRef)((newKey) => {
|
|
34
|
+
try {
|
|
35
|
+
const localStorageValue = localStorage.getItem(newKey);
|
|
36
|
+
if (localStorageValue !== null) {
|
|
37
|
+
return deserializer(localStorageValue);
|
|
38
|
+
}
|
|
39
|
+
if (initialValue) {
|
|
40
|
+
localStorage.setItem(newKey, serializer(initialValue));
|
|
41
|
+
}
|
|
42
|
+
return initialValue;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// If user is in private mode or has storage restriction
|
|
46
|
+
// localStorage can throw. JSON.parse and JSON.stringify
|
|
47
|
+
// can throw, too.
|
|
48
|
+
return initialValue;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
const [state, setState] = (0, react_1.useState)(() => initializer.current(key));
|
|
52
|
+
(0, react_1.useLayoutEffect)(() => setState(initializer.current(key)), [key]);
|
|
53
|
+
const serializeValue = (value, parserOptions) => {
|
|
54
|
+
if (!parserOptions) {
|
|
55
|
+
return JSON.stringify(value);
|
|
56
|
+
}
|
|
57
|
+
if (parserOptions.raw) {
|
|
58
|
+
return typeof value === 'string' ? value : JSON.stringify(value);
|
|
59
|
+
}
|
|
60
|
+
return parserOptions.serializer(value);
|
|
61
|
+
};
|
|
62
|
+
const set = (0, react_1.useCallback)((valOrFunc) => {
|
|
63
|
+
try {
|
|
64
|
+
const newState = typeof valOrFunc === 'function'
|
|
65
|
+
? valOrFunc(state)
|
|
66
|
+
: valOrFunc;
|
|
67
|
+
if (typeof newState === 'undefined') {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const value = serializeValue(newState, options);
|
|
71
|
+
localStorage.setItem(key, value);
|
|
72
|
+
setState(deserializer(value));
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// If user is in private mode or has storage restriction
|
|
76
|
+
// localStorage can throw. Also JSON.stringify can throw.
|
|
77
|
+
}
|
|
78
|
+
}, [key, setState]);
|
|
79
|
+
const remove = (0, react_1.useCallback)(() => {
|
|
80
|
+
try {
|
|
81
|
+
localStorage.removeItem(key);
|
|
82
|
+
setState(undefined);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// If user is in private mode or has storage restriction
|
|
86
|
+
// localStorage can throw.
|
|
87
|
+
}
|
|
88
|
+
}, [key, setState]);
|
|
89
|
+
return [state, set, remove];
|
|
90
|
+
};
|
|
91
|
+
exports.useLocalStorage = useLocalStorage;
|
|
92
|
+
const useLocalStorageFallback = ((initialValue) => [
|
|
93
|
+
initialValue,
|
|
94
|
+
noop,
|
|
95
|
+
noop,
|
|
96
|
+
]);
|
|
97
|
+
const useLocalStorageExport = isBrowser_1.isBrowser
|
|
98
|
+
? exports.useLocalStorage
|
|
99
|
+
: useLocalStorageFallback;
|
|
100
|
+
exports.default = useLocalStorageExport;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as useMeasure } from './useMeasure';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.useMeasure = void 0;
|
|
7
|
+
var useMeasure_1 = require("./useMeasure");
|
|
8
|
+
Object.defineProperty(exports, "useMeasure", { enumerable: true, get: function () { return __importDefault(useMeasure_1).default; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as useMeasure } from './useMeasure';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.useMeasure = void 0;
|
|
7
|
+
var useMeasure_1 = require("./useMeasure");
|
|
8
|
+
Object.defineProperty(exports, "useMeasure", { enumerable: true, get: function () { return __importDefault(useMeasure_1).default; } });
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type UseMeasureRect = Pick<DOMRectReadOnly, 'x' | 'y' | 'top' | 'left' | 'right' | 'bottom' | 'height' | 'width'>;
|
|
2
|
+
export type UseMeasureRef<TElement extends Element = Element> = (element: TElement) => void;
|
|
3
|
+
export type UseMeasureResult<TElement extends Element = Element> = [
|
|
4
|
+
UseMeasureRef<TElement>,
|
|
5
|
+
UseMeasureRect
|
|
6
|
+
];
|
|
7
|
+
/**
|
|
8
|
+
* Хук отслеживает размеры HTML-элемента с помощью Resize Observer API.
|
|
9
|
+
* Принимает ref на HTML-элемент и возвращает объект с размерами элемента.
|
|
10
|
+
*/
|
|
11
|
+
declare function useMeasure<TElement extends Element = Element>(): UseMeasureResult<TElement>;
|
|
12
|
+
declare const useMeasureExport: typeof useMeasure;
|
|
13
|
+
export default useMeasureExport;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const react_1 = require("react");
|
|
4
|
+
const useIsomorphicLayoutEffect_1 = require("../useIsomorphicLayoutEffect");
|
|
5
|
+
const isBrowser_1 = require("../utils/isBrowser");
|
|
6
|
+
const noop = () => { };
|
|
7
|
+
const defaultState = {
|
|
8
|
+
x: 0,
|
|
9
|
+
y: 0,
|
|
10
|
+
width: 0,
|
|
11
|
+
height: 0,
|
|
12
|
+
top: 0,
|
|
13
|
+
left: 0,
|
|
14
|
+
bottom: 0,
|
|
15
|
+
right: 0,
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Хук отслеживает размеры HTML-элемента с помощью Resize Observer API.
|
|
19
|
+
* Принимает ref на HTML-элемент и возвращает объект с размерами элемента.
|
|
20
|
+
*/
|
|
21
|
+
function useMeasure() {
|
|
22
|
+
const [element, ref] = (0, react_1.useState)(null);
|
|
23
|
+
const [rect, setRect] = (0, react_1.useState)(defaultState);
|
|
24
|
+
const observer = (0, react_1.useMemo)(() => new window.ResizeObserver((entries) => {
|
|
25
|
+
if (entries[0]) {
|
|
26
|
+
setRect(entries[0].contentRect);
|
|
27
|
+
}
|
|
28
|
+
}), []);
|
|
29
|
+
(0, useIsomorphicLayoutEffect_1.useIsomorphicLayoutEffect)(() => {
|
|
30
|
+
if (!element) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
observer.observe(element);
|
|
34
|
+
return () => {
|
|
35
|
+
observer.disconnect();
|
|
36
|
+
};
|
|
37
|
+
}, [element]);
|
|
38
|
+
return [ref, rect];
|
|
39
|
+
}
|
|
40
|
+
const useMeasureFallback = (() => [noop, defaultState]);
|
|
41
|
+
const useMeasureExport = isBrowser_1.isBrowser && typeof window.ResizeObserver !== 'undefined'
|
|
42
|
+
? useMeasure
|
|
43
|
+
: useMeasureFallback;
|
|
44
|
+
exports.default = useMeasureExport;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useNewToggle';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useNewToggle"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useNewToggle';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useNewToggle"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useNewToggle = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const toggleReducer = (state, nextValue) => typeof nextValue === 'boolean' ? nextValue : !state;
|
|
6
|
+
/**
|
|
7
|
+
* Хук отслеживает значение типа boolean.
|
|
8
|
+
*/
|
|
9
|
+
const useNewToggle = (initialValue) => {
|
|
10
|
+
return (0, react_1.useReducer)(toggleReducer, initialValue);
|
|
11
|
+
};
|
|
12
|
+
exports.useNewToggle = useNewToggle;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useUnmount';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useUnmount"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useUnmount: (fn: () => void) => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useUnmount = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useUnmount = (fn) => {
|
|
6
|
+
const fnRef = (0, react_1.useRef)(fn);
|
|
7
|
+
// update the ref each render so if it change the newest callback will be invoked
|
|
8
|
+
fnRef.current = fn;
|
|
9
|
+
(0, react_1.useEffect)(() => () => fnRef.current(), []);
|
|
10
|
+
};
|
|
11
|
+
exports.useUnmount = useUnmount;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useRafState';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useRafState"), exports);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useRafState = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useUnmount_1 = require("./hooks/useUnmount");
|
|
6
|
+
const useRafState = (initialState) => {
|
|
7
|
+
const frame = (0, react_1.useRef)(0);
|
|
8
|
+
const [state, setState] = (0, react_1.useState)(initialState);
|
|
9
|
+
const setRafState = (0, react_1.useCallback)((value) => {
|
|
10
|
+
cancelAnimationFrame(frame.current);
|
|
11
|
+
frame.current = requestAnimationFrame(() => {
|
|
12
|
+
setState(value);
|
|
13
|
+
});
|
|
14
|
+
}, []);
|
|
15
|
+
(0, useUnmount_1.useUnmount)(() => {
|
|
16
|
+
cancelAnimationFrame(frame.current);
|
|
17
|
+
});
|
|
18
|
+
return [state, setRafState];
|
|
19
|
+
};
|
|
20
|
+
exports.useRafState = useRafState;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useScroll';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useScroll"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useScroll';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useScroll"), exports);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
export interface IState {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Хук отслеживает позицию скролла внутри HTML-элемента, на который передан ref.
|
|
8
|
+
*/
|
|
9
|
+
export declare const useScroll: (ref: RefObject<HTMLElement | null>) => IState;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useScroll = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useRafState_1 = require("../useRafState");
|
|
6
|
+
const addEventListenerSafe_1 = require("../utils/addEventListenerSafe");
|
|
7
|
+
const removeEventListenerSafe_1 = require("../utils/removeEventListenerSafe");
|
|
8
|
+
/**
|
|
9
|
+
* Хук отслеживает позицию скролла внутри HTML-элемента, на который передан ref.
|
|
10
|
+
*/
|
|
11
|
+
const useScroll = (ref) => {
|
|
12
|
+
if (process.env.NODE_ENV === 'development' &&
|
|
13
|
+
(typeof ref !== 'object' || typeof ref.current === 'undefined')) {
|
|
14
|
+
throw new Error('`useScroll` expects a single ref argument.');
|
|
15
|
+
}
|
|
16
|
+
const [state, setState] = (0, useRafState_1.useRafState)({
|
|
17
|
+
x: 0,
|
|
18
|
+
y: 0,
|
|
19
|
+
});
|
|
20
|
+
(0, react_1.useEffect)(() => {
|
|
21
|
+
const handler = () => {
|
|
22
|
+
if (ref.current) {
|
|
23
|
+
setState({
|
|
24
|
+
x: ref.current.scrollLeft,
|
|
25
|
+
y: ref.current.scrollTop,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
if (ref.current) {
|
|
30
|
+
(0, addEventListenerSafe_1.addEventListenerSafe)(ref.current, 'scroll', handler, {
|
|
31
|
+
capture: false,
|
|
32
|
+
passive: true,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return () => {
|
|
36
|
+
if (ref.current) {
|
|
37
|
+
(0, removeEventListenerSafe_1.removeEventListenerSafe)(ref.current, 'scroll', handler);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}, [ref]);
|
|
41
|
+
return state;
|
|
42
|
+
};
|
|
43
|
+
exports.useScroll = useScroll;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './useSet';
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
var useSet_1 = require("./useSet");
|
|
5
|
-
Object.defineProperty(exports, "useSet", { enumerable: true, get: function () { return useSet_1.useSet; } });
|
|
17
|
+
__exportStar(require("./useSet"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './useSet';
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
var useSet_1 = require("./useSet");
|
|
5
|
-
Object.defineProperty(exports, "useSet", { enumerable: true, get: function () { return useSet_1.useSet; } });
|
|
17
|
+
__exportStar(require("./useSet"), exports);
|
|
@@ -1 +1,14 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface IStableActions<TKey> {
|
|
2
|
+
add: (key: TKey) => void;
|
|
3
|
+
remove: (key: TKey) => void;
|
|
4
|
+
toggle: (key: TKey) => void;
|
|
5
|
+
reset: () => void;
|
|
6
|
+
clear: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface IActions<TKey> extends IStableActions<TKey> {
|
|
9
|
+
has: (key: TKey) => boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Хук отслеживает состояние Set и предоставляет методы для его изменения.
|
|
13
|
+
*/
|
|
14
|
+
export declare const useSet: <TKey>(initialSet?: Set<TKey>) => [Set<TKey>, IActions<TKey>];
|
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useSet = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
/**
|
|
6
|
+
* Хук отслеживает состояние Set и предоставляет методы для его изменения.
|
|
7
|
+
*/
|
|
8
|
+
const useSet = (initialSet = new Set()) => {
|
|
9
|
+
const [set, setSet] = (0, react_1.useState)(initialSet);
|
|
10
|
+
const stableActions = (0, react_1.useMemo)(() => {
|
|
11
|
+
const add = (item) => setSet((prevSet) => new Set([...Array.from(prevSet), item]));
|
|
12
|
+
const remove = (item) => setSet((prevSet) => new Set(Array.from(prevSet).filter((i) => i !== item)));
|
|
13
|
+
const toggle = (item) => setSet((prevSet) => prevSet.has(item)
|
|
14
|
+
? new Set(Array.from(prevSet).filter((i) => i !== item))
|
|
15
|
+
: new Set([...Array.from(prevSet), item]));
|
|
16
|
+
return {
|
|
17
|
+
add,
|
|
18
|
+
remove,
|
|
19
|
+
toggle,
|
|
20
|
+
reset: () => setSet(initialSet),
|
|
21
|
+
clear: () => setSet(new Set()),
|
|
22
|
+
};
|
|
23
|
+
}, [setSet]);
|
|
24
|
+
const utils = {
|
|
25
|
+
has: (0, react_1.useCallback)((item) => set.has(item), [set]),
|
|
26
|
+
...stableActions,
|
|
27
|
+
};
|
|
28
|
+
return [set, utils];
|
|
29
|
+
};
|
|
30
|
+
exports.useSet = useSet;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as useSize } from './useSize';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.useSize = void 0;
|
|
7
|
+
var useSize_1 = require("./useSize");
|
|
8
|
+
Object.defineProperty(exports, "useSize", { enumerable: true, get: function () { return __importDefault(useSize_1).default; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as useSize } from './useSize';
|