react-hook-toolkit 1.0.23 → 1.1.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/dist/index.d.ts CHANGED
@@ -2,7 +2,8 @@ import 'nprogress/nprogress.css';
2
2
  import { ReactHooksWrapper, getHook, setHook } from "./chunk1415/chunk143";
3
3
  import { DynamicLoader, AlertMessage, FilePreview, LabeledValue, DetailsCard, UploadFile, DownloadFile, ContextMenuWrapper } from './chunk1516/chunk613852';
4
4
  import { FileSkeleton, TableSkeleton, PieChartSkeleton, CardSkeleton, LineChartSkeleton, FieldSkeleton } from './chunk1617/chunk613555';
5
- import { useHistoryState, useIdle, useIsFirstRender, useList, useLockBodyScroll, useLongPress, useRecentSearch } from './chunk1516/chunk726433';
6
- import { useAxios, useAdvReducer, useFetch, useLocalStorage, useToggle, useDebounce, useThrottle, usePrevious, useMediaQuery, useClipboard, useInterval, useWindowSize, useKeyPress, useOnlineStatus, useScrollPosition, useTimeout, useDarkMode, useForm, useArray, useStepper, useUpdateEffect, useTouch, useSound, useSessionStorage, usePreferredLanguage, useHistory, useEventListener, useBattery, useDebouncedCallback, useScrollLock, useResizeObserver, useMousePosition, useScrollDirection, useImageLoader, usePersistedState, useReducedMotion, useCookie, useFetchRetry, useDelay, useVisibilityChange, useDebouncedValue, useAsync, useScript, useIndexedDB, useGeoLocation, useTimer, useIsMounted, useCss, useSpeak, useCountUp, useCountDown, usePersistedForm, useCrossFieldValidation, useFieldArray, useFormSubmit, useSmartForm, useUndo, useFormWizard, useWebSocket, useDragReorder, useInfiniteScroll, useEventListeners, createOptimizedContext } from './chunk1516/chunk940514';
5
+ import { useHistoryState, useIdle, useIsFirstRender, useList, useLockBodyScroll, useLongPress, useRecentSearch, useSpeech, usePermission, usePageLeave, useMotion, useHoverDirty, useBeforeUnload, useClickAway, useResponsive, useUnmountedRef } from './chunk1516/chunk726433';
6
+ import { useGenericReducer, useArray, useAsync, useAxios, useClipboard, useCookie, useDarkMode, useDebounce, useDebouncedCallback, useDebouncedValue, useDelay, useRequest, useRequestRetry, useForm, useImageLoader, useIndexedDB, useInterval, useKeyPress, useLocalStorage, useMediaQuery, useMousePosition, useOnlineStatus, usePersistedState, usePrevious, useReducedMotion, useResizeObserver, useScrollDirection, useScrollLock, useScrollPosition, useScript, useStepper, useThrottle, useTimeout, useToggle, useVisibilityChange, useWindowSize } from './chunk1516/chunk940514';
7
+ import { createOptimizedContext, useBattery, useCountDown, useCountUp, useCrossFieldValidation, useCss, useDragReorder, useEventListener, useEventListeners, useFieldArray, useFormSubmit, useFormWizard, useGeoLocation, useHistory, useInfiniteScroll, useIsMounted, usePersistedForm, usePreferredLanguage, useSessionStorage, useSmartForm, useSound, useSpeak, useTimer, useTouch, useUndo, useUpdateEffect, useWebSocket } from './chunk1516/chunk0021';
7
8
  export default ReactHooksWrapper;
