1 | import {MutableRefObject, EffectCallback, DependencyList, Dispatch, SetStateAction} from 'react';
|
2 |
|
3 | type ThrottleOrDebounceOpts = {
|
4 | leading: boolean,
|
5 | trailing: boolean,
|
6 | }
|
7 |
|
8 | type TimeoutOrIntervalOpts = {
|
9 | cancelOnUnmount: boolean,
|
10 | }
|
11 |
|
12 | type EventListenerOptions = {
|
13 | capture: boolean,
|
14 | once: boolean,
|
15 | passive: boolean,
|
16 | }
|
17 |
|
18 | type HandlerSetter = (...parameters: Array<any>) => unknown;
|
19 |
|
20 | type Cancelable = {
|
21 | cancel(): void;
|
22 | flush(): void;
|
23 | }
|
24 |
|
25 |
|
26 |
|
27 |
|
28 | export declare const useDebouncedFn: (fn: Function, wait?: number, options?: ThrottleOrDebounceOpts, dependencies?: DependencyList) => Cancelable;
|
29 |
|
30 |
|
31 |
|
32 |
|
33 | export declare const useDidMount: (handler: Function) => HandlerSetter;
|
34 |
|
35 |
|
36 |
|
37 |
|
38 | export declare const useGeolocation: (options?: PositionOptions) => [GeolocationState, GeolocationCallbackSetters];
|
39 |
|
40 |
|
41 |
|
42 |
|
43 | type GeolocationCallbackSetters = {
|
44 | isSupported: boolean,
|
45 | onChange: HandlerSetter,
|
46 | onError: HandlerSetter,
|
47 | }
|
48 | export declare const useGeolocationEvents: (options?: PositionOptions) => GeolocationCallbackSetters;
|
49 |
|
50 |
|
51 |
|
52 |
|
53 | type GeolocationState = {
|
54 | isSupported: boolean,
|
55 | isRetrieving: boolean,
|
56 | position: {
|
57 | timestamp: number,
|
58 | coords: {
|
59 | latitude: number,
|
60 | longitude: number,
|
61 | altitude: number,
|
62 | accuracy: number,
|
63 | altitudeAccuracy: number,
|
64 | heading: number,
|
65 | speed: number,
|
66 | },
|
67 | }
|
68 | }
|
69 | export declare const useGeolocationState: (options?: PositionOptions) => GeolocationState;
|
70 |
|
71 |
|
72 |
|
73 |
|
74 | export declare const useGlobalEvent: (eventName: string, options?: EventListenerOptions, handler?: Function) => HandlerSetter;
|
75 |
|
76 |
|
77 |
|
78 |
|
79 | export declare const useInterval: (fn: Function, milliseconds: number, options?: TimeoutOrIntervalOpts) => [boolean, EffectCallback];
|
80 |
|
81 |
|
82 |
|
83 |
|
84 | export declare const useLifecycle: (mount: Function, unmount: Function) => { onDidMount: HandlerSetter, onWillUnmount: HandlerSetter };
|
85 |
|
86 |
|
87 |
|
88 |
|
89 | export declare const useMediaQuery: (mediaQuery: string) => boolean;
|
90 |
|
91 |
|
92 |
|
93 |
|
94 | export declare const useOnlineState: () => boolean;
|
95 |
|
96 |
|
97 |
|
98 |
|
99 | export declare const useViewportSpy: (elementRef: MutableRefObject<HTMLElement>, options?: IntersectionObserverInit) => boolean;
|
100 |
|
101 |
|
102 |
|
103 |
|
104 | export declare const useValidatedState: (validator: Function, initialState?: any) => [
|
105 | any,
|
106 | Dispatch<SetStateAction<any>>,
|
107 | { changed: boolean, valid: boolean }
|
108 | ];
|
109 |
|
110 |
|
111 |
|
112 |
|
113 |
|
114 | type DragOptions = {
|
115 | dragImage?: string,
|
116 | dragImageXOffset?: number,
|
117 | dragImageYOffset?: number,
|
118 | transfer?: object | string | number,
|
119 | transferFormat: 'text' | 'text/plain',
|
120 | };
|
121 |
|
122 | export declare const useDrag: (ref: MutableRefObject<MouseTarget>, options: DragOptions) => boolean;
|
123 |
|
124 |
|
125 |
|
126 |
|
127 | export declare const useDragEvents: (ref: MutableRefObject<MouseTarget>, setDraggable?: boolean) => ({
|
128 | onDrag: HandlerSetter,
|
129 | onDrop: HandlerSetter,
|
130 | onDragEnter: HandlerSetter,
|
131 | onDragEnd: HandlerSetter,
|
132 | onDragExit: HandlerSetter,
|
133 | onDragLeave: HandlerSetter,
|
134 | onDragOver: HandlerSetter,
|
135 | onDragStart: HandlerSetter,
|
136 | });
|
137 |
|
138 |
|
139 |
|
140 |
|
141 | export declare const useMouse: (ref?: MutableRefObject<MouseTarget>) => [MouseState, MouseCallbackSetters];
|
142 |
|
143 |
|
144 |
|
145 |
|
146 | type MouseTarget = HTMLElement | Document | Window;
|
147 |
|
148 | type MouseCallbackSetters = {
|
149 | onMouseDown: HandlerSetter,
|
150 | onMouseEnter: HandlerSetter,
|
151 | onMouseLeave: HandlerSetter,
|
152 | onMouseMove: HandlerSetter,
|
153 | onMouseOut: HandlerSetter,
|
154 | onMouseOver: HandlerSetter,
|
155 | onMouseUp: HandlerSetter,
|
156 | }
|
157 | export declare const useMouseEvents: (ref?: MutableRefObject<MouseTarget>) => MouseCallbackSetters;
|
158 |
|
159 |
|
160 |
|
161 |
|
162 | type MouseState = {
|
163 | clientX: number,
|
164 | clientY: number,
|
165 | screenX: number,
|
166 | screenY: number,
|
167 | }
|
168 | export declare const useMouseState: (ref?: MutableRefObject<MouseTarget>) => MouseState;
|
169 |
|
170 |
|
171 |
|
172 |
|
173 | export declare const usePreviousValue: (value: any) => any;
|
174 |
|
175 |
|
176 |
|
177 |
|
178 | export declare const useThrottledFn: (fn: Function, wait?: number, options?: ThrottleOrDebounceOpts, dependencies?: DependencyList) => Cancelable;
|
179 |
|
180 |
|
181 |
|
182 |
|
183 | export declare const useTimeout: (fn: Function, milliseconds: number, options?: TimeoutOrIntervalOpts) => [boolean, EffectCallback];
|
184 |
|
185 |
|
186 |
|
187 |
|
188 | export declare const useConditionalTimeout: (fn: Function, milliseconds: number, condition: boolean, options?: TimeoutOrIntervalOpts) => [boolean, EffectCallback];
|
189 |
|
190 |
|
191 |
|
192 |
|
193 | export declare const useValueHistory: (value: any) => Array<any>;
|
194 |
|
195 |
|
196 |
|
197 |
|
198 |
|
199 | export declare const useWillUnmount: (handler?: Function) => HandlerSetter;
|
200 |
|
201 |
|
202 |
|
203 |
|
204 | export declare const useWindowResize: (handler: Function) => HandlerSetter;
|
205 |
|
206 |
|
207 |
|
208 |
|
209 | export declare const useWindowScroll: (handler: Function) => HandlerSetter;
|
210 |
|
211 |
|
212 |
|
213 |
|
214 |
|
215 | type UseRequestAnimationFrameOptions = { increment: number, startAt: number, finishAt: number };
|
216 |
|
217 | export declare const useRequestAnimationFrame: (func: Function, options?: UseRequestAnimationFrameOptions) => HandlerSetter;
|
218 |
|
219 |
|
220 |
|
221 |
|
222 | export declare const useLocalStorage: (localStorageKey:any, defaultValue: any) => [any, HandlerSetter];
|
223 |
|
224 |
|
225 |
|
226 |
|
227 | type StorageType = 'local' | 'session';
|
228 | type SetValueFn<T> = ((item: T) => T) | T;
|
229 | interface StorageModifiers<T extends {}> {
|
230 | set: <K extends keyof T = keyof T>(key: K, value: SetValueFn<T[K]>) => void;
|
231 | get: <K extends keyof T = keyof T>(key?: K) => T[K];
|
232 | }
|
233 |
|
234 | type Storage<T> = T & StorageModifiers<T>;
|
235 | export declare const useStorage: <T extends {} = any>(storageType: StorageType) => (initialValue?: T) => Storage<T>
|
236 |
|
237 |
|
238 |
|
239 |
|
240 | export declare const useStorageKey: <T extends {} = any>(storageType: StorageType) => (key: keyof T, initialValue?: T) => [T, Dispatch<SetStateAction<T>>]
|