8
- export { getHook, setHook, useAxios, useAdvReducer, useFetch, useLocalStorage, useToggle, useDebounce, useThrottle, usePrevious, useMediaQuery, useClipboard, useInterval, useWindowSize, useKeyPress, useOnlineStatus, useScrollPosition, useTimeout, useDarkMode, useForm, useArray, useStepper, useUpdateEffect, useTouch, useSound, useSessionStorage, usePreferredLanguage, useHistory, useEventListener, useBattery, useDebouncedCallback, useScrollLock, useResizeObserver, useMousePosition, useScrollDirection, useImageLoader, usePersistedState, useReducedMotion, useCookie, useFetchRetry, useDelay, useVisibilityChange, useDebouncedValue, useAsync, useScript, useIndexedDB, useGeoLocation, useTimer, useIsMounted, useCss, useSpeak, useCountUp, useCountDown, usePersistedForm, useCrossFieldValidation, useFieldArray, useFormSubmit, useSmartForm, useUndo, useFormWizard, useWebSocket, useDragReorder, useInfiniteScroll, useEventListeners, useHistoryState, useIdle, useIsFirstRender, useList, useLockBodyScroll, useLongPress, useRecentSearch, createOptimizedContext, DynamicLoader, AlertMessage, FilePreview, FileSkeleton, TableSkeleton, PieChartSkeleton, CardSkeleton, LineChartSkeleton, FieldSkeleton, LabeledValue, DetailsCard, UploadFile, DownloadFile, ContextMenuWrapper };
9
+ export { getHook, setHook, useGenericReducer, useArray, useAsync, useAxios, useBattery, useBeforeUnload, useClipboard, useCookie, useClickAway, useCountDown, useCountUp, useCrossFieldValidation, useCss, useDarkMode, useDebounce, useDebouncedCallback, useDebouncedValue, useDelay, useDragReorder, useEventListener, useEventListeners, useRequest, useRequestRetry, useFieldArray, useForm, useFormSubmit, useFormWizard, useGeoLocation, useHoverDirty, useHistory, useHistoryState, useIdle, useImageLoader, useIndexedDB, useInfiniteScroll, useInterval, useIsFirstRender, useIsMounted, useKeyPress, useList, useLocalStorage, useLockBodyScroll, useLongPress, useMotion, useMediaQuery, useMousePosition, useOnlineStatus, usePersistedForm, usePersistedState, usePreferredLanguage, usePrevious, usePermission, usePageLeave, useReducedMotion, useRecentSearch, useResponsive, useResizeObserver, useScript, useScrollDirection, useScrollLock, useScrollPosition, useSessionStorage, useSmartForm, useSound, useSpeech, useSpeak, useStepper, useThrottle, useTimeout, useTimer, useToggle, useTouch, useUnmountedRef, useUndo, useUpdateEffect, useVisibilityChange, useWebSocket, useWindowSize, AlertMessage, CardSkeleton, ContextMenuWrapper, DetailsCard, DownloadFile, DynamicLoader, FieldSkeleton, FilePreview, FileSkeleton, LineChartSkeleton, LabeledValue, PieChartSkeleton, TableSkeleton, UploadFile, createOptimizedContext, };
package/dist/index.js CHANGED
@@ -2,7 +2,8 @@ import 'nprogress/nprogress.css';
2
2
  import { ReactHooksWrapper, getHook, setHook } from "./chunk1415/chunk143";
3
3
  import { DynamicLoader, AlertMessage, FilePreview, LabeledValue, DetailsCard, UploadFile, DownloadFile, ContextMenuWrapper } from './chunk1516/chunk613852';
4
4
  import { FileSkeleton, TableSkeleton, PieChartSkeleton, CardSkeleton, LineChartSkeleton, FieldSkeleton } from './chunk1617/chunk613555';
5
- import { useHistoryState, useIdle, useIsFirstRender, useList, useLockBodyScroll, useLongPress, useRecentSearch } from './chunk1516/chunk726433';
6
- import { useAxios, useAdvReducer, useFetch, useLocalStorage, useToggle, useDebounce, useThrottle, usePrevious, useMediaQuery, useClipboard, useInterval, useWindowSize, useKeyPress, useOnlineStatus, useScrollPosition, useTimeout, useDarkMode, useForm, useArray, useStepper, useUpdateEffect, useTouch, useSound, useSessionStorage, usePreferredLanguage, useHistory, useEventListener, useBattery, useDebouncedCallback, useScrollLock, useResizeObserver, useMousePosition, useScrollDirection, useImageLoader, usePersistedState, useReducedMotion, useCookie, useFetchRetry, useDelay, useVisibilityChange, useDebouncedValue, useAsync, useScript, useIndexedDB, useGeoLocation, useTimer, useIsMounted, useCss, useSpeak, useCountUp, useCountDown, usePersistedForm, useCrossFieldValidation, useFieldArray, useFormSubmit, useSmartForm, useUndo, useFormWizard, useWebSocket, useDragReorder, useInfiniteScroll, useEventListeners, createOptimizedContext } from './chunk1516/chunk940514';
5
+ import { useHistoryState, useIdle, useIsFirstRender, useList, useLockBodyScroll, useLongPress, useRecentSearch, useSpeech, usePermission, usePageLeave, useMotion, useHoverDirty, useBeforeUnload, useClickAway, useResponsive, useUnmountedRef } from './chunk1516/chunk726433';
6
+ import { useGenericReducer, useArray, useAsync, useAxios, useClipboard, useCookie, useDarkMode, useDebounce, useDebouncedCallback, useDebouncedValue, useDelay, useRequest, useRequestRetry, useForm, useImageLoader, useIndexedDB, useInterval, useKeyPress, useLocalStorage, useMediaQuery, useMousePosition, useOnlineStatus, usePersistedState, usePrevious, useReducedMotion, useResizeObserver, useScrollDirection, useScrollLock, useScrollPosition, useScript, useStepper, useThrottle, useTimeout, useToggle, useVisibilityChange, useWindowSize, } from './chunk1516/chunk940514';
7
+ import { createOptimizedContext, useBattery, useCountDown, useCountUp, useCrossFieldValidation, useCss, useDragReorder, useEventListener, useEventListeners, useFieldArray, useFormSubmit, useFormWizard, useGeoLocation, useHistory, useInfiniteScroll, useIsMounted, usePersistedForm, usePreferredLanguage, useSessionStorage, useSmartForm, useSound, useSpeak, useTimer, useTouch, useUndo, useUpdateEffect, useWebSocket } from './chunk1516/chunk0021';
7
8
  export default ReactHooksWrapper;
8
- export { getHook, setHook, useAxios, useAdvReducer, useFetch, useLocalStorage, useToggle, useDebounce, useThrottle, usePrevious, useMediaQuery, useClipboard, useInterval, useWindowSize, useKeyPress, useOnlineStatus, useScrollPosition, useTimeout, useDarkMode, useForm, useArray, useStepper, useUpdateEffect, useTouch, useSound, useSessionStorage, usePreferredLanguage, useHistory, useEventListener, useBattery, useDebouncedCallback, useScrollLock, useResizeObserver, useMousePosition, useScrollDirection, useImageLoader, usePersistedState, useReducedMotion, useCookie, useFetchRetry, useDelay, useVisibilityChange, useDebouncedValue, useAsync, useScript, useIndexedDB, useGeoLocation, useTimer, useIsMounted, useCss, useSpeak, useCountUp, useCountDown, usePersistedForm, useCrossFieldValidation, useFieldArray, useFormSubmit, useSmartForm, useUndo, useFormWizard, useWebSocket, useDragReorder, useInfiniteScroll, useEventListeners, useHistoryState, useIdle, useIsFirstRender, useList, useLockBodyScroll, useLongPress, useRecentSearch, createOptimizedContext, DynamicLoader, AlertMessage, FilePreview, FileSkeleton, TableSkeleton, PieChartSkeleton, CardSkeleton, LineChartSkeleton, FieldSkeleton, LabeledValue, DetailsCard, UploadFile, DownloadFile, ContextMenuWrapper };
9
+ export { getHook, setHook, useGenericReducer, useArray, useAsync, useAxios, useBattery, useBeforeUnload, useClipboard, useCookie, useClickAway, useCountDown, useCountUp, useCrossFieldValidation, useCss, useDarkMode, useDebounce, useDebouncedCallback, useDebouncedValue, useDelay, useDragReorder, useEventListener, useEventListeners, useRequest, useRequestRetry, useFieldArray, useForm, useFormSubmit, useFormWizard, useGeoLocation, useHoverDirty, useHistory, useHistoryState, useIdle, useImageLoader, useIndexedDB, useInfiniteScroll, useInterval, useIsFirstRender, useIsMounted, useKeyPress, useList, useLocalStorage, useLockBodyScroll, useLongPress, useMotion, useMediaQuery, useMousePosition, useOnlineStatus, usePersistedForm, usePersistedState, usePreferredLanguage, usePrevious, usePermission, usePageLeave, useReducedMotion, useRecentSearch, useResponsive, useResizeObserver, useScript, useScrollDirection, useScrollLock, useScrollPosition, useSessionStorage, useSmartForm, useSound, useSpeech, useSpeak, useStepper, useThrottle, useTimeout, useTimer, useToggle, useTouch, useUnmountedRef, useUndo, useUpdateEffect, useVisibilityChange, useWebSocket, useWindowSize, AlertMessage, CardSkeleton, ContextMenuWrapper, DetailsCard, DownloadFile, DynamicLoader, FieldSkeleton, FilePreview, FileSkeleton, LineChartSkeleton, LabeledValue, PieChartSkeleton, TableSkeleton, UploadFile, createOptimizedContext, };
package/dist/type.d.ts ADDED
@@ -0,0 +1,235 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ import { ReactNode } from 'react';
3
+ export interface DrawerContextValue {
4
+ drawerOpen: boolean;
5
+ openDrawer: () => void;
6
+ closeDrawer: () => void;
7
+ openDrawerInButton: () => void;
8
+ closeDrawerInButton: () => void;
9
+ currentMainMenu?: string;
10
+ setCurrentMainMenu?: (value: string) => void;
11
+ }
12
+ export interface DrawerProviderProps {
13
+ children: ReactNode;
14
+ }
15
+ export interface FileComponentProps {
16
+ primaryKey: string | number;
17
+ filename: string;
18
+ size: string | number;
19
+ onDownload?: any;
20
+ width?: number;
21
+ borderColor?: string;
22
+ fileColor?: 'inherit' | 'primary' | 'secondary' | 'error' | 'disabled' | 'action';
23
+ isDownloading: boolean;
24
+ }
25
+ export interface AlertPropsType {
26
+ type: string;
27
+ msg: string;
28
+ duration?: number;
29
+ }
30
+ export interface DetailsCardProps {
31
+ isLoading?: boolean;
32
+ title: string;
33
+ details: any[];
34
+ spacing?: number;
35
+ boxShadow?: string;
36
+ background?: string;
37
+ loaderType?: 'skeleton' | 'circular';
38
+ displayType?: 'flex' | 'block';
39
+ }
40
+ export interface UploadButtonProps {
41
+ isUpload?: boolean;
42
+ color?: 'inherit' | 'primary' | 'secondary' | 'success' | 'error' | 'info' | 'warning';
43
+ state?: {
44
+ isUploaded?: boolean;
45
+ isUploadError?: boolean;
46
+ isLoadingUpload?: boolean;
47
+ };
48
+ onFileSelect: (file: File) => void;
49
+ }
50
+ export interface DownloadButtonState {
51
+ isDownloaded?: boolean;
52
+ isDownloadError?: boolean;
53
+ isLoadingDownload?: boolean;
54
+ }
55
+ export interface DownloadFileProps {
56
+ isDownload?: boolean;
57
+ color?: 'inherit' | 'primary' | 'secondary' | 'success' | 'error' | 'info' | 'warning';
58
+ state?: DownloadButtonState;
59
+ onDownload: () => void;
60
+ }
61
+ type MenuPosition = 'auto' | 'fixed';
62
+ type ThemeMode = 'light' | 'dark';
63
+ export interface ContextMenuProps {
64
+ options: any;
65
+ children: React.ReactNode;
66
+ disabled?: boolean;
67
+ className?: string;
68
+ menuClassName?: string;
69
+ position?: MenuPosition;
70
+ onShow?: () => void;
71
+ onHide?: () => void;
72
+ currentInstance?: any;
73
+ theme?: ThemeMode;
74
+ }
75
+ export interface UndoableHistoryState<T> {
76
+ past: T[];
77
+ present: T;
78
+ future: T[];
79
+ }
80
+ export type HistoryAction<T> = {
81
+ type: 'UNDO';
82
+ } | {
83
+ type: 'REDO';
84
+ } | {
85
+ type: 'CLEAR';
86
+ } | {
87
+ type: 'SET';
88
+ newPresent: T;
89
+ } | {
90
+ type: 'RESET';
91
+ newPresent: T;
92
+ };
93
+ export type UseRecentSearchOptions = {
94
+ key?: string;
95
+ limit?: number;
96
+ uniqueKey?: string;
97
+ excludeEmpty?: boolean;
98
+ };
99
+ export interface UseAxiosResponse<T> {
100
+ data: T | null;
101
+ loading: boolean;
102
+ error: string | null;
103
+ makeRequest: (url: string, method?: string, requestData?: any) => void;
104
+ cancelRequest: () => void;
105
+ }
106
+ export interface UseAxiosConfig extends AxiosRequestConfig {
107
+ baseURL?: string;
108
+ headers?: {
109
+ [key: string]: string;
110
+ };
111
+ }
112
+ export interface FetchState<T> {
113
+ data: T | null;
114
+ loading: boolean;
115
+ error: string | null;
116
+ }
117
+ export interface WindowSize {
118
+ width: number;
119
+ height: number;
120
+ }
121
+ export interface ScrollPosition {
122
+ x: number;
123
+ y: number;
124
+ }
125
+ export interface MousePosition {
126
+ x: number;
127
+ y: number;
128
+ }
129
+ export type IdleStatus = 'idle' | 'pending' | 'success' | 'error';
130
+ export type AsyncFunction<T> = () => Promise<T>;
131
+ export interface UseAsyncReturn<T> {
132
+ execute: () => void;
133
+ status: IdleStatus;
134
+ value: T | null;
135
+ error: Error | null;
136
+ }
137
+ export interface BatteryManager {
138
+ level: number;
139
+ charging: boolean;
140
+ chargingTime: number;
141
+ dischargingTime: number;
142
+ addEventListener(type: string, listener: EventListener | EventListenerObject | null, options?: boolean | AddEventListenerOptions): void;
143
+ removeEventListener(type: string, listener: EventListener | EventListenerObject | null, options?: boolean | EventListenerOptions): void;
144
+ }
145
+ export interface BatteryState {
146
+ supported: boolean;
147
+ loading: boolean;
148
+ level: number | null;
149
+ charging: boolean | null;
150
+ chargingTime: number | null;
151
+ dischargingTime: number | null;
152
+ }
153
+ export interface NavigatorWithBattery extends Navigator {
154
+ getBattery: () => Promise<BatteryManager>;
155
+ }
156
+ export interface HistoryState {
157
+ [key: string]: any;
158
+ }
159
+ export interface UseHistory {
160
+ history: History;
161
+ state: HistoryState | null;
162
+ push: (path: string, state?: HistoryState) => void;
163
+ replace: (path: string, state?: HistoryState) => void;
164
+ goBack: () => void;
165
+ goForward: () => void;
166
+ }
167
+ export interface UseSessionStorage<T> {
168
+ (key: string, initialValue: T): [T, (value: T) => void];
169
+ }
170
+ export interface UseSound {
171
+ play: () => void;
172
+ pause: () => void;
173
+ stop: () => void;
174
+ setVolume: (volume: number) => void;
175
+ isPlaying: boolean;
176
+ error: Error | null;
177
+ }
178
+ export interface TouchPosition {
179
+ x: number | null;
180
+ y: number | null;
181
+ }
182
+ export interface UseTouch {
183
+ (elementRef: React.RefObject<HTMLElement>): {
184
+ touchStart: TouchPosition;
185
+ touchMove: TouchPosition;
186
+ touchEnd: TouchPosition;
187
+ };
188
+ }
189
+ export interface MotionSensorState {
190
+ acceleration: {
191
+ x: number | null;
192
+ y: number | null;
193
+ z: number | null;
194
+ };
195
+ accelerationIncludingGravity: {
196
+ x: number | null;
197
+ y: number | null;
198
+ z: number | null;
199
+ };
200
+ rotationRate: {
201
+ alpha: number | null;
202
+ beta: number | null;
203
+ gamma: number | null;
204
+ };
205
+ interval: number | null;
206
+ }
207
+ export type SpeechOptions = {
208
+ lang: string;
209
+ voice?: SpeechSynthesisVoice;
210
+ rate: number;
211
+ pitch: number;
212
+ volume: number;
213
+ };
214
+ export type IState = PermissionState | '';
215
+ export type IPermissionDescriptor = PermissionDescriptor | (PermissionDescriptor & {
216
+ deviceId?: string;
217
+ }) | (PermissionDescriptor & {
218
+ sysex?: boolean;
219
+ }) | (PermissionDescriptor & {
220
+ userVisibleOnly?: boolean;
221
+ });
222
+ export type ISpeechOptions = Partial<SpeechOptions>;
223
+ export type VoiceInfo = Pick<SpeechSynthesisVoice, 'lang' | 'name'>;
224
+ export type ISpeechState = SpeechOptions & {
225
+ isPlaying: boolean;
226
+ status: string;
227
+ voiceInfo: VoiceInfo;
228
+ };
229
+ export declare enum VoiceStatus {
230
+ init = 0,
231
+ play = 1,
232
+ pause = 2,
233
+ end = 3
234
+ }
235
+ export {};
package/dist/type.js ADDED
@@ -0,0 +1,7 @@
1
+ export var VoiceStatus;
2
+ (function (VoiceStatus) {
3
+ VoiceStatus[VoiceStatus["init"] = 0] = "init";
4
+ VoiceStatus[VoiceStatus["play"] = 1] = "play";
5
+ VoiceStatus[VoiceStatus["pause"] = 2] = "pause";
6
+ VoiceStatus[VoiceStatus["end"] = 3] = "end";
7
+ })(VoiceStatus || (VoiceStatus = {}));
package/dist/utils.d.ts CHANGED
@@ -1,3 +1,21 @@
1
1
  export declare const promise: (time: number) => Promise<unknown>;
2
2
  export declare function throttle<T extends (...args: any[]) => void>(func: T, limit: number): T;
3
3
  export declare const debounceUtils: <T extends (...args: any[]) => void>(func: T, delay: number) => (...args: Parameters<T>) => void;
4
+ export declare const isBrowser: boolean;
5
+ export declare const isDev: boolean;
6
+ export declare const isObject: (value: unknown) => value is Record<any, any>;
7
+ export declare const isFunction: (value: unknown) => value is (...args: any) => any;
8
+ export declare const isString: (value: unknown) => value is string;
9
+ export declare const isBoolean: (value: unknown) => value is boolean;
10
+ export declare const isNumber: (value: unknown) => value is number;
11
+ export declare const isUndef: (value: unknown) => value is undefined;
12
+ export declare const isAppleDevice: boolean;
13
+ export declare const isNavigator: boolean;
14
+ export declare const getScrollTop: (el: Document | Element) => number;
15
+ export declare const getScrollHeight: (el: Document | Element) => number;
16
+ export declare const getClientHeight: (el: Document | Element) => number;
17
+ export declare function sleep(time: number): Promise<void>;
18
+ export declare function request(req: any): Promise<unknown>;
19
+ export declare const noop: () => void;
20
+ export declare function on<T extends Window | Document | HTMLElement | EventTarget>(obj: T | null, ...args: Parameters<T['addEventListener']> | [string, Function | null, ...any]): void;
21
+ export declare function off<T extends Window | Document | HTMLElement | EventTarget>(obj: T | null, ...args: Parameters<T['removeEventListener']> | [string, Function | null, ...any]): void;
package/dist/utils.js CHANGED
@@ -34,3 +34,71 @@ export var debounceUtils = function (func, delay) {
34
34
  timeoutId = setTimeout(function () { return func.apply(void 0, args); }, delay);
35
35
  };
36
36
  };
37
+ export var isBrowser = !!(typeof window !== 'undefined' &&
38
+ window.document &&
39
+ window.document.createElement);
40
+ export var isDev = process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test';
41
+ export var isObject = function (value) {
42
+ return value !== null && typeof value === 'object';
43
+ };
44
+ export var isFunction = function (value) {
45
+ return typeof value === 'function';
46
+ };
47
+ export var isString = function (value) { return typeof value === 'string'; };
48
+ export var isBoolean = function (value) { return typeof value === 'boolean'; };
49
+ export var isNumber = function (value) { return typeof value === 'number'; };
50
+ export var isUndef = function (value) { return typeof value === 'undefined'; };
51
+ export var isAppleDevice = /(mac|iphone|ipod|ipad)/i.test(typeof navigator !== 'undefined' ? navigator === null || navigator === void 0 ? void 0 : navigator.platform : '');
52
+ export var isNavigator = typeof navigator !== 'undefined';
53
+ export var getScrollTop = function (el) {
54
+ if (el === document || el === document.documentElement || el === document.body) {
55
+ return Math.max(window.pageYOffset, document.documentElement.scrollTop, document.body.scrollTop);
56
+ }
57
+ return el.scrollTop;
58
+ };
59
+ export var getScrollHeight = function (el) {
60
+ return (el.scrollHeight ||
61
+ Math.max(document.documentElement.scrollHeight, document.body.scrollHeight));
62
+ };
63
+ export var getClientHeight = function (el) {
64
+ return (el.clientHeight ||
65
+ Math.max(document.documentElement.clientHeight, document.body.clientHeight));
66
+ };
67
+ export function sleep(time) {
68
+ return new Promise(function (resolve) {
69
+ setTimeout(function () {
70
+ resolve();
71
+ }, time);
72
+ });
73
+ }
74
+ export function request(req) {
75
+ return new Promise(function (resolve, reject) {
76
+ return setTimeout(function () {
77
+ if (req === 0) {
78
+ reject(new Error('fail'));
79
+ }
80
+ else {
81
+ resolve('success');
82
+ }
83
+ }, 1000);
84
+ });
85
+ }
86
+ export var noop = function () { };
87
+ export function on(obj) {
88
+ var args = [];
89
+ for (var _i = 1; _i < arguments.length; _i++) {
90
+ args[_i - 1] = arguments[_i];
91
+ }
92
+ if (obj && obj.addEventListener) {
93
+ obj.addEventListener.apply(obj, args);
94
+ }
95
+ }
96
+ export function off(obj) {
97
+ var args = [];
98
+ for (var _i = 1; _i < arguments.length; _i++) {
99
+ args[_i - 1] = arguments[_i];
100
+ }
101
+ if (obj && obj.removeEventListener) {
102
+ obj.removeEventListener.apply(obj, args);
103
+ }
104
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-hook-toolkit",
3
- "version": "1.0.23",
3
+ "version": "1.1.0",
4
4
  "description": "Ultimate package for React developers, offering a powerful collection of hooks and components to enhance their development experience.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -12,10 +12,23 @@
12
12
  "build": "tsc"
13
13
  },
14
14
  "keywords": [
15
+ "custom hooks",
16
+ "react utilities",
15
17
  "react hooks",
16
- "react-toolkit",
17
- "custome-hooks",
18
- "hook"
18
+ "react lifecycle",
19
+ "browser events",
20
+ "dom interactions",
21
+ "reusable logic",
22
+ "state management",
23
+ "responsive design",
24
+ "accessibility features",
25
+ "event handling",
26
+ "window events",
27
+ "component cleanup",
28
+ "UI optimization",
29
+ "effect management",
30
+ "cross-browser support",
31
+ "react development"
19
32
  ],
20
33
  "license": "MIT",
21
34
  "devDependencies": {