@reactuses/core 4.0.13 → 5.0.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.cjs +2282 -2444
- package/dist/index.d.cts +2680 -664
- package/dist/index.d.mts +2680 -664
- package/dist/index.d.ts +2680 -664
- package/dist/index.mjs +2279 -2439
- package/package.json +5 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,886 +1,2902 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import react__default, {
|
|
3
|
-
import * as lodash from 'lodash';
|
|
2
|
+
import react__default, { DependencyList, RefObject, MutableRefObject, EffectCallback, useEffect, Dispatch, SetStateAction, useLayoutEffect } from 'react';
|
|
4
3
|
import Cookies from 'js-cookie';
|
|
4
|
+
import { DebounceSettings, ThrottleSettings, DebouncedFunc as DebouncedFunc$1 } from 'lodash-es';
|
|
5
|
+
import * as lodash from 'lodash';
|
|
6
|
+
import { DebounceSettings as DebounceSettings$1, DebouncedFunc, ThrottleSettings as ThrottleSettings$1 } from 'lodash';
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
/**
|
|
9
|
+
* @title useActiveElement
|
|
10
|
+
* @returns_en Returns an instance of the type parameter `T` or `null`.
|
|
11
|
+
* @returns 返回类型参数 `T` 或 `null` 的实例
|
|
12
|
+
*/
|
|
13
|
+
type UseActiveElement = <T extends Element>() => T | null;
|
|
7
14
|
|
|
8
|
-
declare
|
|
15
|
+
declare const useActiveElement: UseActiveElement;
|
|
9
16
|
|
|
10
|
-
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* @title useAsyncEffect
|
|
20
|
+
*/
|
|
21
|
+
type UseAsyncEffect = <T>(
|
|
22
|
+
/**
|
|
23
|
+
* @zh 支持promise的副作用函数
|
|
24
|
+
* @en effect that support promise
|
|
25
|
+
*/
|
|
26
|
+
effect: () => Promise<T> | T,
|
|
27
|
+
/**
|
|
28
|
+
* @zh 清理函数
|
|
29
|
+
* @en cleanup function
|
|
30
|
+
* @defaultValue () => {}
|
|
31
|
+
*/
|
|
32
|
+
cleanup?: typeof effect,
|
|
33
|
+
/**
|
|
34
|
+
* @zh 依赖列表
|
|
35
|
+
* @en dependency list
|
|
36
|
+
*/
|
|
37
|
+
deps?: DependencyList) => void;
|
|
11
38
|
|
|
12
|
-
declare const
|
|
39
|
+
declare const useAsyncEffect: UseAsyncEffect;
|
|
13
40
|
|
|
14
|
-
|
|
41
|
+
/**
|
|
42
|
+
* @title useClickOutside
|
|
43
|
+
*/
|
|
44
|
+
type UseClickOutside = (
|
|
45
|
+
/**
|
|
46
|
+
* @zh dom对象
|
|
47
|
+
* @en dom element
|
|
48
|
+
*/
|
|
49
|
+
target: RefObject<Element>,
|
|
50
|
+
/**
|
|
51
|
+
* @zh 监听函数
|
|
52
|
+
* @en listener fucntion
|
|
53
|
+
*/
|
|
54
|
+
handler: (evt: EventType) => void) => void;
|
|
55
|
+
type EventType = MouseEvent | TouchEvent;
|
|
15
56
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
57
|
+
declare const useClickOutside: UseClickOutside;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @title useCookie
|
|
61
|
+
* @returns 包含以下元素的元组:
|
|
62
|
+
* - cookie 的当前值。
|
|
63
|
+
* - 更新 cookie 值的函数。
|
|
64
|
+
* - 刷新 cookie 值的函数,以防其他事件更改它。
|
|
65
|
+
* @returns_en A tuple with the following elements:
|
|
66
|
+
* - The current value of the cookie.
|
|
67
|
+
* - A function to update the value of the cookie.
|
|
68
|
+
* - A function to refresh the value of the cookie, incase other events change it.
|
|
69
|
+
*/
|
|
70
|
+
type UseCookie = (
|
|
71
|
+
/**
|
|
72
|
+
* @zh 键值
|
|
73
|
+
* @en key
|
|
74
|
+
*/
|
|
75
|
+
key: string,
|
|
76
|
+
/**
|
|
77
|
+
* @zh 透传给 `js-cookie` 的参数
|
|
78
|
+
* @en option pass to `js-cookie`
|
|
79
|
+
*/
|
|
80
|
+
options?: Cookies.CookieAttributes,
|
|
81
|
+
/**
|
|
82
|
+
* @zh 默认值,ssr必须传递
|
|
83
|
+
* @en defaultValue, must be required in ssr
|
|
84
|
+
*/
|
|
85
|
+
defaultValue?: string) => readonly [
|
|
86
|
+
UseCookieState,
|
|
87
|
+
(newValue: UseCookieState | ((prevState: UseCookieState) => UseCookieState)) => void,
|
|
88
|
+
() => void
|
|
89
|
+
];
|
|
90
|
+
/**
|
|
91
|
+
* @title useCookieState
|
|
92
|
+
*/
|
|
93
|
+
type UseCookieState = string | undefined;
|
|
94
|
+
|
|
95
|
+
declare const useCookie: UseCookie;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @title useCountdown
|
|
99
|
+
* @returns_en A tuple with the following elements:
|
|
100
|
+
* - hour
|
|
101
|
+
* - minute.
|
|
102
|
+
* - second.
|
|
103
|
+
* @returns 包含以下元素的元组:
|
|
104
|
+
* - 小时。
|
|
105
|
+
* - 分钟。
|
|
106
|
+
* - 秒数。
|
|
107
|
+
*/
|
|
108
|
+
type UseCountDown = (
|
|
109
|
+
/**
|
|
110
|
+
* @zh 时间差
|
|
111
|
+
* @en time differ
|
|
112
|
+
*/
|
|
113
|
+
time: number,
|
|
114
|
+
/**
|
|
115
|
+
* @zh 时间格式化函数
|
|
116
|
+
* @en time format function
|
|
117
|
+
* @defaultValue HH MM SS
|
|
118
|
+
*/
|
|
119
|
+
format?: (num: number) => [string, string, string],
|
|
120
|
+
/**
|
|
121
|
+
* @zh 倒计时结束的回调函数
|
|
122
|
+
* @en callback function for end of countdown
|
|
123
|
+
*/
|
|
124
|
+
callback?: () => void) => readonly [string, string, string];
|
|
125
|
+
|
|
126
|
+
declare const useCountDown: UseCountDown;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @title useCounter
|
|
130
|
+
* @returns_en A tuple with the following elements:
|
|
131
|
+
* - The current value of the counter.
|
|
132
|
+
* - A function to set the state of the counter. It can accept a number or a function that returns a number.
|
|
133
|
+
* - A function to increment the counter. It optionally accepts a number to increment the counter by, defaulting to 1.
|
|
134
|
+
* - A function to decrement the counter. It optionally accepts a number to decrement the counter by, defaulting to 1.
|
|
135
|
+
* - A function to reset the counter to its initial value.
|
|
136
|
+
* @returns 包含以下元素的元组:
|
|
137
|
+
* - 计数器的当前值。
|
|
138
|
+
* - 设置计数器状态的函数。 它可以接受数字或返回数字的函数。
|
|
139
|
+
* - 递增计数器的函数。 它可以选择接受一个数字来增加计数器,默认为 1。
|
|
140
|
+
* - 递减计数器的函数。 它可以选择接受一个数字来减少计数器,默认为 1。
|
|
141
|
+
* - 将计数器重置为其初始值的函数。
|
|
142
|
+
*/
|
|
143
|
+
type UseCounter = (
|
|
144
|
+
/**
|
|
145
|
+
* @zh 初始值,可以为数字或者一个初始化的函数
|
|
146
|
+
* @en The initial value of the counter. It can be a number or a function that returns a number. If not provided, the counter will start from 0.
|
|
147
|
+
* @defaultValue 0
|
|
148
|
+
*/
|
|
149
|
+
initialValue?: number | (() => number),
|
|
150
|
+
/**
|
|
151
|
+
* @zh 最大值。不提供则无上限
|
|
152
|
+
* @en The maximum value that the counter can reach. If not provided or null, there is no upper limit.
|
|
153
|
+
*/
|
|
154
|
+
max?: number | null,
|
|
155
|
+
/**
|
|
156
|
+
* @zh 最小值。不提供则无下限
|
|
157
|
+
* @en The minimum value that the counter can reach. If not provided or null, there is no lower limit.
|
|
158
|
+
*/
|
|
159
|
+
min?: number | null) => readonly [
|
|
160
|
+
number,
|
|
161
|
+
(newState: number | ((prev: number) => number) | (() => number)) => void,
|
|
162
|
+
(delta?: number) => void,
|
|
163
|
+
(delta?: number) => void,
|
|
164
|
+
() => void
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
declare const useCounter: UseCounter;
|
|
168
|
+
|
|
169
|
+
type TargetValue<T> = T | undefined | null;
|
|
170
|
+
type TargetType = HTMLElement | Element | Window | Document | EventTarget;
|
|
171
|
+
type BasicTarget<T extends TargetType = Element> = (() => TargetValue<T>) | TargetValue<T> | MutableRefObject<TargetValue<T>>;
|
|
172
|
+
|
|
173
|
+
declare const defaultOptions: UseCssVarOptions;
|
|
174
|
+
/**
|
|
175
|
+
* @title useCssVar
|
|
176
|
+
* @returns_en A tuple with the following elements:
|
|
177
|
+
* - The current value of the css var.
|
|
178
|
+
* - A function to update the value of the css var.
|
|
179
|
+
* @returns 包含以下元素的元组:
|
|
180
|
+
* - css 变量值
|
|
181
|
+
* - 更新 css 变量值的函数
|
|
182
|
+
*/
|
|
183
|
+
type UseCssVar = <T extends HTMLElement = HTMLElement>(
|
|
184
|
+
/**
|
|
185
|
+
* @zh 属性值,比如 --color
|
|
186
|
+
* @en prop, eg: --color
|
|
187
|
+
*/
|
|
188
|
+
prop: string,
|
|
189
|
+
/**
|
|
190
|
+
* @zh dom元素
|
|
191
|
+
* @en dom element
|
|
192
|
+
*/
|
|
193
|
+
target: BasicTarget<T>,
|
|
194
|
+
/**
|
|
195
|
+
* @zh 默认值
|
|
196
|
+
* @en default value
|
|
197
|
+
*/
|
|
198
|
+
defaultValue?: string,
|
|
199
|
+
/**
|
|
200
|
+
* @zh 可选项
|
|
201
|
+
* @en options
|
|
202
|
+
*/
|
|
203
|
+
options?: UseCssVarOptions) => readonly [string, (v: string) => void];
|
|
204
|
+
/**
|
|
205
|
+
* @title UseCssVarOptions
|
|
206
|
+
*/
|
|
207
|
+
interface UseCssVarOptions {
|
|
31
208
|
/**
|
|
32
|
-
*
|
|
209
|
+
* @en Use MutationObserver to monitor variable changes
|
|
210
|
+
* @zh 使用 MutationObserver 来监听变量变更
|
|
211
|
+
* @defaultValue false
|
|
33
212
|
*/
|
|
34
|
-
|
|
213
|
+
observe?: boolean;
|
|
35
214
|
}
|
|
36
215
|
|
|
37
|
-
declare
|
|
38
|
-
declare function useLocalStorage(key: string, defaults: number, options?: UseStorageOptions<number>): readonly [number | null, Dispatch<SetStateAction<number | null>>];
|
|
39
|
-
declare function useLocalStorage(key: string, defaults: boolean, options?: UseStorageOptions<boolean>): readonly [boolean | null, Dispatch<SetStateAction<boolean | null>>];
|
|
40
|
-
declare function useLocalStorage<T>(key: string, defaults: T, options?: UseStorageOptions<T>): readonly [T | null, Dispatch<SetStateAction<T | null>>];
|
|
41
|
-
declare function useLocalStorage<T = unknown>(key: string, defaults: null, options?: UseStorageOptions<T>): readonly [T | null, Dispatch<SetStateAction<T | null>>];
|
|
216
|
+
declare const useCssVar: UseCssVar;
|
|
42
217
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
218
|
+
type DepsEqualFnType<TDeps extends DependencyList> = (prevDeps: TDeps, nextDeps: TDeps) => boolean;
|
|
219
|
+
/**
|
|
220
|
+
* @title useCustomCompareEffect
|
|
221
|
+
*/
|
|
222
|
+
type UseCustomCompareEffect = <TDeps extends DependencyList>(
|
|
223
|
+
/**
|
|
224
|
+
* @zh 副作用函数
|
|
225
|
+
* @en effect callback
|
|
226
|
+
*/
|
|
227
|
+
effect: EffectCallback,
|
|
228
|
+
/**
|
|
229
|
+
* @zh 依赖列表
|
|
230
|
+
* @en deps
|
|
231
|
+
*/
|
|
232
|
+
deps: TDeps,
|
|
233
|
+
/**
|
|
234
|
+
* @zh 依赖比较函数
|
|
235
|
+
* @en deps compare function
|
|
236
|
+
*/
|
|
237
|
+
depsEqual: DepsEqualFnType<TDeps>) => void;
|
|
48
238
|
|
|
49
|
-
|
|
50
|
-
type Stoppable = [boolean, Fn, Fn];
|
|
51
|
-
type PointerType = "mouse" | "touch" | "pen";
|
|
52
|
-
interface Position {
|
|
53
|
-
x: number;
|
|
54
|
-
y: number;
|
|
55
|
-
}
|
|
239
|
+
declare const useCustomCompareEffect: UseCustomCompareEffect;
|
|
56
240
|
|
|
57
241
|
/**
|
|
58
|
-
*
|
|
242
|
+
* @title useCycleList
|
|
243
|
+
* @returns_en A tuple with the following elements:
|
|
244
|
+
* - The current index value of the list.
|
|
245
|
+
* - A function to set index to prev.
|
|
246
|
+
* - A function to set index to next.
|
|
247
|
+
* @returns 包含以下元素的元组:
|
|
248
|
+
* - 数组中当前的索引对象值
|
|
249
|
+
* - 设置索引为前一个的函数
|
|
250
|
+
* - 设置索引为后一个的函数
|
|
59
251
|
*/
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
252
|
+
type UseCycleList = <T>(
|
|
253
|
+
/**
|
|
254
|
+
* @zh 循环数组
|
|
255
|
+
* @en cycle array
|
|
256
|
+
*/
|
|
257
|
+
list: T[],
|
|
258
|
+
/**
|
|
259
|
+
* @zh 数组索引
|
|
260
|
+
* @en array index
|
|
261
|
+
*/
|
|
262
|
+
i?: number) => readonly [T, (i?: number) => void, (i?: number) => void];
|
|
63
263
|
|
|
64
|
-
declare
|
|
65
|
-
immediate?: boolean;
|
|
66
|
-
}): void;
|
|
264
|
+
declare const useCycleList: UseCycleList;
|
|
67
265
|
|
|
266
|
+
/**
|
|
267
|
+
* @title UseDarkOptions
|
|
268
|
+
*/
|
|
68
269
|
interface UseDarkOptions {
|
|
69
270
|
/**
|
|
70
|
-
* CSS Selector for the target element applying to
|
|
71
|
-
*
|
|
72
|
-
* @
|
|
271
|
+
* @en CSS Selector for the target element applying to
|
|
272
|
+
* @zh 适用于目标元素的 CSS 选择器
|
|
273
|
+
* @defaultValue 'html'
|
|
73
274
|
*/
|
|
74
275
|
selector?: string;
|
|
75
276
|
/**
|
|
76
|
-
* HTML attribute applying the target element
|
|
77
|
-
*
|
|
78
|
-
* @
|
|
277
|
+
* @en HTML attribute applying the target element
|
|
278
|
+
* @zh 应用到目标元素的 html 属性
|
|
279
|
+
* @defaultValue 'class'
|
|
79
280
|
*/
|
|
80
281
|
attribute?: string;
|
|
81
282
|
/**
|
|
82
|
-
*
|
|
83
|
-
* @
|
|
283
|
+
* @en default value
|
|
284
|
+
* @zh 默认值
|
|
285
|
+
* @defaultValue false
|
|
84
286
|
*/
|
|
85
287
|
defaultValue?: boolean;
|
|
86
288
|
/**
|
|
87
|
-
* Key to persist the data into localStorage/sessionStorage.
|
|
88
|
-
*
|
|
89
|
-
* @
|
|
289
|
+
* @en Key to persist the data into localStorage/sessionStorage.
|
|
290
|
+
* @zh 将数据持久保存到 localStorage/sessionStorage 的键值
|
|
291
|
+
* @defaultValue 'reactuses-color-scheme'
|
|
90
292
|
*/
|
|
91
293
|
storageKey?: string;
|
|
92
294
|
/**
|
|
93
|
-
* Storage object, can be localStorage or sessionStorage
|
|
94
|
-
*
|
|
95
|
-
* @
|
|
295
|
+
* @en Storage object, can be localStorage or sessionStorage
|
|
296
|
+
* @zh 存储对象,可以是localStorage或sessionStorage
|
|
297
|
+
* @defaultValue `localStorage`
|
|
96
298
|
*/
|
|
97
299
|
storage?: () => Storage;
|
|
98
300
|
/**
|
|
99
|
-
* name dark
|
|
301
|
+
* @en name dark apply to element
|
|
302
|
+
* @zh 应用到目标元素上黑色类名称
|
|
100
303
|
*/
|
|
101
304
|
classNameDark: string;
|
|
102
305
|
/**
|
|
103
|
-
* name light
|
|
306
|
+
* @en name light apply to element
|
|
307
|
+
* @zh 应用到目标元素上的亮色类名称
|
|
104
308
|
*/
|
|
105
309
|
classNameLight: string;
|
|
106
310
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
interface DebounceSettings {
|
|
124
|
-
leading?: boolean;
|
|
125
|
-
trailing?: boolean;
|
|
126
|
-
maxWait?: number;
|
|
127
|
-
}
|
|
311
|
+
/**
|
|
312
|
+
* @title useDarkMode
|
|
313
|
+
* @returns_en A tuple with the following elements:
|
|
314
|
+
* - The current value of the dark state.
|
|
315
|
+
* - A function to toggle the dark state.
|
|
316
|
+
* - A function to update the dark state.
|
|
317
|
+
* @returns 包含以下元素的元组:
|
|
318
|
+
* - 黑暗状态的当前值。
|
|
319
|
+
* - 切换黑暗状态的功能。
|
|
320
|
+
* - 更新黑暗状态的功能。
|
|
321
|
+
*/
|
|
322
|
+
type UseDarkMode = (options: UseDarkOptions) => readonly [
|
|
323
|
+
boolean | null,
|
|
324
|
+
() => void,
|
|
325
|
+
React.Dispatch<React.SetStateAction<boolean | null>>
|
|
326
|
+
];
|
|
128
327
|
|
|
129
|
-
declare
|
|
328
|
+
declare const useDarkMode: UseDarkMode;
|
|
130
329
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
330
|
+
/**
|
|
331
|
+
* @title useDebounce
|
|
332
|
+
*/
|
|
333
|
+
type UseDebounce = <T>(
|
|
334
|
+
/**
|
|
335
|
+
* @zh 要防抖的值
|
|
336
|
+
* @en the value need to debounce
|
|
337
|
+
*/
|
|
338
|
+
value: T,
|
|
339
|
+
/**
|
|
340
|
+
* @zh 间隔时间
|
|
341
|
+
* @en wait time
|
|
342
|
+
*/
|
|
343
|
+
wait?: number,
|
|
344
|
+
/**
|
|
345
|
+
* @zh 传递给 `lodash.debounce` 的选项
|
|
346
|
+
* @en options passed to `lodash.debounce`
|
|
347
|
+
*/
|
|
348
|
+
options?: DebounceSettings) => T;
|
|
136
349
|
|
|
137
|
-
declare
|
|
350
|
+
declare const useDebounce: UseDebounce;
|
|
138
351
|
|
|
139
|
-
|
|
140
|
-
|
|
352
|
+
/**
|
|
353
|
+
* @title useDebounceFn
|
|
354
|
+
* @returns_en A object with the following elements:
|
|
355
|
+
* - run: exec function.
|
|
356
|
+
* - cancel: cancel exec function.
|
|
357
|
+
* - flush: immediately exec function
|
|
358
|
+
* @returns 具有以下元素的对象:
|
|
359
|
+
* - run:执行函数。
|
|
360
|
+
* - cancel:取消执行函数。
|
|
361
|
+
* - flush: 立即执行函数
|
|
362
|
+
*/
|
|
363
|
+
type UseDebounceFn = <T extends (...args: any) => any>(
|
|
364
|
+
/**
|
|
365
|
+
* @zh 要防抖的函数
|
|
366
|
+
* @en debounce function
|
|
367
|
+
*/
|
|
368
|
+
fn: T,
|
|
369
|
+
/**
|
|
370
|
+
* @zh 间隔时间
|
|
371
|
+
* @en wait time
|
|
372
|
+
*/
|
|
373
|
+
wait?: number,
|
|
374
|
+
/**
|
|
375
|
+
* @zh 传递给 `lodash.debounce` 的属性
|
|
376
|
+
* @en options passed to `lodash.debounce`
|
|
377
|
+
*/
|
|
378
|
+
options?: DebounceSettings$1) => {
|
|
379
|
+
run: DebouncedFunc<(...args_0: Parameters<T>) => ReturnType<T>>;
|
|
141
380
|
cancel: () => void;
|
|
142
|
-
flush:
|
|
381
|
+
flush: any;
|
|
143
382
|
};
|
|
144
383
|
|
|
145
|
-
declare
|
|
146
|
-
|
|
147
|
-
declare function useUpdate(): () => void;
|
|
384
|
+
declare const useDebounceFn: UseDebounceFn;
|
|
148
385
|
|
|
149
|
-
interface UseTimeoutFnOptions {
|
|
150
|
-
/**
|
|
151
|
-
* Start the timer immediate after calling this function
|
|
152
|
-
*
|
|
153
|
-
* @default false
|
|
154
|
-
*/
|
|
155
|
-
immediate?: boolean;
|
|
156
|
-
}
|
|
157
386
|
/**
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
* @param cb
|
|
161
|
-
* @param interval
|
|
162
|
-
* @param options
|
|
387
|
+
* @title useDeepCompareEffect
|
|
163
388
|
*/
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
declare function useEventListener<K extends keyof WindowEventMap>(eventName: K, handler: (event: WindowEventMap[K]) => void, element?: Window, options?: boolean | AddEventListenerOptions): void;
|
|
176
|
-
declare function useEventListener<K extends keyof DocumentEventMap>(eventName: K, handler: (event: DocumentEventMap[K]) => void, element: Document, options?: boolean | AddEventListenerOptions): void;
|
|
177
|
-
declare function useEventListener<K extends keyof HTMLElementEventMap, T extends HTMLElement = HTMLDivElement>(eventName: K, handler: (event: HTMLElementEventMap[K]) => void, element: T, options?: boolean | AddEventListenerOptions): void;
|
|
178
|
-
declare function useEventListener<K extends keyof ElementEventMap>(eventName: K, handler: (event: ElementEventMap[K]) => void, element: Element, options?: boolean | AddEventListenerOptions): void;
|
|
179
|
-
declare function useEventListener<K = Event>(eventName: string, handler: (event: K) => void, element: EventTarget | null | undefined, options?: boolean | AddEventListenerOptions): void;
|
|
180
|
-
declare function useEventListener(eventName: string, handler: (...p: any) => void, element?: Target, options?: boolean | AddEventListenerOptions): void;
|
|
389
|
+
type UseDeepCompareEffect = (
|
|
390
|
+
/**
|
|
391
|
+
* @zh 副作用函数
|
|
392
|
+
* @en effect function
|
|
393
|
+
*/
|
|
394
|
+
effect: EffectCallback,
|
|
395
|
+
/**
|
|
396
|
+
* @zh 依赖列表
|
|
397
|
+
* @en dep list
|
|
398
|
+
*/
|
|
399
|
+
deps: DependencyList) => void;
|
|
181
400
|
|
|
182
|
-
declare
|
|
401
|
+
declare const useDeepCompareEffect: UseDeepCompareEffect;
|
|
183
402
|
|
|
184
|
-
|
|
185
|
-
declare function useRafFn(callback: FrameRequestCallback, initiallyActive?: boolean): RafLoopReturns;
|
|
403
|
+
declare const useDocumentVisibility: (defaultValue?: DocumentVisibilityState) => DocumentVisibilityState;
|
|
186
404
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
196
|
-
interface IEventOnce<T, U = void> {
|
|
197
|
-
(listener: (arg1: T, arg2: U) => any): void;
|
|
198
|
-
}
|
|
199
|
-
interface UseEventEmitterReturn<T, U = void> {
|
|
405
|
+
/**
|
|
406
|
+
* @title useDoubleClick
|
|
407
|
+
*/
|
|
408
|
+
type UseDoubleClick = (props: UseDoubleClickProps) => void;
|
|
409
|
+
/**
|
|
410
|
+
* @title UseDoubleClickProps
|
|
411
|
+
*/
|
|
412
|
+
interface UseDoubleClickProps {
|
|
200
413
|
/**
|
|
201
|
-
*
|
|
202
|
-
* @
|
|
203
|
-
* @returns a stop function to remove the current callback.
|
|
414
|
+
* @zh dom对象
|
|
415
|
+
* @en dom element
|
|
204
416
|
*/
|
|
205
|
-
|
|
417
|
+
target: RefObject<Element>;
|
|
206
418
|
/**
|
|
207
|
-
*
|
|
208
|
-
* @
|
|
419
|
+
* @zh 延迟时间(毫秒)
|
|
420
|
+
* @en latency time (milliseconds)
|
|
209
421
|
*/
|
|
210
|
-
|
|
422
|
+
latency?: number | undefined;
|
|
211
423
|
/**
|
|
212
|
-
*
|
|
424
|
+
* @zh 单击事件处理函数
|
|
425
|
+
* @en single click event handler
|
|
213
426
|
*/
|
|
214
|
-
|
|
427
|
+
onSingleClick?: ((e?: MouseEvent | TouchEvent) => void) | undefined;
|
|
428
|
+
/**
|
|
429
|
+
* @zh 双击事件处理函数
|
|
430
|
+
* @en double click event handler
|
|
431
|
+
*/
|
|
432
|
+
onDoubleClick?: ((e?: MouseEvent | TouchEvent) => void) | undefined;
|
|
215
433
|
}
|
|
216
|
-
declare function useEventEmitter<T, U = void>(): readonly [IEvent<T, U>, (arg1: T, arg2: U) => void, () => void];
|
|
217
|
-
|
|
218
|
-
declare function useFavicon(href: string, baseUrl?: string, rel?: string): void;
|
|
219
434
|
|
|
220
|
-
declare
|
|
435
|
+
declare const useDoubleClick: UseDoubleClick;
|
|
221
436
|
|
|
222
|
-
type
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
437
|
+
type Fn = (this: any, ...args: any[]) => any;
|
|
438
|
+
type Stoppable = [boolean, Fn, Fn];
|
|
439
|
+
type PointerType = "mouse" | "touch" | "pen";
|
|
440
|
+
interface Position {
|
|
441
|
+
x: number;
|
|
442
|
+
y: number;
|
|
443
|
+
}
|
|
228
444
|
|
|
229
|
-
|
|
445
|
+
/**
|
|
446
|
+
* @title useDraggable
|
|
447
|
+
* @returns 包含以下元素的元组:
|
|
448
|
+
* - x
|
|
449
|
+
* - y
|
|
450
|
+
* - 元素是否在拖动中
|
|
451
|
+
* @returns_en A tuple with the following elements:
|
|
452
|
+
* - x
|
|
453
|
+
* - y
|
|
454
|
+
* - Whether the element is being dragged
|
|
455
|
+
*/
|
|
456
|
+
type UseDraggable = (
|
|
457
|
+
/**
|
|
458
|
+
* @zh dom对象
|
|
459
|
+
* @en dom element
|
|
460
|
+
*/
|
|
461
|
+
target: RefObject<HTMLElement | SVGElement>,
|
|
462
|
+
/**
|
|
463
|
+
* @zh 可选参数
|
|
464
|
+
* @en optional params
|
|
465
|
+
*/
|
|
466
|
+
options?: UseDraggableOptions) => readonly [number, number, boolean];
|
|
467
|
+
/**
|
|
468
|
+
* @title UseDraggableOptions
|
|
469
|
+
*/
|
|
470
|
+
interface UseDraggableOptions {
|
|
230
471
|
/**
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
* @
|
|
472
|
+
* @en Only start the dragging when click on the element directly
|
|
473
|
+
* @zh 仅当直接单击元素时才开始拖动
|
|
474
|
+
* @defaultValue false
|
|
234
475
|
*/
|
|
235
|
-
|
|
476
|
+
exact?: boolean;
|
|
236
477
|
/**
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
* @
|
|
478
|
+
* @en Prevent events defaults
|
|
479
|
+
* @zh 阻止默认事件
|
|
480
|
+
* @defaultValue false
|
|
240
481
|
*/
|
|
241
|
-
|
|
482
|
+
preventDefault?: boolean;
|
|
242
483
|
/**
|
|
243
|
-
*
|
|
244
|
-
*
|
|
245
|
-
* @
|
|
484
|
+
* @en Prevent events propagation
|
|
485
|
+
* @zh 阻止事件冒泡
|
|
486
|
+
* @defaultValue false
|
|
246
487
|
*/
|
|
247
|
-
|
|
488
|
+
stopPropagation?: boolean;
|
|
248
489
|
/**
|
|
249
|
-
*
|
|
250
|
-
*
|
|
251
|
-
* @
|
|
490
|
+
* @en Element to attach `pointermove` and `pointerup` events to.
|
|
491
|
+
* @zh 将“pointermove”和“pointerup”事件附加到的dom元素
|
|
492
|
+
* @defaultValue window
|
|
252
493
|
*/
|
|
253
|
-
|
|
254
|
-
crossOrigin?: "anonymous" | "use-credentials";
|
|
255
|
-
referrerPolicy?: "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
|
|
256
|
-
noModule?: boolean;
|
|
257
|
-
defer?: boolean;
|
|
494
|
+
draggingElement?: RefObject<HTMLElement | SVGElement | Window | Document>;
|
|
258
495
|
/**
|
|
259
|
-
*
|
|
260
|
-
*
|
|
496
|
+
* @en Handle that triggers the drag event
|
|
497
|
+
* @zh 触发拖动事件的dom元素
|
|
498
|
+
* @defaultValue target
|
|
261
499
|
*/
|
|
262
|
-
|
|
263
|
-
}
|
|
264
|
-
type Status = "idle" | "loading" | "ready" | "error";
|
|
265
|
-
declare function useScriptTag(src: string, onLoaded?: (el: HTMLScriptElement) => void, options?: UseScriptTagOptions): readonly [HTMLScriptElement | null, Status, (waitForScriptLoad?: boolean) => Promise<HTMLScriptElement | boolean>, () => void];
|
|
266
|
-
|
|
267
|
-
type IState = PermissionState | "";
|
|
268
|
-
type DescriptorNamePolyfill = "accelerometer" | "accessibility-events" | "ambient-light-sensor" | "background-sync" | "camera" | "clipboard-read" | "clipboard-write" | "gyroscope" | "magnetometer" | "microphone" | "notifications" | "payment-handler" | "persistent-storage" | "push" | "speaker";
|
|
269
|
-
type GeneralPermissionDescriptor = PermissionDescriptor | {
|
|
270
|
-
name: DescriptorNamePolyfill;
|
|
271
|
-
};
|
|
272
|
-
declare function usePermission(permissionDesc: GeneralPermissionDescriptor | GeneralPermissionDescriptor["name"]): IState;
|
|
273
|
-
|
|
274
|
-
interface UseLongPressOptions {
|
|
275
|
-
isPreventDefault?: boolean;
|
|
276
|
-
delay?: number;
|
|
277
|
-
}
|
|
278
|
-
declare function useLongPress(callback: (e: TouchEvent | MouseEvent) => void, { isPreventDefault, delay }?: UseLongPressOptions): {
|
|
279
|
-
readonly onMouseDown: (e: any) => void;
|
|
280
|
-
readonly onTouchStart: (e: any) => void;
|
|
281
|
-
readonly onMouseUp: () => void;
|
|
282
|
-
readonly onMouseLeave: () => void;
|
|
283
|
-
readonly onTouchEnd: () => void;
|
|
284
|
-
};
|
|
285
|
-
|
|
286
|
-
declare function useObjectUrl(object: Blob | MediaSource | undefined): string | undefined;
|
|
287
|
-
|
|
288
|
-
declare function useIdle(ms?: number, initialState?: boolean, events?: (keyof WindowEventMap)[]): boolean;
|
|
289
|
-
|
|
290
|
-
interface UseMediaDeviceOptions {
|
|
500
|
+
handle?: RefObject<HTMLElement | SVGElement>;
|
|
291
501
|
/**
|
|
292
|
-
*
|
|
293
|
-
*
|
|
294
|
-
*
|
|
295
|
-
* @default false
|
|
502
|
+
* @en Pointer types that listen to.
|
|
503
|
+
* @zh 监听的事件类型
|
|
504
|
+
* @defaultValue ['mouse', 'touch', 'pen']
|
|
296
505
|
*/
|
|
297
|
-
|
|
506
|
+
pointerTypes?: PointerType[];
|
|
298
507
|
/**
|
|
299
|
-
*
|
|
300
|
-
*
|
|
301
|
-
* @
|
|
508
|
+
* @en Initial position of the element.
|
|
509
|
+
* @zh 初始的元素位置
|
|
510
|
+
* @defaultValue { x: 0, y: 0 }
|
|
302
511
|
*/
|
|
303
|
-
|
|
304
|
-
}
|
|
305
|
-
declare function useMediaDevices(options?: UseMediaDeviceOptions): readonly [{
|
|
306
|
-
devices: {
|
|
307
|
-
deviceId: string;
|
|
308
|
-
groupId: string;
|
|
309
|
-
kind: MediaDeviceKind;
|
|
310
|
-
label: string;
|
|
311
|
-
}[];
|
|
312
|
-
}, () => Promise<boolean>];
|
|
313
|
-
|
|
314
|
-
type UseTextDirectionValue = "ltr" | "rtl" | "auto";
|
|
315
|
-
interface UseTextDirectionOptions {
|
|
512
|
+
initialValue?: Position;
|
|
316
513
|
/**
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
* @default 'html'
|
|
514
|
+
* @en Callback when the dragging starts. Return `false` to prevent dragging.
|
|
515
|
+
* @zh 拖动开始时的回调。 返回“false”以防止拖动
|
|
320
516
|
*/
|
|
321
|
-
|
|
517
|
+
onStart?: (position: Position, event: PointerEvent) => void | false;
|
|
322
518
|
/**
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
* @default 'ltr'
|
|
519
|
+
* @en Callback during dragging.
|
|
520
|
+
* @zh 拖动时候的回调
|
|
326
521
|
*/
|
|
327
|
-
|
|
328
|
-
}
|
|
329
|
-
declare function useTextDirection(options?: UseTextDirectionOptions): readonly [UseTextDirectionValue, (value: UseTextDirectionValue) => void];
|
|
330
|
-
|
|
331
|
-
interface CursorState {
|
|
332
|
-
screenX: number;
|
|
333
|
-
screenY: number;
|
|
334
|
-
clientX: number;
|
|
335
|
-
clientY: number;
|
|
336
|
-
pageX: number;
|
|
337
|
-
pageY: number;
|
|
338
|
-
elementX: number;
|
|
339
|
-
elementY: number;
|
|
340
|
-
elementH: number;
|
|
341
|
-
elementW: number;
|
|
342
|
-
elementPosX: number;
|
|
343
|
-
elementPosY: number;
|
|
344
|
-
}
|
|
345
|
-
declare function useMouse(target?: BasicTarget): CursorState;
|
|
346
|
-
|
|
347
|
-
interface UseFpsOptions {
|
|
522
|
+
onMove?: (position: Position, event: PointerEvent) => void;
|
|
348
523
|
/**
|
|
349
|
-
*
|
|
350
|
-
* @
|
|
524
|
+
* @en Callback when dragging end.
|
|
525
|
+
* @zh 拖动结束的回调
|
|
351
526
|
*/
|
|
352
|
-
|
|
527
|
+
onEnd?: (position: Position, event: PointerEvent) => void;
|
|
353
528
|
}
|
|
354
|
-
declare const _default$2: (options?: UseFpsOptions | undefined) => number;
|
|
355
529
|
|
|
356
|
-
declare
|
|
357
|
-
readonly coordinates: GeolocationCoordinates;
|
|
358
|
-
readonly locatedAt: number | null;
|
|
359
|
-
readonly error: GeolocationPositionError | null;
|
|
360
|
-
};
|
|
530
|
+
declare const useDraggable: UseDraggable;
|
|
361
531
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
532
|
+
/**
|
|
533
|
+
* @title useDropZone
|
|
534
|
+
* @returns 文件是否在区域上
|
|
535
|
+
* @returns_en Whether the file is on the zone
|
|
536
|
+
*/
|
|
537
|
+
type UseDropZone = (
|
|
538
|
+
/**
|
|
539
|
+
* @zh 目标元素
|
|
540
|
+
* @en target element
|
|
541
|
+
*/
|
|
542
|
+
target: RefObject<EventTarget>,
|
|
543
|
+
/**
|
|
544
|
+
* @zh 拖拽释放时候的回调
|
|
545
|
+
* @en drop callback
|
|
546
|
+
*/
|
|
547
|
+
onDrop?: ((files: File[] | null) => void) | undefined) => boolean;
|
|
372
548
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
549
|
+
declare const useDropZone: UseDropZone;
|
|
550
|
+
|
|
551
|
+
/**
|
|
552
|
+
* @title useElementBounding
|
|
553
|
+
*/
|
|
554
|
+
type UseElementBounding = (
|
|
555
|
+
/**
|
|
556
|
+
* @zh 目标元素
|
|
557
|
+
* @en target element
|
|
558
|
+
*/
|
|
559
|
+
target: RefObject<Element>,
|
|
560
|
+
/**
|
|
561
|
+
* @zh 可选参数
|
|
562
|
+
* @en optional params
|
|
563
|
+
*/
|
|
564
|
+
options?: UseElementBoundingOptions) => UseElementBoundingReturn;
|
|
565
|
+
/**
|
|
566
|
+
* @title UseElementBoundingOptions
|
|
567
|
+
*/
|
|
568
|
+
interface UseElementBoundingOptions {
|
|
569
|
+
/**
|
|
570
|
+
* @en Reset values to 0 on component unmounted
|
|
571
|
+
* @zh 将数值重置为0
|
|
572
|
+
* @defaultValue true
|
|
573
|
+
*/
|
|
574
|
+
reset?: boolean;
|
|
575
|
+
/**
|
|
576
|
+
* @en Listen to window resize event
|
|
577
|
+
* @zh 是否监听 resize 事件
|
|
578
|
+
* @defaultValue true
|
|
579
|
+
*/
|
|
580
|
+
windowResize?: boolean;
|
|
581
|
+
/**
|
|
582
|
+
* @en Listen to window scroll event
|
|
583
|
+
* @zh 是否监听 scroll 事件
|
|
584
|
+
* @defaultValue true
|
|
585
|
+
*/
|
|
586
|
+
windowScroll?: boolean;
|
|
587
|
+
/**
|
|
588
|
+
* @en Immediately call update on component mounted
|
|
589
|
+
* @zh 立即更新
|
|
590
|
+
* @default true
|
|
591
|
+
*/
|
|
592
|
+
immediate?: boolean;
|
|
381
593
|
}
|
|
382
|
-
|
|
594
|
+
/**
|
|
595
|
+
* @title UseElementBoundingReturn
|
|
596
|
+
*/
|
|
597
|
+
interface UseElementBoundingReturn {
|
|
383
598
|
/**
|
|
384
|
-
* @
|
|
599
|
+
* @en Height of the element
|
|
600
|
+
* @zh 元素的高度
|
|
385
601
|
*/
|
|
386
|
-
|
|
602
|
+
readonly height: number;
|
|
387
603
|
/**
|
|
388
|
-
* @
|
|
389
|
-
*
|
|
604
|
+
* @en Bottom position of the element
|
|
605
|
+
* @zh 元素的底部位置
|
|
390
606
|
*/
|
|
391
|
-
|
|
607
|
+
readonly bottom: number;
|
|
392
608
|
/**
|
|
393
|
-
* @
|
|
609
|
+
* @en Left position of the element
|
|
610
|
+
* @zh 元素的左侧位置
|
|
394
611
|
*/
|
|
395
|
-
|
|
612
|
+
readonly left: number;
|
|
396
613
|
/**
|
|
397
|
-
* @
|
|
398
|
-
*
|
|
614
|
+
* @en Right position of the element
|
|
615
|
+
* @zh 元素的右侧位置
|
|
399
616
|
*/
|
|
400
|
-
|
|
617
|
+
readonly right: number;
|
|
401
618
|
/**
|
|
402
|
-
* @
|
|
403
|
-
*
|
|
619
|
+
* @en Top position of the element
|
|
620
|
+
* @zh 元素的顶部位置
|
|
404
621
|
*/
|
|
405
|
-
|
|
622
|
+
readonly top: number;
|
|
406
623
|
/**
|
|
407
|
-
* @
|
|
408
|
-
*
|
|
409
|
-
* and downlink values.
|
|
624
|
+
* @en Width of the element
|
|
625
|
+
* @zh 元素的宽度
|
|
410
626
|
*/
|
|
411
|
-
|
|
627
|
+
readonly width: number;
|
|
412
628
|
/**
|
|
413
|
-
* @
|
|
414
|
-
*
|
|
629
|
+
* @en X position of the element
|
|
630
|
+
* @zh 元素的 X 位置
|
|
415
631
|
*/
|
|
416
|
-
|
|
632
|
+
readonly x: number;
|
|
417
633
|
/**
|
|
418
|
-
* @
|
|
634
|
+
* @en Y position of the element
|
|
635
|
+
* @zh 元素的 Y 位置
|
|
419
636
|
*/
|
|
420
|
-
|
|
637
|
+
readonly y: number;
|
|
421
638
|
/**
|
|
422
|
-
* @
|
|
423
|
-
*
|
|
424
|
-
* - bluetooth
|
|
425
|
-
* - cellular
|
|
426
|
-
* - ethernet
|
|
427
|
-
* - none
|
|
428
|
-
* - wifi
|
|
429
|
-
* - wimax
|
|
430
|
-
* - other
|
|
431
|
-
* - unknown
|
|
639
|
+
* @en Manual update
|
|
640
|
+
* @zh 手动更新
|
|
432
641
|
*/
|
|
433
|
-
|
|
642
|
+
readonly update: () => void;
|
|
434
643
|
}
|
|
435
|
-
declare function useNetwork(): IUseNetworkState;
|
|
436
644
|
|
|
437
|
-
declare
|
|
645
|
+
declare const useElementBounding: UseElementBounding;
|
|
438
646
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
647
|
+
/**
|
|
648
|
+
* @title useElementSize
|
|
649
|
+
* @returns_en A tuple with the following elements:
|
|
650
|
+
* - width
|
|
651
|
+
* - height
|
|
652
|
+
* @returns 包含以下元素的元组:
|
|
653
|
+
* - 元素宽度。
|
|
654
|
+
* - 元素高度。
|
|
655
|
+
*/
|
|
656
|
+
type UseElementSize = (
|
|
657
|
+
/**
|
|
658
|
+
* @zh dom对象
|
|
659
|
+
* @en dom element
|
|
660
|
+
*/
|
|
661
|
+
target: RefObject<Element>,
|
|
662
|
+
/**
|
|
663
|
+
* @zh `resizeObserver` 参数
|
|
664
|
+
* @en options passed to `resizeObserver`
|
|
665
|
+
*/
|
|
666
|
+
options?: ResizeObserverOptions) => readonly [number, number];
|
|
444
667
|
|
|
445
|
-
declare
|
|
668
|
+
declare const useElementSize: UseElementSize;
|
|
446
669
|
|
|
447
|
-
|
|
670
|
+
/**
|
|
671
|
+
* @title useElementVisibility
|
|
672
|
+
* @returns 包含以下元素的元组:
|
|
673
|
+
* - 当前元素是否可见。
|
|
674
|
+
* - 停止监听函数。
|
|
675
|
+
* @returns_en A tuple with the following elements:
|
|
676
|
+
* - is the current element visible.
|
|
677
|
+
* - stop observer listening function.
|
|
678
|
+
*/
|
|
679
|
+
type UseElementVisibility = (
|
|
680
|
+
/**
|
|
681
|
+
* @zh dom对象
|
|
682
|
+
* @en dom element
|
|
683
|
+
*/
|
|
684
|
+
target: RefObject<HTMLElement | SVGElement>,
|
|
685
|
+
/**
|
|
686
|
+
* @zh 传递给 `intersectionObserver` 的选项
|
|
687
|
+
* @en options passed to `intersectionObserver`
|
|
688
|
+
*/
|
|
689
|
+
options?: IntersectionObserverInit) => readonly [boolean, () => void];
|
|
448
690
|
|
|
449
|
-
declare
|
|
691
|
+
declare const useElementVisibility: UseElementVisibility;
|
|
450
692
|
|
|
451
|
-
|
|
693
|
+
/**
|
|
694
|
+
* @title useEvent
|
|
695
|
+
*/
|
|
696
|
+
type UseEvent = <T extends Fn>(
|
|
697
|
+
/**
|
|
698
|
+
* @zh 函数
|
|
699
|
+
* @en function
|
|
700
|
+
*/
|
|
701
|
+
fn: T) => T;
|
|
452
702
|
|
|
453
|
-
|
|
703
|
+
/**
|
|
704
|
+
* keep function reference immutable
|
|
705
|
+
*/
|
|
706
|
+
declare const useEvent: UseEvent;
|
|
454
707
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
}
|
|
470
|
-
declare function useFileDialog(options?: UseFileDialogOptions): readonly [
|
|
471
|
-
FileList | null,
|
|
472
|
-
(localOptions?: Partial<UseFileDialogOptions>) => void,
|
|
708
|
+
/**
|
|
709
|
+
* @title useEventEmitter
|
|
710
|
+
* @returns 包含以下元素的元组:
|
|
711
|
+
* - 添加监听器的函数。
|
|
712
|
+
* - 触发函数。
|
|
713
|
+
* - 停止函数。
|
|
714
|
+
* @returns_en A tuple with the following elements:
|
|
715
|
+
* - a function to add lisenter.
|
|
716
|
+
* - fire functiion.
|
|
717
|
+
* stop functiion
|
|
718
|
+
*/
|
|
719
|
+
type UseEventEmitter = <T, U = void>() => readonly [
|
|
720
|
+
UseEventEmitterEvent<T, U>,
|
|
721
|
+
(arg1: T, arg2: U) => void,
|
|
473
722
|
() => void
|
|
474
723
|
];
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
724
|
+
interface UseEventEmitterListener<T, U = void> {
|
|
725
|
+
(arg1: T, arg2: U): void;
|
|
726
|
+
}
|
|
727
|
+
interface UseEventEmitterDisposable {
|
|
728
|
+
dispose(): void;
|
|
729
|
+
}
|
|
730
|
+
interface UseEventEmitterEvent<T, U = void> {
|
|
731
|
+
(listener: (arg1: T, arg2: U) => any): UseEventEmitterDisposable;
|
|
732
|
+
}
|
|
733
|
+
interface UseEventEmitterEventOnce<T, U = void> {
|
|
734
|
+
(listener: (arg1: T, arg2: U) => any): void;
|
|
735
|
+
}
|
|
736
|
+
interface UseEventEmitterReturn<T, U = void> {
|
|
483
737
|
/**
|
|
484
|
-
*
|
|
485
|
-
*
|
|
486
|
-
*
|
|
487
|
-
* @default 200
|
|
738
|
+
* Subscribe to an event. When calling emit, the listeners will execute.
|
|
739
|
+
* @param listener watch listener.
|
|
740
|
+
* @returns a stop function to remove the current callback.
|
|
488
741
|
*/
|
|
489
|
-
|
|
742
|
+
event: UseEventEmitterEvent<T, U>;
|
|
490
743
|
/**
|
|
491
|
-
*
|
|
492
|
-
*
|
|
744
|
+
* fire an event, the corresponding event listeners will execute.
|
|
745
|
+
* @param event data sent.
|
|
493
746
|
*/
|
|
494
|
-
|
|
495
|
-
left?: number;
|
|
496
|
-
right?: number;
|
|
497
|
-
top?: number;
|
|
498
|
-
bottom?: number;
|
|
499
|
-
};
|
|
747
|
+
fire: (arg1: T, arg2: U) => void;
|
|
500
748
|
/**
|
|
501
|
-
*
|
|
502
|
-
*
|
|
749
|
+
* Remove all corresponding listener.
|
|
503
750
|
*/
|
|
504
|
-
|
|
751
|
+
dispose: () => void;
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
declare const useEventEmitter: <T, U = void>() => readonly [UseEventEmitterEvent<T, U>, (arg1: T, arg2: U) => void, () => void];
|
|
755
|
+
|
|
756
|
+
type Target = BasicTarget<HTMLElement | Element | Window | Document | EventTarget>;
|
|
757
|
+
declare function useEventListener<K extends keyof WindowEventMap>(eventName: K, handler: (event: WindowEventMap[K]) => void, element?: Window, options?: boolean | AddEventListenerOptions): void;
|
|
758
|
+
declare function useEventListener<K extends keyof DocumentEventMap>(eventName: K, handler: (event: DocumentEventMap[K]) => void, element: Document, options?: boolean | AddEventListenerOptions): void;
|
|
759
|
+
declare function useEventListener<K extends keyof HTMLElementEventMap, T extends HTMLElement = HTMLDivElement>(eventName: K, handler: (event: HTMLElementEventMap[K]) => void, element: T, options?: boolean | AddEventListenerOptions): void;
|
|
760
|
+
declare function useEventListener<K extends keyof ElementEventMap>(eventName: K, handler: (event: ElementEventMap[K]) => void, element: Element, options?: boolean | AddEventListenerOptions): void;
|
|
761
|
+
declare function useEventListener<K = Event>(eventName: string, handler: (event: K) => void, element: EventTarget | null | undefined, options?: boolean | AddEventListenerOptions): void;
|
|
762
|
+
declare function useEventListener(eventName: string, handler: (...p: any) => void, element?: Target, options?: boolean | AddEventListenerOptions): void;
|
|
763
|
+
|
|
764
|
+
/**
|
|
765
|
+
* @title useEyeDropper
|
|
766
|
+
* @returns 包含以下元素的元组:
|
|
767
|
+
* - 浏览器是否支持该特性。
|
|
768
|
+
* - 打开颜色选择器的函数。
|
|
769
|
+
* @returns_en A tuple with the following elements:
|
|
770
|
+
* - Whether the browser supports this feature.
|
|
771
|
+
* - A function to open eye dropper.
|
|
772
|
+
*/
|
|
773
|
+
type UseEyeDropper = () => readonly [
|
|
774
|
+
boolean,
|
|
775
|
+
(options?: UseEyeDropperOpenOptions) => Promise<UseEyeDropperOpenReturnType>
|
|
776
|
+
];
|
|
777
|
+
/**
|
|
778
|
+
* @title UseEyeDropperOpenOptions
|
|
779
|
+
*/
|
|
780
|
+
interface UseEyeDropperOpenOptions {
|
|
505
781
|
/**
|
|
506
|
-
*
|
|
507
|
-
*
|
|
782
|
+
* @zh 终止信号
|
|
783
|
+
* @en abort signal
|
|
508
784
|
*/
|
|
509
|
-
|
|
785
|
+
signal?: AbortSignal;
|
|
786
|
+
}
|
|
787
|
+
/**
|
|
788
|
+
* @title UseEyeDropperOpenReturnType
|
|
789
|
+
*/
|
|
790
|
+
interface UseEyeDropperOpenReturnType {
|
|
510
791
|
/**
|
|
511
|
-
*
|
|
512
|
-
*
|
|
513
|
-
* @default {capture: false, passive: true}
|
|
792
|
+
* @zh rgb 颜色值
|
|
793
|
+
* @en rgb color value
|
|
514
794
|
*/
|
|
515
|
-
|
|
795
|
+
sRGBHex: string;
|
|
516
796
|
}
|
|
517
|
-
declare function useScroll(target: BasicTarget<HTMLElement | SVGElement | Window | Document>, options?: UseScrollOptions): readonly [
|
|
518
|
-
number,
|
|
519
|
-
number,
|
|
520
|
-
boolean,
|
|
521
|
-
{
|
|
522
|
-
left: boolean;
|
|
523
|
-
right: boolean;
|
|
524
|
-
top: boolean;
|
|
525
|
-
bottom: boolean;
|
|
526
|
-
},
|
|
527
|
-
{
|
|
528
|
-
left: boolean;
|
|
529
|
-
right: boolean;
|
|
530
|
-
top: boolean;
|
|
531
|
-
bottom: boolean;
|
|
532
|
-
}
|
|
533
|
-
];
|
|
534
797
|
|
|
535
|
-
|
|
798
|
+
declare const useEyeDropper: UseEyeDropper;
|
|
799
|
+
|
|
800
|
+
declare const useFavicon: (href: string, baseUrl?: string, rel?: string) => void;
|
|
801
|
+
|
|
802
|
+
/**
|
|
803
|
+
* @title useFileDialog
|
|
804
|
+
* @returns 包含以下元素的元组:
|
|
805
|
+
* - 文件数组。
|
|
806
|
+
* - 打开文件选择器函数。
|
|
807
|
+
* - 重置函数。
|
|
808
|
+
* @returns_en A tuple with the following elements:
|
|
809
|
+
* - file array.
|
|
810
|
+
* - A function to open file dialog.
|
|
811
|
+
* - A function to reset files
|
|
812
|
+
*/
|
|
813
|
+
type UseFileDialog = (options?: UseFileDialogOptions) => readonly [
|
|
814
|
+
FileList | null,
|
|
815
|
+
(localOptions?: Partial<UseFileDialogOptions>) => void,
|
|
816
|
+
() => void
|
|
817
|
+
];
|
|
818
|
+
/**
|
|
819
|
+
* @title UseFileDialogOptions
|
|
820
|
+
*/
|
|
821
|
+
interface UseFileDialogOptions {
|
|
536
822
|
/**
|
|
537
|
-
*
|
|
538
|
-
*
|
|
539
|
-
* @
|
|
823
|
+
* @zh 选择多个文件
|
|
824
|
+
* @en choose multiple file
|
|
825
|
+
* @defaultValue true
|
|
540
826
|
*/
|
|
541
|
-
|
|
827
|
+
multiple?: boolean;
|
|
542
828
|
/**
|
|
543
|
-
*
|
|
544
|
-
*
|
|
545
|
-
* @
|
|
829
|
+
* @zh 可以接受的文件类型
|
|
830
|
+
* @en accept file type
|
|
831
|
+
* @defaultValue '*'
|
|
546
832
|
*/
|
|
547
|
-
|
|
833
|
+
accept?: string;
|
|
548
834
|
/**
|
|
549
|
-
*
|
|
550
|
-
*
|
|
551
|
-
* @
|
|
835
|
+
* @zh [指定设备,可以从麦克风或者摄像头中获取文件](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/capture)
|
|
836
|
+
* @en [Specify the device to obtain files from the microphone or camera](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/capture)
|
|
837
|
+
* @see [HTMLInputElement Capture](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/capture)
|
|
552
838
|
*/
|
|
553
|
-
|
|
839
|
+
capture?: string;
|
|
554
840
|
}
|
|
555
|
-
declare function useInfiniteScroll(target: BasicTarget<HTMLElement | SVGElement>, onLoadMore: (state: ReturnType<typeof useScroll>) => void | Promise<void>, options?: UseInfiniteScrollOptions): void;
|
|
556
841
|
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
842
|
+
declare const useFileDialog: UseFileDialog;
|
|
843
|
+
|
|
844
|
+
/**
|
|
845
|
+
* @title useFirstMountState
|
|
846
|
+
*/
|
|
847
|
+
type UseFirstMountState = () => boolean;
|
|
848
|
+
|
|
849
|
+
declare const useFirstMountState: UseFirstMountState;
|
|
850
|
+
|
|
851
|
+
/**
|
|
852
|
+
* @title useFocus
|
|
853
|
+
* @returns 包含以下元素的元组:
|
|
854
|
+
* - 元素是否聚焦。
|
|
855
|
+
* - 更新聚焦状态。
|
|
856
|
+
* @returns_en A tuple with the following elements:
|
|
857
|
+
* - whether the element focus.
|
|
858
|
+
* - A function to update focus state.
|
|
859
|
+
*/
|
|
860
|
+
type UseFocus = (
|
|
861
|
+
/**
|
|
862
|
+
* @zh dom对象
|
|
863
|
+
* @en dom element
|
|
864
|
+
*/
|
|
865
|
+
target: RefObject<HTMLElement | SVGElement>,
|
|
866
|
+
/**
|
|
867
|
+
* @zh 默认值
|
|
868
|
+
* @en defaultValue
|
|
869
|
+
* @defaultValue false
|
|
870
|
+
*/
|
|
871
|
+
initialValue?: boolean) => readonly [boolean, (value: boolean) => void];
|
|
872
|
+
|
|
873
|
+
declare const useFocus: UseFocus;
|
|
874
|
+
|
|
875
|
+
/**
|
|
876
|
+
* @title useFps
|
|
877
|
+
* @returns 每秒帧数
|
|
878
|
+
* @returns_en frames per second
|
|
879
|
+
*/
|
|
880
|
+
type UseFps = (options?: UseFpsOptions) => number;
|
|
881
|
+
/**
|
|
882
|
+
* @title UseFpsOptions
|
|
883
|
+
*/
|
|
884
|
+
interface UseFpsOptions {
|
|
565
885
|
/**
|
|
566
|
-
*
|
|
567
|
-
*
|
|
568
|
-
* @
|
|
886
|
+
* @en Calculate the FPS on every x frames.
|
|
887
|
+
* @zh 每过 x 帧计算一次
|
|
888
|
+
* @defaultValue 10
|
|
569
889
|
*/
|
|
570
|
-
|
|
890
|
+
every?: number;
|
|
571
891
|
}
|
|
572
|
-
declare function useKeyModifier(modifier: KeyModifier, options?: UseModifierOptions): boolean;
|
|
573
892
|
|
|
574
|
-
|
|
575
|
-
type IHookStateInitAction<S> = S | IHookStateInitialSetter<S>;
|
|
893
|
+
declare const useFps: (options?: UseFpsOptions) => number;
|
|
576
894
|
|
|
577
|
-
|
|
895
|
+
/**
|
|
896
|
+
* @title useFullScreen
|
|
897
|
+
* @returns 包含以下元素的元组:
|
|
898
|
+
* - 当前是否处于全屏。
|
|
899
|
+
* - 一个操作对象:
|
|
900
|
+
* - enterFullscreen: 进入全屏。
|
|
901
|
+
* - exitFullscreen: 退出全屏。
|
|
902
|
+
* - toggleFullscreen: 切换全屏。
|
|
903
|
+
* - isEnabled: 当前浏览器是否支持全屏。
|
|
904
|
+
* @returns_en A tuple with the following elements:
|
|
905
|
+
* - whether the browser is in fullscreen.
|
|
906
|
+
* - a object:
|
|
907
|
+
* - enterFullscreen
|
|
908
|
+
* - exitFullscreen
|
|
909
|
+
* - toggleFullscreen
|
|
910
|
+
* - isEnabled: whether the browser support fullscreen
|
|
911
|
+
*/
|
|
912
|
+
type UseFullscreen = (
|
|
913
|
+
/**
|
|
914
|
+
* @zh dom元素
|
|
915
|
+
* @en dom element
|
|
916
|
+
*/
|
|
917
|
+
target: RefObject<Element>,
|
|
918
|
+
/**
|
|
919
|
+
* @zh 可选参数
|
|
920
|
+
* @en optional params
|
|
921
|
+
*/
|
|
922
|
+
options?: UseFullScreenOptions) => readonly [
|
|
578
923
|
/**
|
|
579
|
-
*
|
|
580
|
-
*
|
|
581
|
-
* @default true
|
|
924
|
+
* @zh 当前是否处于全屏
|
|
925
|
+
* @en whether is in fullscreen
|
|
582
926
|
*/
|
|
583
|
-
|
|
927
|
+
boolean,
|
|
928
|
+
{
|
|
929
|
+
/**
|
|
930
|
+
* @zh 进入全屏
|
|
931
|
+
* @en enter fullscreen
|
|
932
|
+
*/
|
|
933
|
+
readonly enterFullscreen: () => void;
|
|
934
|
+
/**
|
|
935
|
+
* @zh 退出全屏
|
|
936
|
+
* @en exit fullscreen
|
|
937
|
+
*/
|
|
938
|
+
readonly exitFullscreen: () => void;
|
|
939
|
+
/**
|
|
940
|
+
* @zh 切换全屏
|
|
941
|
+
* @en toggle fullscreen
|
|
942
|
+
*/
|
|
943
|
+
readonly toggleFullscreen: () => void;
|
|
944
|
+
/**
|
|
945
|
+
* @zh 浏览器是否支持
|
|
946
|
+
* @en whether the browser support fullscreen
|
|
947
|
+
*/
|
|
948
|
+
readonly isEnabled: boolean;
|
|
949
|
+
}
|
|
950
|
+
];
|
|
951
|
+
/**
|
|
952
|
+
* @title UseFullScreenOptions
|
|
953
|
+
*/
|
|
954
|
+
interface UseFullScreenOptions {
|
|
584
955
|
/**
|
|
585
|
-
*
|
|
586
|
-
*
|
|
587
|
-
* @default true
|
|
956
|
+
* @zh 退出时候的回调
|
|
957
|
+
* @en exit callback
|
|
588
958
|
*/
|
|
589
|
-
|
|
959
|
+
onExit?: () => void;
|
|
590
960
|
/**
|
|
591
|
-
*
|
|
592
|
-
*
|
|
593
|
-
* @default false
|
|
961
|
+
* @zh 进入时候的回调
|
|
962
|
+
* @en enter callback
|
|
594
963
|
*/
|
|
595
|
-
|
|
964
|
+
onEnter?: () => void;
|
|
596
965
|
}
|
|
597
|
-
type MouseSourceType = "mouse" | "touch" | null;
|
|
598
|
-
declare function useMousePressed(target?: BasicTarget, options?: MousePressedOptions): readonly [boolean, MouseSourceType];
|
|
599
966
|
|
|
600
|
-
declare
|
|
967
|
+
declare const useFullscreen: UseFullscreen;
|
|
601
968
|
|
|
602
|
-
|
|
969
|
+
/**
|
|
970
|
+
* @title useGeoLocation
|
|
971
|
+
* @returns 包含以下元素的元组:
|
|
972
|
+
* - 坐标。
|
|
973
|
+
* - 获取坐标的时间戳。
|
|
974
|
+
* - 错误。
|
|
975
|
+
* @returns_en A tuple with the following elements:
|
|
976
|
+
* - coordinates.
|
|
977
|
+
* - timestamp when get coordinates.
|
|
978
|
+
* - errors.
|
|
979
|
+
*/
|
|
980
|
+
type UseGeolocation = (
|
|
981
|
+
/**
|
|
982
|
+
* @zh 可选 `PositionOptions` 参数
|
|
983
|
+
* @en optional `PositionOptions` params
|
|
984
|
+
*/
|
|
985
|
+
options?: Partial<PositionOptions>) => {
|
|
986
|
+
readonly coordinates: GeolocationCoordinates;
|
|
987
|
+
readonly locatedAt: number | null;
|
|
988
|
+
readonly error: GeolocationPositionError | null;
|
|
989
|
+
};
|
|
603
990
|
|
|
604
|
-
|
|
605
|
-
/**
|
|
606
|
-
* container default height
|
|
607
|
-
*
|
|
608
|
-
* @default 300
|
|
609
|
-
*/
|
|
610
|
-
containerHeight?: number;
|
|
611
|
-
/**
|
|
612
|
-
* item height, accept a pixel value or a function that returns the height
|
|
613
|
-
*/
|
|
614
|
-
itemHeight: number | ((index: number) => number);
|
|
615
|
-
/**
|
|
616
|
-
* the extra buffer items outside of the view area
|
|
617
|
-
*
|
|
618
|
-
* @default 5
|
|
619
|
-
*/
|
|
620
|
-
overscan?: number;
|
|
621
|
-
}
|
|
622
|
-
interface UseVirtualListItem<T> {
|
|
623
|
-
data: T;
|
|
624
|
-
index: number;
|
|
625
|
-
}
|
|
626
|
-
interface UseVirtualListReturn<T> {
|
|
627
|
-
list: UseVirtualListItem<T>[];
|
|
628
|
-
scrollTo: (index: number) => void;
|
|
629
|
-
containerProps: {
|
|
630
|
-
ref: RefObject<any>;
|
|
631
|
-
onScroll: () => void;
|
|
632
|
-
style: Partial<CSSProperties>;
|
|
633
|
-
};
|
|
634
|
-
wrapperProps: {
|
|
635
|
-
style: {
|
|
636
|
-
width: string;
|
|
637
|
-
height: string;
|
|
638
|
-
marginTop: string;
|
|
639
|
-
};
|
|
640
|
-
};
|
|
641
|
-
}
|
|
642
|
-
declare function useVirtualList<T = any>(list: T[] | undefined, options: UseVirtualListOptions): UseVirtualListReturn<T>;
|
|
991
|
+
declare const useGeolocation: UseGeolocation;
|
|
643
992
|
|
|
644
|
-
|
|
645
|
-
declare function usePreferredColorScheme(defaultState?: ColorScheme): ColorScheme;
|
|
993
|
+
declare const useHover: <T extends Element = HTMLDivElement>(target: RefObject<T>) => boolean;
|
|
646
994
|
|
|
647
|
-
|
|
648
|
-
|
|
995
|
+
/**
|
|
996
|
+
* @title UseIdle
|
|
997
|
+
* @returns 是否处于空闲
|
|
998
|
+
* @returns_en whether user is idle
|
|
999
|
+
*/
|
|
1000
|
+
type UseIdle = (
|
|
1001
|
+
/**
|
|
1002
|
+
* @zh 检测时间
|
|
1003
|
+
* @en detection time
|
|
1004
|
+
* @defaultValue 60e3
|
|
1005
|
+
*/
|
|
1006
|
+
ms?: number,
|
|
1007
|
+
/**
|
|
1008
|
+
* @zh 初始值
|
|
1009
|
+
* @en initial value
|
|
1010
|
+
* @defaultValue false
|
|
1011
|
+
*/
|
|
1012
|
+
initialState?: boolean,
|
|
1013
|
+
/**
|
|
1014
|
+
* @zh 监听的事件
|
|
1015
|
+
* @en listener events
|
|
1016
|
+
* @defaultValue ["mousemove","mousedown","resize","keydown","touchstart","wheel"]
|
|
1017
|
+
*/
|
|
1018
|
+
events?: (keyof WindowEventMap)[]) => boolean;
|
|
649
1019
|
|
|
650
|
-
declare
|
|
1020
|
+
declare const useIdle: UseIdle;
|
|
651
1021
|
|
|
652
|
-
|
|
1022
|
+
/**
|
|
1023
|
+
* @title useScroll
|
|
1024
|
+
* @returns 包含以下元素的元组:
|
|
1025
|
+
* - x 值。
|
|
1026
|
+
* - y 值。
|
|
1027
|
+
* - 是否在滚动。
|
|
1028
|
+
* - 到达边界状态。
|
|
1029
|
+
* - 滚动方向
|
|
1030
|
+
* @returns_en A tuple with the following elements:
|
|
1031
|
+
* - The x value.
|
|
1032
|
+
* - The y value.
|
|
1033
|
+
* - Whether it is scrolling.
|
|
1034
|
+
* - Boundary arrival status.
|
|
1035
|
+
* - Scroll direction.
|
|
1036
|
+
*/
|
|
1037
|
+
type UseScroll = (
|
|
1038
|
+
/**
|
|
1039
|
+
* @zh dom元素
|
|
1040
|
+
* @en dom elment
|
|
1041
|
+
*/
|
|
1042
|
+
target: RefObject<Element> | Window | Document,
|
|
1043
|
+
/**
|
|
1044
|
+
* @zh 可选参数
|
|
1045
|
+
* @en optional params
|
|
1046
|
+
*/
|
|
1047
|
+
options?: UseScrollOptions) => readonly [
|
|
1048
|
+
number,
|
|
1049
|
+
number,
|
|
1050
|
+
boolean,
|
|
1051
|
+
UseScrollArrivedState,
|
|
1052
|
+
UseScrollDirection
|
|
1053
|
+
];
|
|
1054
|
+
/**
|
|
1055
|
+
* @title UseScrollOptions
|
|
1056
|
+
*/
|
|
1057
|
+
interface UseScrollOptions {
|
|
653
1058
|
/**
|
|
654
|
-
*
|
|
655
|
-
*
|
|
656
|
-
* @
|
|
1059
|
+
* @en Throttle time for scroll event, it’s disabled by default.
|
|
1060
|
+
* @zh 滚动事件的节流时间,默认关闭。
|
|
1061
|
+
* @defaultValue 0
|
|
657
1062
|
*/
|
|
658
|
-
|
|
1063
|
+
throttle?: number;
|
|
659
1064
|
/**
|
|
660
|
-
*
|
|
661
|
-
*
|
|
662
|
-
* @
|
|
1065
|
+
* @en The check time when scrolling ends.
|
|
1066
|
+
* This configuration will be setting to (throttle + idle) when the `throttle` is configured.
|
|
1067
|
+
* @zh 滚动结束时的检查时间。
|
|
1068
|
+
* 当配置 `throttle` 时,此配置将设置为 (throttle +idle)。
|
|
1069
|
+
* @default 200
|
|
663
1070
|
*/
|
|
664
|
-
|
|
1071
|
+
idle?: number;
|
|
665
1072
|
/**
|
|
666
|
-
*
|
|
667
|
-
*
|
|
668
|
-
* @default false
|
|
1073
|
+
* @en Offset arrived states by x pixels
|
|
1074
|
+
* @zh 将到达状态偏移 x 像素
|
|
669
1075
|
*/
|
|
670
|
-
|
|
1076
|
+
offset?: UseScrollOffset;
|
|
671
1077
|
/**
|
|
672
|
-
*
|
|
673
|
-
*
|
|
674
|
-
* @default window
|
|
1078
|
+
* @en Trigger it when scrolling.
|
|
1079
|
+
* @zh 滚动的回调
|
|
675
1080
|
*/
|
|
676
|
-
|
|
1081
|
+
onScroll?: (e: Event) => void;
|
|
677
1082
|
/**
|
|
678
|
-
*
|
|
679
|
-
*
|
|
680
|
-
* @default target
|
|
1083
|
+
* @en Trigger it when scrolling ends.
|
|
1084
|
+
* @zh 滚动结束的回调
|
|
681
1085
|
*/
|
|
682
|
-
|
|
1086
|
+
onStop?: (e: Event) => void;
|
|
683
1087
|
/**
|
|
684
|
-
*
|
|
685
|
-
*
|
|
686
|
-
* @
|
|
1088
|
+
* @en Listener options for scroll event.
|
|
1089
|
+
* @zh 滚动事件参数
|
|
1090
|
+
* @defaultValue {capture: false, passive: true}
|
|
687
1091
|
*/
|
|
688
|
-
|
|
1092
|
+
eventListenerOptions?: boolean | AddEventListenerOptions;
|
|
1093
|
+
}
|
|
1094
|
+
interface UseScrollOffset {
|
|
1095
|
+
left?: number;
|
|
1096
|
+
right?: number;
|
|
1097
|
+
top?: number;
|
|
1098
|
+
bottom?: number;
|
|
1099
|
+
}
|
|
1100
|
+
/**
|
|
1101
|
+
* @title UseScrollArrivedState
|
|
1102
|
+
*/
|
|
1103
|
+
interface UseScrollArrivedState {
|
|
689
1104
|
/**
|
|
690
|
-
*
|
|
691
|
-
*
|
|
692
|
-
* @default { x: 0, y: 0 }
|
|
1105
|
+
* @en arrived left
|
|
1106
|
+
* @zh 到达左边
|
|
693
1107
|
*/
|
|
694
|
-
|
|
1108
|
+
left: boolean;
|
|
695
1109
|
/**
|
|
696
|
-
*
|
|
1110
|
+
* @en arrived right
|
|
1111
|
+
* @zh 到达右边
|
|
697
1112
|
*/
|
|
698
|
-
|
|
1113
|
+
right: boolean;
|
|
699
1114
|
/**
|
|
700
|
-
*
|
|
1115
|
+
* @en arrived top
|
|
1116
|
+
* @zh 到达顶部
|
|
701
1117
|
*/
|
|
702
|
-
|
|
1118
|
+
top: boolean;
|
|
703
1119
|
/**
|
|
704
|
-
*
|
|
1120
|
+
* @en arrived bottom
|
|
1121
|
+
* @zh 到达底部
|
|
705
1122
|
*/
|
|
706
|
-
|
|
1123
|
+
bottom: boolean;
|
|
707
1124
|
}
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
1125
|
+
/**
|
|
1126
|
+
* @title UseScrollDirection
|
|
1127
|
+
*/
|
|
1128
|
+
interface UseScrollDirection {
|
|
711
1129
|
/**
|
|
712
|
-
*
|
|
713
|
-
*
|
|
714
|
-
* @default true
|
|
1130
|
+
* @en scroll left
|
|
1131
|
+
* @zh 向左滚动
|
|
715
1132
|
*/
|
|
716
|
-
|
|
1133
|
+
left: boolean;
|
|
717
1134
|
/**
|
|
718
|
-
*
|
|
719
|
-
*
|
|
720
|
-
* @default true
|
|
1135
|
+
* @en scroll right
|
|
1136
|
+
* @zh 向右滚动
|
|
721
1137
|
*/
|
|
722
|
-
|
|
1138
|
+
right: boolean;
|
|
723
1139
|
/**
|
|
724
|
-
*
|
|
725
|
-
*
|
|
726
|
-
* @default true
|
|
1140
|
+
* @en scroll top
|
|
1141
|
+
* @zh 向上滚动
|
|
727
1142
|
*/
|
|
728
|
-
|
|
1143
|
+
top: boolean;
|
|
729
1144
|
/**
|
|
730
|
-
*
|
|
731
|
-
*
|
|
732
|
-
* @default true
|
|
1145
|
+
* @en scroll bottom
|
|
1146
|
+
* @zh 向下滚动
|
|
733
1147
|
*/
|
|
734
|
-
|
|
1148
|
+
bottom: boolean;
|
|
735
1149
|
}
|
|
736
|
-
declare function useElementBounding(target: BasicTarget, options?: UseElementBoundingOptions): {
|
|
737
|
-
readonly height: number;
|
|
738
|
-
readonly bottom: number;
|
|
739
|
-
readonly left: number;
|
|
740
|
-
readonly right: number;
|
|
741
|
-
readonly top: number;
|
|
742
|
-
readonly width: number;
|
|
743
|
-
readonly x: number;
|
|
744
|
-
readonly y: number;
|
|
745
|
-
readonly update: () => void;
|
|
746
|
-
};
|
|
747
|
-
|
|
748
|
-
declare function useElementVisibility(target: BasicTarget<HTMLElement | SVGElement>, options?: IntersectionObserverInit): readonly [boolean, () => void];
|
|
749
|
-
|
|
750
|
-
declare function useWindowsFocus(defauleValue?: boolean): boolean;
|
|
751
1150
|
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
1151
|
+
/**
|
|
1152
|
+
* @title useInfiniteScroll
|
|
1153
|
+
*/
|
|
1154
|
+
type UseInfiniteScroll = (
|
|
1155
|
+
/**
|
|
1156
|
+
* @zh dom元素
|
|
1157
|
+
* @en dom element
|
|
1158
|
+
*/
|
|
1159
|
+
target: RefObject<Element>,
|
|
1160
|
+
/**
|
|
1161
|
+
* @zh 加载更多函数
|
|
1162
|
+
* @en load more function
|
|
1163
|
+
*/
|
|
1164
|
+
onLoadMore: UseInfiniteScrollLoadMore,
|
|
1165
|
+
/**
|
|
1166
|
+
* @zh 可选参数
|
|
1167
|
+
* @en optional params
|
|
1168
|
+
*/
|
|
1169
|
+
options?: UseInfiniteScrollOptions) => void;
|
|
1170
|
+
/**
|
|
1171
|
+
* @title UseInfiniteScrollLoadMore
|
|
1172
|
+
*/
|
|
1173
|
+
type UseInfiniteScrollLoadMore = (
|
|
1174
|
+
/**
|
|
1175
|
+
* @zh `useScroll` 返回的状态
|
|
1176
|
+
* @en the return state of `useScroll`
|
|
1177
|
+
*/
|
|
1178
|
+
state: readonly [
|
|
1179
|
+
number,
|
|
1180
|
+
number,
|
|
1181
|
+
boolean,
|
|
1182
|
+
UseInfiniteScrollArrivedState,
|
|
1183
|
+
UseInfiniteScrollDirection
|
|
1184
|
+
]) => void | Promise<void>;
|
|
1185
|
+
/**
|
|
1186
|
+
* @title UseInfiniteScrollOptions
|
|
1187
|
+
*/
|
|
1188
|
+
interface UseInfiniteScrollOptions extends UseScrollOptions {
|
|
1189
|
+
/**
|
|
1190
|
+
* @en The minimum distance between the bottom of the element and the bottom of the viewport
|
|
1191
|
+
* @zh 元素底部与视口底部之间的最小距离
|
|
1192
|
+
* @defaultValue 0
|
|
1193
|
+
*/
|
|
1194
|
+
distance?: number;
|
|
1195
|
+
/**
|
|
1196
|
+
* @en The direction in which to listen the scroll.
|
|
1197
|
+
* @zh 滚动方向
|
|
1198
|
+
* @defaultValue 'bottom'
|
|
1199
|
+
*/
|
|
1200
|
+
direction?: "top" | "bottom" | "left" | "right";
|
|
1201
|
+
/**
|
|
1202
|
+
* @en Whether to preserve the current scroll position when loading more items.
|
|
1203
|
+
* @zh 加载更多项目时是否保留当前滚动位置
|
|
1204
|
+
* @defaultValueValue false
|
|
1205
|
+
*/
|
|
1206
|
+
preserveScrollPosition?: boolean;
|
|
755
1207
|
}
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
1208
|
+
/**
|
|
1209
|
+
* @title UseInfiniteScrollArrivedState
|
|
1210
|
+
*/
|
|
1211
|
+
interface UseInfiniteScrollArrivedState {
|
|
1212
|
+
/**
|
|
1213
|
+
* @en arrived left
|
|
1214
|
+
* @zh 到达左边
|
|
1215
|
+
*/
|
|
1216
|
+
left: boolean;
|
|
1217
|
+
/**
|
|
1218
|
+
* @en arrived right
|
|
1219
|
+
* @zh 到达右边
|
|
1220
|
+
*/
|
|
1221
|
+
right: boolean;
|
|
1222
|
+
/**
|
|
1223
|
+
* @en arrived top
|
|
1224
|
+
* @zh 到达顶部
|
|
1225
|
+
*/
|
|
1226
|
+
top: boolean;
|
|
1227
|
+
/**
|
|
1228
|
+
* @en arrived bottom
|
|
1229
|
+
* @zh 到达底部
|
|
1230
|
+
*/
|
|
1231
|
+
bottom: boolean;
|
|
1232
|
+
}
|
|
1233
|
+
/**
|
|
1234
|
+
* @title UseInfiniteScrollDirection
|
|
1235
|
+
*/
|
|
1236
|
+
interface UseInfiniteScrollDirection {
|
|
1237
|
+
/**
|
|
1238
|
+
* @en scroll left
|
|
1239
|
+
* @zh 向左滚动
|
|
1240
|
+
*/
|
|
1241
|
+
left: boolean;
|
|
1242
|
+
/**
|
|
1243
|
+
* @en scroll right
|
|
1244
|
+
* @zh 向右滚动
|
|
1245
|
+
*/
|
|
1246
|
+
right: boolean;
|
|
1247
|
+
/**
|
|
1248
|
+
* @en scroll top
|
|
1249
|
+
* @zh 向上滚动
|
|
1250
|
+
*/
|
|
1251
|
+
top: boolean;
|
|
1252
|
+
/**
|
|
1253
|
+
* @en scroll bottom
|
|
1254
|
+
* @zh 向下滚动
|
|
1255
|
+
*/
|
|
1256
|
+
bottom: boolean;
|
|
764
1257
|
}
|
|
765
|
-
declare function useWindowScroll(): UseWindowScrollState;
|
|
766
|
-
|
|
767
|
-
declare function useClipBorad(): readonly [
|
|
768
|
-
string,
|
|
769
|
-
(txt: string) => Promise<void>
|
|
770
|
-
];
|
|
771
|
-
|
|
772
|
-
type EventType = MouseEvent | TouchEvent;
|
|
773
|
-
declare function useClickOutside(target: BasicTarget, handler: (evt: EventType) => void): void;
|
|
774
1258
|
|
|
775
|
-
declare
|
|
1259
|
+
declare const useInfiniteScroll: UseInfiniteScroll;
|
|
776
1260
|
|
|
777
|
-
declare
|
|
1261
|
+
declare const useIntersectionObserver: (target: RefObject<Element>, callback: IntersectionObserverCallback, options?: IntersectionObserverInit) => () => void;
|
|
778
1262
|
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
1263
|
+
/**
|
|
1264
|
+
* @title useInterval
|
|
1265
|
+
*/
|
|
1266
|
+
type UseInterval = (
|
|
1267
|
+
/**
|
|
1268
|
+
* @zh 回调
|
|
1269
|
+
* @en callback
|
|
1270
|
+
*/
|
|
1271
|
+
callback: () => void,
|
|
1272
|
+
/**
|
|
1273
|
+
* @zh 时间,如果为 `null` 的话则停止计时器
|
|
1274
|
+
* @en Time, if `null` then stop the timer
|
|
1275
|
+
*/
|
|
1276
|
+
delay?: number | null,
|
|
1277
|
+
/**
|
|
1278
|
+
* @zh 可选参数
|
|
1279
|
+
* @en optional params
|
|
1280
|
+
*/
|
|
1281
|
+
options?: UseIntervalOptions) => void;
|
|
1282
|
+
/**
|
|
1283
|
+
* @title UseIntervalOptions
|
|
1284
|
+
*/
|
|
1285
|
+
interface UseIntervalOptions {
|
|
1286
|
+
/**
|
|
1287
|
+
* @zh 是否立即执行。
|
|
1288
|
+
* @en Whether to execute immediately.
|
|
1289
|
+
*/
|
|
1290
|
+
immediate?: boolean;
|
|
783
1291
|
}
|
|
784
|
-
declare function useControlled<T = string>(props?: IProps<T>): readonly [T, (newValue: T) => void];
|
|
785
1292
|
|
|
786
|
-
declare const
|
|
1293
|
+
declare const useInterval: UseInterval;
|
|
787
1294
|
|
|
788
|
-
declare const
|
|
789
|
-
|
|
790
|
-
declare function useReducedMotion(defaultState?: boolean): boolean;
|
|
791
|
-
|
|
792
|
-
interface ScrollIntoViewAnimation {
|
|
793
|
-
/** target element alignment relatively to parent based on current axis */
|
|
794
|
-
alignment?: "start" | "end" | "center";
|
|
795
|
-
}
|
|
796
|
-
interface ScrollIntoViewParams {
|
|
797
|
-
/** callback fired after scroll */
|
|
798
|
-
onScrollFinish?: () => void;
|
|
799
|
-
/** duration of scroll in milliseconds */
|
|
800
|
-
duration?: number;
|
|
801
|
-
/** axis of scroll */
|
|
802
|
-
axis?: "x" | "y";
|
|
803
|
-
/** custom mathematical easing function */
|
|
804
|
-
easing?: (t: number) => number;
|
|
805
|
-
/** additional distance between nearest edge and element */
|
|
806
|
-
offset?: number;
|
|
807
|
-
/** indicator if animation may be interrupted by user scrolling */
|
|
808
|
-
cancelable?: boolean;
|
|
809
|
-
/** prevents content jumping in scrolling lists with multiple targets */
|
|
810
|
-
isList?: boolean;
|
|
811
|
-
}
|
|
812
|
-
declare function useScrollIntoView(targetElement: BasicTarget<HTMLElement>, { duration, axis, onScrollFinish, easing, offset, cancelable, isList, }?: ScrollIntoViewParams, scrollElement?: BasicTarget<HTMLElement>): {
|
|
813
|
-
scrollIntoView: ({ alignment, }?: ScrollIntoViewAnimation) => void;
|
|
814
|
-
cancel: () => void;
|
|
815
|
-
};
|
|
1295
|
+
declare const useIsomorphicLayoutEffect: typeof useEffect;
|
|
816
1296
|
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
1297
|
+
/**
|
|
1298
|
+
* @title useKeyModifier
|
|
1299
|
+
* @returns 按键是否被按下
|
|
1300
|
+
* @returns_en Whether the key is pressed
|
|
1301
|
+
*/
|
|
1302
|
+
type UseKeyModifier = (
|
|
1303
|
+
/**
|
|
1304
|
+
* @zh 键位
|
|
1305
|
+
* @en key modifier
|
|
1306
|
+
*/
|
|
1307
|
+
modifier: KeyModifier,
|
|
1308
|
+
/**
|
|
1309
|
+
* @zh 可选参数
|
|
1310
|
+
* @en optional params
|
|
1311
|
+
*/
|
|
1312
|
+
options?: UseModifierOptions) => boolean;
|
|
1313
|
+
type KeyModifier = "Alt" | "AltGraph" | "CapsLock" | "Control" | "Fn" | "FnLock" | "Meta" | "NumLock" | "ScrollLock" | "Shift" | "Symbol" | "SymbolLock";
|
|
1314
|
+
/**
|
|
1315
|
+
* @title UseModifierOptions
|
|
1316
|
+
*/
|
|
1317
|
+
interface UseModifierOptions {
|
|
1318
|
+
/**
|
|
1319
|
+
* @en Event names that will prompt update to modifier states
|
|
1320
|
+
* @zh 更新按键状态的事件
|
|
1321
|
+
* @defaultValue ['mousedown', 'mouseup', 'keydown', 'keyup']
|
|
1322
|
+
*/
|
|
1323
|
+
events?: (keyof WindowEventMap)[];
|
|
1324
|
+
/**
|
|
1325
|
+
* @en Initial value of the returned ref
|
|
1326
|
+
* @zh 初始值
|
|
1327
|
+
* @defaultValue false
|
|
1328
|
+
*/
|
|
1329
|
+
initial?: boolean;
|
|
822
1330
|
}
|
|
823
|
-
declare const useSticky: (targetElement: BasicTarget<HTMLElement>, { axis, nav }: UseStickyParams, scrollElement?: BasicTarget<HTMLElement>) => [boolean, react__default.Dispatch<react__default.SetStateAction<boolean>>];
|
|
824
|
-
|
|
825
|
-
declare function useAsyncEffect<T extends void>(effect: () => Promise<T> | T, cleanup?: typeof effect, deps?: DependencyList): void;
|
|
826
1331
|
|
|
827
|
-
declare const
|
|
828
|
-
declare const useCountDown: (time: number, format?: (num: number) => [string, string, string], callback?: () => void) => readonly [string, string, string];
|
|
1332
|
+
declare const useKeyModifier: UseKeyModifier;
|
|
829
1333
|
|
|
830
|
-
|
|
1334
|
+
/**
|
|
1335
|
+
* @title useLatest
|
|
1336
|
+
* @returns ref 对象
|
|
1337
|
+
* @returns_en ref object
|
|
1338
|
+
*/
|
|
1339
|
+
type UseLatest = <T>(
|
|
1340
|
+
/**
|
|
1341
|
+
* @zh 追踪值
|
|
1342
|
+
* @en tracked value
|
|
1343
|
+
*/
|
|
1344
|
+
value: T) => MutableRefObject<T>;
|
|
831
1345
|
|
|
832
|
-
declare
|
|
1346
|
+
declare const useLatest: UseLatest;
|
|
833
1347
|
|
|
834
|
-
interface
|
|
835
|
-
|
|
1348
|
+
interface Serializer<T> {
|
|
1349
|
+
read(raw: string): T;
|
|
1350
|
+
write(value: T): string;
|
|
836
1351
|
}
|
|
837
|
-
interface
|
|
838
|
-
|
|
1352
|
+
interface UseStorageOptions<T> {
|
|
1353
|
+
/**
|
|
1354
|
+
* Custom data serialization
|
|
1355
|
+
*/
|
|
1356
|
+
serializer?: Serializer<T>;
|
|
1357
|
+
/**
|
|
1358
|
+
* On error callback
|
|
1359
|
+
*
|
|
1360
|
+
* Default log error to `console.error`
|
|
1361
|
+
*/
|
|
1362
|
+
onError?: (error: unknown) => void;
|
|
1363
|
+
/**
|
|
1364
|
+
* set to storage when nodata in effect, fallback to defaults
|
|
1365
|
+
*/
|
|
1366
|
+
effectStorageValue?: T | (() => T);
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1369
|
+
declare function useLocalStorage(key: string, defaults: string, options?: UseStorageOptions<string>): readonly [string | null, Dispatch<SetStateAction<string | null>>];
|
|
1370
|
+
declare function useLocalStorage(key: string, defaults: number, options?: UseStorageOptions<number>): readonly [number | null, Dispatch<SetStateAction<number | null>>];
|
|
1371
|
+
declare function useLocalStorage(key: string, defaults: boolean, options?: UseStorageOptions<boolean>): readonly [boolean | null, Dispatch<SetStateAction<boolean | null>>];
|
|
1372
|
+
declare function useLocalStorage<T>(key: string, defaults: T, options?: UseStorageOptions<T>): readonly [T | null, Dispatch<SetStateAction<T | null>>];
|
|
1373
|
+
declare function useLocalStorage<T = unknown>(key: string, defaults: null, options?: UseStorageOptions<T>): readonly [T | null, Dispatch<SetStateAction<T | null>>];
|
|
1374
|
+
|
|
1375
|
+
/**
|
|
1376
|
+
* @title useLocationSelector
|
|
1377
|
+
*/
|
|
1378
|
+
type UseLocationSelector = <R>(
|
|
1379
|
+
/**
|
|
1380
|
+
* @zh 选择器
|
|
1381
|
+
* @en selector function
|
|
1382
|
+
*/
|
|
1383
|
+
selector: (location: Location) => R,
|
|
1384
|
+
/**
|
|
1385
|
+
* @zh 默认值
|
|
1386
|
+
* @en default value
|
|
1387
|
+
*/
|
|
1388
|
+
fallback?: R | undefined) => R | undefined;
|
|
1389
|
+
|
|
1390
|
+
declare const useLocationSelector: UseLocationSelector;
|
|
1391
|
+
|
|
1392
|
+
/**
|
|
1393
|
+
* @title useLongPress
|
|
1394
|
+
* @returns 包含以下元素的对象:
|
|
1395
|
+
* - onMouseDown 鼠标按下事件。
|
|
1396
|
+
* - onTouchStart 手指按下事件。
|
|
1397
|
+
* - onMouseUp 鼠标松开事件。
|
|
1398
|
+
* - onMouseLeave 鼠标离开事件
|
|
1399
|
+
* - onTouchEnd 手指松开事件
|
|
1400
|
+
* @returns_en A object with the following elements:
|
|
1401
|
+
* - onMouseDown: Mouse down event.
|
|
1402
|
+
* - onTouchStart: Finger touch start event.
|
|
1403
|
+
* - onMouseUp: Mouse up event.
|
|
1404
|
+
* - onMouseLeave: Mouse leave event.
|
|
1405
|
+
* - onTouchEnd: Finger touch end event.
|
|
1406
|
+
*/
|
|
1407
|
+
type UseLongPress = (
|
|
1408
|
+
/**
|
|
1409
|
+
* @zh 回调
|
|
1410
|
+
* @en callback
|
|
1411
|
+
*/
|
|
1412
|
+
callback: (e: TouchEvent | MouseEvent) => void,
|
|
1413
|
+
/**
|
|
1414
|
+
* @zh 可选参数
|
|
1415
|
+
* @en optional params
|
|
1416
|
+
*/
|
|
1417
|
+
options?: UseLongPressOptions) => {
|
|
1418
|
+
readonly onMouseDown: (e: any) => void;
|
|
1419
|
+
readonly onTouchStart: (e: any) => void;
|
|
1420
|
+
readonly onMouseUp: () => void;
|
|
1421
|
+
readonly onMouseLeave: () => void;
|
|
1422
|
+
readonly onTouchEnd: () => void;
|
|
1423
|
+
};
|
|
1424
|
+
/**
|
|
1425
|
+
* @title UseLongPressOptions
|
|
1426
|
+
*/
|
|
1427
|
+
interface UseLongPressOptions {
|
|
1428
|
+
/**
|
|
1429
|
+
* @zh 阻止默认事件
|
|
1430
|
+
* @en whether prevent default event
|
|
1431
|
+
* @defaultValue true
|
|
1432
|
+
*/
|
|
1433
|
+
isPreventDefault?: boolean;
|
|
1434
|
+
/**
|
|
1435
|
+
* @zh 延迟
|
|
1436
|
+
* @en delay time
|
|
1437
|
+
* @defaultValue 300
|
|
1438
|
+
*/
|
|
1439
|
+
delay?: number;
|
|
1440
|
+
}
|
|
1441
|
+
|
|
1442
|
+
declare const useLongPress: UseLongPress;
|
|
1443
|
+
|
|
1444
|
+
/**
|
|
1445
|
+
* @title useMeasure
|
|
1446
|
+
* @returns [DOMRect值,停止监听函数]
|
|
1447
|
+
* @returns_en [DOMRect, stop listening function]
|
|
1448
|
+
*/
|
|
1449
|
+
type UseMeasure = (
|
|
1450
|
+
/**
|
|
1451
|
+
* @zh dom对象
|
|
1452
|
+
* @en dom element
|
|
1453
|
+
*/
|
|
1454
|
+
target: RefObject<Element>,
|
|
1455
|
+
/**
|
|
1456
|
+
* @zh 可选参数
|
|
1457
|
+
* @en optional params
|
|
1458
|
+
*/
|
|
1459
|
+
options?: ResizeObserverOptions) => readonly [UseMeasureRect, () => void];
|
|
1460
|
+
/**
|
|
1461
|
+
* @title UseMeasureRect
|
|
1462
|
+
*/
|
|
1463
|
+
type UseMeasureRect = Omit<DOMRectReadOnly, "toJSON">;
|
|
1464
|
+
|
|
1465
|
+
declare const useMeasure: UseMeasure;
|
|
1466
|
+
|
|
1467
|
+
/**
|
|
1468
|
+
* @title useMediaDevices
|
|
1469
|
+
* @returns 包含以下元素的元组:
|
|
1470
|
+
* - 媒体设备信息。
|
|
1471
|
+
* - 请求媒体设备权限。
|
|
1472
|
+
* @returns_en A tuple with the following elements:
|
|
1473
|
+
* - The media devices info.
|
|
1474
|
+
* - A function to request media devices permission.
|
|
1475
|
+
*/
|
|
1476
|
+
type UseMediaDevices = (
|
|
1477
|
+
/**
|
|
1478
|
+
* @zh 可选参数
|
|
1479
|
+
* @en optional params
|
|
1480
|
+
*/
|
|
1481
|
+
options?: UseMediaDeviceOptions) => readonly [
|
|
1482
|
+
{
|
|
1483
|
+
devices: {
|
|
1484
|
+
deviceId: string;
|
|
1485
|
+
groupId: string;
|
|
1486
|
+
kind: MediaDeviceKind;
|
|
1487
|
+
label: string;
|
|
1488
|
+
}[];
|
|
1489
|
+
},
|
|
1490
|
+
() => Promise<boolean>
|
|
1491
|
+
];
|
|
1492
|
+
/**
|
|
1493
|
+
* @title UseMediaDeviceOptions
|
|
1494
|
+
*/
|
|
1495
|
+
interface UseMediaDeviceOptions {
|
|
1496
|
+
/**
|
|
1497
|
+
* @en Request for permissions immediately if it's not granted,
|
|
1498
|
+
* otherwise label and deviceIds could be empty
|
|
1499
|
+
* @zh 自动请求权限
|
|
1500
|
+
* @defaultValue false
|
|
1501
|
+
*/
|
|
1502
|
+
requestPermissions?: boolean;
|
|
1503
|
+
/**
|
|
1504
|
+
* @en Request for types of media permissions
|
|
1505
|
+
* @zh 请求媒体权限类型
|
|
1506
|
+
* @defaultValue { audio: true, video: true }
|
|
1507
|
+
*/
|
|
1508
|
+
constraints?: MediaStreamConstraints;
|
|
1509
|
+
}
|
|
1510
|
+
|
|
1511
|
+
declare const useMediaDevices: UseMediaDevices;
|
|
1512
|
+
|
|
1513
|
+
/**
|
|
1514
|
+
* @title useMediaQuery
|
|
1515
|
+
* @returns 是否符合媒体查询
|
|
1516
|
+
* @returns_en whether comply with media inquiries
|
|
1517
|
+
*/
|
|
1518
|
+
type UseMediaQuery = (
|
|
1519
|
+
/**
|
|
1520
|
+
* @zh 媒体查询字符串
|
|
1521
|
+
* @en media query string
|
|
1522
|
+
*/
|
|
1523
|
+
query: string,
|
|
1524
|
+
/**
|
|
1525
|
+
* @zh 默认值
|
|
1526
|
+
* @en default value
|
|
1527
|
+
*/
|
|
1528
|
+
defaultState?: boolean) => boolean;
|
|
1529
|
+
|
|
1530
|
+
declare const useMediaQuery: UseMediaQuery;
|
|
1531
|
+
|
|
1532
|
+
/**
|
|
1533
|
+
* @title useMount
|
|
1534
|
+
*/
|
|
1535
|
+
type UseMount = (
|
|
1536
|
+
/**
|
|
1537
|
+
* @zh 副作用函数
|
|
1538
|
+
* @en effect function
|
|
1539
|
+
*/
|
|
1540
|
+
effect: () => void) => void;
|
|
1541
|
+
|
|
1542
|
+
declare const useMount: UseMount;
|
|
1543
|
+
|
|
1544
|
+
declare const useMountedState: () => () => boolean;
|
|
1545
|
+
|
|
1546
|
+
/**
|
|
1547
|
+
* @title useMouse
|
|
1548
|
+
* @returns 鼠标位置
|
|
1549
|
+
* @returns_en Mouse Position
|
|
1550
|
+
*/
|
|
1551
|
+
type UseMouse = (
|
|
1552
|
+
/**
|
|
1553
|
+
* @zh dom元素
|
|
1554
|
+
* @en dom element
|
|
1555
|
+
*/
|
|
1556
|
+
target?: BasicTarget) => UseMouseCursorState;
|
|
1557
|
+
/**
|
|
1558
|
+
* @title UseMouseCursorState
|
|
1559
|
+
*/
|
|
1560
|
+
interface UseMouseCursorState {
|
|
1561
|
+
screenX: number;
|
|
1562
|
+
screenY: number;
|
|
1563
|
+
clientX: number;
|
|
1564
|
+
clientY: number;
|
|
1565
|
+
pageX: number;
|
|
1566
|
+
pageY: number;
|
|
1567
|
+
elementX: number;
|
|
1568
|
+
elementY: number;
|
|
1569
|
+
elementH: number;
|
|
1570
|
+
elementW: number;
|
|
1571
|
+
elementPosX: number;
|
|
1572
|
+
elementPosY: number;
|
|
1573
|
+
}
|
|
1574
|
+
|
|
1575
|
+
declare const useMouse: UseMouse;
|
|
1576
|
+
|
|
1577
|
+
/**
|
|
1578
|
+
* @title useMousePressed
|
|
1579
|
+
* @returns 包含以下元素的元组:
|
|
1580
|
+
* - 鼠标是否按下。
|
|
1581
|
+
* - 按下的事件来源。
|
|
1582
|
+
* @returns_en A tuple with the following elements:
|
|
1583
|
+
* - whether the mouse is pressed.
|
|
1584
|
+
* - the pressed source type
|
|
1585
|
+
*/
|
|
1586
|
+
type UseMousePressed = (
|
|
1587
|
+
/**
|
|
1588
|
+
* @zh dom对象
|
|
1589
|
+
* @en dom element
|
|
1590
|
+
*/
|
|
1591
|
+
target?: RefObject<Element>,
|
|
1592
|
+
/**
|
|
1593
|
+
* @zh 可选参数
|
|
1594
|
+
* @en optional params
|
|
1595
|
+
*/
|
|
1596
|
+
options?: UseMousePressedOptions) => readonly [boolean, UseMousePressedSourceType];
|
|
1597
|
+
/**
|
|
1598
|
+
* @title UseMousePressedOptions
|
|
1599
|
+
*/
|
|
1600
|
+
interface UseMousePressedOptions {
|
|
1601
|
+
/**
|
|
1602
|
+
* @en Listen to `touchstart` `touchend` events
|
|
1603
|
+
* @zh 监听 `touchstart` 事件
|
|
1604
|
+
* @defaultValue true
|
|
1605
|
+
*/
|
|
1606
|
+
touch?: boolean;
|
|
1607
|
+
/**
|
|
1608
|
+
* @en Listen to `dragstart` `drop` and `dragend` events
|
|
1609
|
+
* @zh 监听 `dragStart` 事件
|
|
1610
|
+
* @defaultValue true
|
|
1611
|
+
*/
|
|
1612
|
+
drag?: boolean;
|
|
1613
|
+
/**
|
|
1614
|
+
* @en Initial values
|
|
1615
|
+
* @zh 初始值
|
|
1616
|
+
* @defaultValue false
|
|
1617
|
+
*/
|
|
1618
|
+
initialValue?: boolean | (() => boolean);
|
|
1619
|
+
}
|
|
1620
|
+
/**
|
|
1621
|
+
* @title UseMousePressedSourceType
|
|
1622
|
+
*/
|
|
1623
|
+
type UseMousePressedSourceType = "mouse" | "touch" | null;
|
|
1624
|
+
|
|
1625
|
+
declare const useMousePressed: (target?: RefObject<Element>, options?: UseMousePressedOptions) => readonly [boolean, UseMousePressedSourceType];
|
|
1626
|
+
|
|
1627
|
+
/**
|
|
1628
|
+
* @title UseMutationObserver
|
|
1629
|
+
* @returns 停止函数
|
|
1630
|
+
* @returns_en stop listenering function
|
|
1631
|
+
*/
|
|
1632
|
+
type UseMutationObserver = (
|
|
1633
|
+
/**
|
|
1634
|
+
* @zh 回调
|
|
1635
|
+
* @en callback
|
|
1636
|
+
*/
|
|
1637
|
+
callback: MutationCallback,
|
|
1638
|
+
/**
|
|
1639
|
+
* @zh dom元素
|
|
1640
|
+
* @en dom对象
|
|
1641
|
+
*/
|
|
1642
|
+
target: BasicTarget,
|
|
1643
|
+
/**
|
|
1644
|
+
* @zh 传递给 `MutationObserver` 的参数
|
|
1645
|
+
* @en options passed to `MutationObserver`
|
|
1646
|
+
*/
|
|
1647
|
+
options?: MutationObserverInit) => () => void;
|
|
1648
|
+
|
|
1649
|
+
declare const useMutationObserver: UseMutationObserver;
|
|
1650
|
+
|
|
1651
|
+
/**
|
|
1652
|
+
* @title useNetwork
|
|
1653
|
+
*/
|
|
1654
|
+
type UseNetwork = () => IUseNetworkState;
|
|
1655
|
+
/**
|
|
1656
|
+
* @title IUseNetworkState
|
|
1657
|
+
*/
|
|
1658
|
+
interface IUseNetworkState {
|
|
1659
|
+
/**
|
|
1660
|
+
* @en Whether browser connected to the network or not.
|
|
1661
|
+
* @zh 浏览器是否连接网络
|
|
1662
|
+
*/
|
|
1663
|
+
online: boolean | undefined;
|
|
1664
|
+
/**
|
|
1665
|
+
* @en Previous value of `online` property. Helps to identify if browser
|
|
1666
|
+
* just connected or lost connection.
|
|
1667
|
+
* @zh `online` 属性的先前值。 帮助识别浏览器是否
|
|
1668
|
+
* 刚刚连接或失去连接。
|
|
1669
|
+
*/
|
|
1670
|
+
previous: boolean | undefined;
|
|
1671
|
+
/**
|
|
1672
|
+
* @en The {Date} object pointing to the moment when state change occurred.
|
|
1673
|
+
* @zh {Date} 对象指向状态更改发生的时刻。
|
|
1674
|
+
*/
|
|
1675
|
+
since: Date | undefined;
|
|
1676
|
+
/**
|
|
1677
|
+
* @en Effective bandwidth estimate in megabits per second, rounded to the
|
|
1678
|
+
* nearest multiple of 25 kilobits per seconds.
|
|
1679
|
+
* @zh 有效带宽估计(以兆位每秒为单位),四舍五入到
|
|
1680
|
+
* 25 kbps 的最接近倍数。
|
|
1681
|
+
*/
|
|
1682
|
+
downlink: INetworkInformation["downlink"] | undefined;
|
|
1683
|
+
/**
|
|
1684
|
+
* @en Maximum downlink speed, in megabits per second (Mbps), for the
|
|
1685
|
+
* underlying connection technology
|
|
1686
|
+
* @zh 最大下行链路速度,以兆比特每秒 (Mbps) 为单位
|
|
1687
|
+
*/
|
|
1688
|
+
downlinkMax: INetworkInformation["downlinkMax"] | undefined;
|
|
1689
|
+
/**
|
|
1690
|
+
* @en Effective type of the connection meaning one of 'slow-2g', '2g', '3g', or '4g'.
|
|
1691
|
+
* This value is determined using a combination of recently observed round-trip time
|
|
1692
|
+
* and downlink values.
|
|
1693
|
+
* @zh 连接的有效类型,表示“slow-2g”、“2g”、“3g”或“4g”之一。
|
|
1694
|
+
* 该值是根据最近观察到的往返时间和和下行链路值的组合确定的
|
|
1695
|
+
*/
|
|
1696
|
+
effectiveType: INetworkInformation["effectiveType"] | undefined;
|
|
1697
|
+
/**
|
|
1698
|
+
* @en Estimated effective round-trip time of the current connection, rounded
|
|
1699
|
+
* to the nearest multiple of 25 milliseconds
|
|
1700
|
+
* @zh 当前连接的估计有效往返时间,四舍五入
|
|
1701
|
+
* 精确到 25 毫秒的最接近倍数
|
|
1702
|
+
*/
|
|
1703
|
+
rtt: INetworkInformation["rtt"] | undefined;
|
|
1704
|
+
/**
|
|
1705
|
+
* @en {true} if the user has set a reduced data usage option on the user agent.
|
|
1706
|
+
* @zh 如果用户在用户代理上设置了减少数据使用选项,则为 {true}。
|
|
1707
|
+
*/
|
|
1708
|
+
saveData: INetworkInformation["saveData"] | undefined;
|
|
1709
|
+
/**
|
|
1710
|
+
* @en The type of connection a device is using to communicate with the network.
|
|
1711
|
+
* It will be one of the following values:
|
|
1712
|
+
* - bluetooth
|
|
1713
|
+
* - cellular
|
|
1714
|
+
* - ethernet
|
|
1715
|
+
* - none
|
|
1716
|
+
* - wifi
|
|
1717
|
+
* - wimax
|
|
1718
|
+
* - other
|
|
1719
|
+
* - unknown
|
|
1720
|
+
* @zh 设备用于与网络通信的连接类型。
|
|
1721
|
+
* 它将是以下值之一:
|
|
1722
|
+
* - 蓝牙
|
|
1723
|
+
* - 蜂窝网络
|
|
1724
|
+
* - 以太网
|
|
1725
|
+
* - 没有任何
|
|
1726
|
+
* - 无线上网
|
|
1727
|
+
* - 无线麦克斯
|
|
1728
|
+
* - 其他
|
|
1729
|
+
* - 未知
|
|
1730
|
+
*/
|
|
1731
|
+
type: INetworkInformation["type"] | undefined;
|
|
1732
|
+
}
|
|
1733
|
+
interface INetworkInformation extends EventTarget {
|
|
1734
|
+
readonly downlink: number;
|
|
1735
|
+
readonly downlinkMax: number;
|
|
1736
|
+
readonly effectiveType: "slow-2g" | "2g" | "3g" | "4g";
|
|
1737
|
+
readonly rtt: number;
|
|
1738
|
+
readonly saveData: boolean;
|
|
1739
|
+
readonly type: "bluetooth" | "cellular" | "ethernet" | "none" | "wifi" | "wimax" | "other" | "unknown";
|
|
1740
|
+
onChange: (event: Event) => void;
|
|
1741
|
+
}
|
|
1742
|
+
|
|
1743
|
+
declare const useNetwork: UseNetwork;
|
|
1744
|
+
|
|
1745
|
+
/**
|
|
1746
|
+
* @title useObjectUrl
|
|
1747
|
+
* @returns 返回一个由 Blob 或 MediaSource 对象生成的 URL(如果存在),否则返回 undefined
|
|
1748
|
+
* @returns_en Returns a URL created from the Blob or MediaSource object, or undefined if none exists
|
|
1749
|
+
*/
|
|
1750
|
+
type UseObjectUrl = (
|
|
1751
|
+
/**
|
|
1752
|
+
* @zh 文件或者媒体对象
|
|
1753
|
+
* @en file or media source
|
|
1754
|
+
*/
|
|
1755
|
+
object: Blob | MediaSource) => string | undefined;
|
|
1756
|
+
|
|
1757
|
+
declare const useObjectUrl: UseObjectUrl;
|
|
1758
|
+
|
|
1759
|
+
declare const useOnceEffect: typeof useEffect | typeof react.useLayoutEffect;
|
|
1760
|
+
|
|
1761
|
+
declare const useOnceLayoutEffect: typeof react.useEffect | typeof useLayoutEffect;
|
|
1762
|
+
|
|
1763
|
+
/**
|
|
1764
|
+
* @title useOnline
|
|
1765
|
+
* @returns 网络是否在线
|
|
1766
|
+
* @returns_en whether netwotk is online
|
|
1767
|
+
*/
|
|
1768
|
+
type UseOnline = () => boolean | undefined;
|
|
1769
|
+
|
|
1770
|
+
declare const useOnline: UseOnline;
|
|
1771
|
+
|
|
1772
|
+
/**
|
|
1773
|
+
* @title useOrientation
|
|
1774
|
+
* @returns 包含以下元素的元组:
|
|
1775
|
+
* - 方向状态。
|
|
1776
|
+
* - 锁定方向。
|
|
1777
|
+
* - 解锁方向。
|
|
1778
|
+
* @returns_en A tuple with the following elements:
|
|
1779
|
+
* - orientation type.
|
|
1780
|
+
* - lock orientation.
|
|
1781
|
+
* - unlock orientation.
|
|
1782
|
+
*/
|
|
1783
|
+
type UseOrientation = (
|
|
1784
|
+
/**
|
|
1785
|
+
* @zh 初始值
|
|
1786
|
+
* @en initial value
|
|
1787
|
+
*/
|
|
1788
|
+
initialState?: UseOrientationState) => readonly [
|
|
1789
|
+
UseOrientationState,
|
|
1790
|
+
(type: UseOrientationLockType) => any,
|
|
1791
|
+
() => void
|
|
1792
|
+
];
|
|
1793
|
+
/**
|
|
1794
|
+
* @title UseOrientationState
|
|
1795
|
+
*/
|
|
1796
|
+
interface UseOrientationState {
|
|
1797
|
+
/**
|
|
1798
|
+
* @zh 角度
|
|
1799
|
+
* @en document angle
|
|
1800
|
+
*/
|
|
1801
|
+
angle: number;
|
|
1802
|
+
/**
|
|
1803
|
+
* @zh 方向类型
|
|
1804
|
+
* @en orientation type
|
|
1805
|
+
*/
|
|
1806
|
+
type: UseOrientationType | undefined;
|
|
1807
|
+
}
|
|
1808
|
+
/**
|
|
1809
|
+
* @title UseOrientationType
|
|
1810
|
+
*/
|
|
1811
|
+
type UseOrientationType = "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary";
|
|
1812
|
+
/**
|
|
1813
|
+
* @title UseOrientationLockType
|
|
1814
|
+
*/
|
|
1815
|
+
type UseOrientationLockType = "any" | "natural" | "landscape" | "portrait" | "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary";
|
|
1816
|
+
|
|
1817
|
+
declare const useOrientation: UseOrientation;
|
|
1818
|
+
|
|
1819
|
+
declare const usePageLeave: () => boolean;
|
|
1820
|
+
|
|
1821
|
+
/**
|
|
1822
|
+
* @title usePermission
|
|
1823
|
+
* @returns 权限状态
|
|
1824
|
+
* @returns_en permission state
|
|
1825
|
+
*/
|
|
1826
|
+
type UsePermission = (
|
|
1827
|
+
/**
|
|
1828
|
+
* @zh 权限描述符
|
|
1829
|
+
* @en permission desc
|
|
1830
|
+
*/
|
|
1831
|
+
permissionDesc: UsePermissionGeneralPermissionDescriptor | UsePermissionGeneralPermissionDescriptor["name"]) => UsePermissionState;
|
|
1832
|
+
/**
|
|
1833
|
+
* @title UsePermissionState
|
|
1834
|
+
*/
|
|
1835
|
+
type UsePermissionState = PermissionState | "";
|
|
1836
|
+
/**
|
|
1837
|
+
* @title UsePermissionGeneralPermissionDescriptor
|
|
1838
|
+
*/
|
|
1839
|
+
type UsePermissionGeneralPermissionDescriptor = PermissionDescriptor | {
|
|
1840
|
+
name: UsePermissionDescriptorNamePolyfill;
|
|
1841
|
+
};
|
|
1842
|
+
/**
|
|
1843
|
+
* @title UsePermissionDescriptorNamePolyfill
|
|
1844
|
+
*/
|
|
1845
|
+
type UsePermissionDescriptorNamePolyfill = "accelerometer" | "accessibility-events" | "ambient-light-sensor" | "background-sync" | "camera" | "clipboard-read" | "clipboard-write" | "gyroscope" | "magnetometer" | "microphone" | "notifications" | "payment-handler" | "persistent-storage" | "push" | "speaker";
|
|
1846
|
+
|
|
1847
|
+
declare const usePermission: UsePermission;
|
|
1848
|
+
|
|
1849
|
+
/**
|
|
1850
|
+
* @title usePreferredColorScheme
|
|
1851
|
+
* @returns prefers-color-scheme的媒体查询值
|
|
1852
|
+
* @returns_en value of prefers-color-scheme media query
|
|
1853
|
+
*/
|
|
1854
|
+
type UsePreferredColorScheme = (
|
|
1855
|
+
/**
|
|
1856
|
+
* @zh 默认值
|
|
1857
|
+
* @en default value
|
|
1858
|
+
* @defaultValue no-preference
|
|
1859
|
+
*/
|
|
1860
|
+
defaultState?: ColorScheme) => ColorScheme;
|
|
1861
|
+
/**
|
|
1862
|
+
* @title ColorScheme
|
|
1863
|
+
*/
|
|
1864
|
+
type ColorScheme = "dark" | "light" | "no-preference";
|
|
1865
|
+
|
|
1866
|
+
declare const usePreferredColorScheme: UsePreferredColorScheme;
|
|
1867
|
+
|
|
1868
|
+
/**
|
|
1869
|
+
* @title usePreferredContrast
|
|
1870
|
+
*/
|
|
1871
|
+
type UsePreferredContrast = (
|
|
1872
|
+
/**
|
|
1873
|
+
* @zh 默认值
|
|
1874
|
+
* @en default value
|
|
1875
|
+
* @defaultValue no-preference
|
|
1876
|
+
*/
|
|
1877
|
+
defaultState?: Contrast) => Contrast;
|
|
1878
|
+
/**
|
|
1879
|
+
* @title Contrast
|
|
1880
|
+
*/
|
|
1881
|
+
type Contrast = "more" | "less" | "custom" | "no-preference";
|
|
1882
|
+
|
|
1883
|
+
declare const usePreferredContrast: UsePreferredContrast;
|
|
1884
|
+
|
|
1885
|
+
declare const usePreferredDark: (defaultState?: boolean) => boolean;
|
|
1886
|
+
|
|
1887
|
+
declare const usePrevious: <T>(state: T) => T | undefined;
|
|
1888
|
+
|
|
1889
|
+
/**
|
|
1890
|
+
* @title useRafFn
|
|
1891
|
+
* @returns 包含以下元素的元组:
|
|
1892
|
+
* - 停止函数。
|
|
1893
|
+
* - 开始函数。
|
|
1894
|
+
* - 函数是否在执行中。
|
|
1895
|
+
* @returns_en A tuple with the following elements:
|
|
1896
|
+
* - stop function
|
|
1897
|
+
* - start function
|
|
1898
|
+
* whether function is running
|
|
1899
|
+
*/
|
|
1900
|
+
type UseRafFn = (
|
|
1901
|
+
/**
|
|
1902
|
+
* @zh 回调
|
|
1903
|
+
* @en callback
|
|
1904
|
+
*/
|
|
1905
|
+
callback: FrameRequestCallback,
|
|
1906
|
+
/**
|
|
1907
|
+
* @zh 立即执行
|
|
1908
|
+
* @en immediatly start
|
|
1909
|
+
*/
|
|
1910
|
+
initiallyActive?: boolean) => readonly [() => void, () => void, () => boolean];
|
|
1911
|
+
|
|
1912
|
+
declare const useRafFn: UseRafFn;
|
|
1913
|
+
|
|
1914
|
+
declare const useRafState: <S>(initialState: S | (() => S)) => readonly [S, Dispatch<SetStateAction<S>>];
|
|
1915
|
+
|
|
1916
|
+
declare const useReducedMotion: (defaultState?: boolean) => boolean;
|
|
1917
|
+
|
|
1918
|
+
declare const useResizeObserver: (target: RefObject<Element>, callback: ResizeObserverCallback, options?: ResizeObserverOptions) => () => void;
|
|
1919
|
+
|
|
1920
|
+
declare const useScreenSafeArea: () => readonly [string, string, string, string, lodash.DebouncedFunc<() => void>];
|
|
1921
|
+
|
|
1922
|
+
/**
|
|
1923
|
+
* @title useScriptTag
|
|
1924
|
+
* @returns 包含以下元素的元组:
|
|
1925
|
+
* - 用来加载资源的 html 元素。
|
|
1926
|
+
* - 资源加载状态。
|
|
1927
|
+
* - 资源加载函数。
|
|
1928
|
+
* - 资源卸载函数
|
|
1929
|
+
* @returns_en A tuple with the following elements:
|
|
1930
|
+
* - html element used to load resources.
|
|
1931
|
+
* - Resource loading status.
|
|
1932
|
+
* - Resource loading function.
|
|
1933
|
+
* - Resource unloading function
|
|
1934
|
+
*/
|
|
1935
|
+
type UseScriptTag = (
|
|
1936
|
+
/**
|
|
1937
|
+
* @zh 资源地址
|
|
1938
|
+
* @en source
|
|
1939
|
+
*/
|
|
1940
|
+
src: string,
|
|
1941
|
+
/**
|
|
1942
|
+
* @zh 资源加载完成的回调
|
|
1943
|
+
* @en source loaded callback
|
|
1944
|
+
*/
|
|
1945
|
+
onLoaded?: (el: HTMLScriptElement) => void,
|
|
1946
|
+
/**
|
|
1947
|
+
* @zh 可选参数
|
|
1948
|
+
* @en optional params
|
|
1949
|
+
*/
|
|
1950
|
+
options?: UseScriptTagOptions) => readonly [
|
|
1951
|
+
HTMLScriptElement | null,
|
|
1952
|
+
UseScriptTagStatus,
|
|
1953
|
+
(waitForScriptLoad?: boolean) => Promise<HTMLScriptElement | boolean>,
|
|
1954
|
+
() => void
|
|
1955
|
+
];
|
|
1956
|
+
/**
|
|
1957
|
+
* @title UseScriptTagOptions
|
|
1958
|
+
*/
|
|
1959
|
+
interface UseScriptTagOptions {
|
|
1960
|
+
/**
|
|
1961
|
+
* @en Load the script immediately
|
|
1962
|
+
* @zh 立即加载资源
|
|
1963
|
+
* @defaultValue true
|
|
1964
|
+
*/
|
|
1965
|
+
immediate?: boolean;
|
|
1966
|
+
/**
|
|
1967
|
+
* @en Add `async` attribute to the script tag
|
|
1968
|
+
* @zh 在 `script` 标签上加上 `async`
|
|
1969
|
+
* @defaultValue true
|
|
1970
|
+
*/
|
|
1971
|
+
async?: boolean;
|
|
1972
|
+
/**
|
|
1973
|
+
* @en Script type
|
|
1974
|
+
* @zh 脚本类型
|
|
1975
|
+
* @defaultValue 'text/javascript'
|
|
1976
|
+
*/
|
|
1977
|
+
type?: string;
|
|
1978
|
+
/**
|
|
1979
|
+
* @en Manual controls the timing of loading and unloading
|
|
1980
|
+
* @zh 手动控制加载和卸载时机
|
|
1981
|
+
* @defaultValue false
|
|
1982
|
+
*/
|
|
1983
|
+
manual?: boolean;
|
|
1984
|
+
/**
|
|
1985
|
+
* @zh 跨域属性
|
|
1986
|
+
* @en cross origin
|
|
1987
|
+
*/
|
|
1988
|
+
crossOrigin?: "anonymous" | "use-credentials";
|
|
1989
|
+
/**
|
|
1990
|
+
* @en referrer policy
|
|
1991
|
+
* @zh 来源属性
|
|
1992
|
+
*/
|
|
1993
|
+
referrerPolicy?: "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
|
|
1994
|
+
/**
|
|
1995
|
+
* @en Add `noModule` attribute to the script tag
|
|
1996
|
+
* @zh 在 `script` 标签上加上 `noModule`
|
|
1997
|
+
*/
|
|
1998
|
+
noModule?: boolean;
|
|
1999
|
+
/**
|
|
2000
|
+
* @en Add `defer` attribute to the script tag
|
|
2001
|
+
* @zh 在 `script` 标签上加上 `defer`
|
|
2002
|
+
*/
|
|
2003
|
+
defer?: boolean;
|
|
2004
|
+
/**
|
|
2005
|
+
* @en Add custom attribute to the script tag
|
|
2006
|
+
* @zh 在 script 标签上添加自定义属性
|
|
2007
|
+
*/
|
|
2008
|
+
attrs?: Record<string, string>;
|
|
2009
|
+
}
|
|
2010
|
+
/**
|
|
2011
|
+
* @title UseScriptTagStatus
|
|
2012
|
+
*/
|
|
2013
|
+
type UseScriptTagStatus = "idle" | "loading" | "ready" | "error";
|
|
2014
|
+
|
|
2015
|
+
declare const useScriptTag: UseScriptTag;
|
|
2016
|
+
|
|
2017
|
+
declare const useScroll: UseScroll;
|
|
2018
|
+
|
|
2019
|
+
/**
|
|
2020
|
+
* @title useScrollIntoView
|
|
2021
|
+
* @returns 包含以下元素的对象:
|
|
2022
|
+
* - scrollIntoView:滚动进入视口函数。
|
|
2023
|
+
* - cancel: 取消滚动函数。
|
|
2024
|
+
* @returns_en A object with the following elements:
|
|
2025
|
+
* - scrollIntoView: scroll target element into viewport
|
|
2026
|
+
* - cancel: cancel scroll function
|
|
2027
|
+
*/
|
|
2028
|
+
type UseScrollIntoView = (
|
|
2029
|
+
/**
|
|
2030
|
+
* @zh dom对象
|
|
2031
|
+
* @en dom element
|
|
2032
|
+
*/
|
|
2033
|
+
targetElement: BasicTarget<HTMLElement>,
|
|
2034
|
+
/**
|
|
2035
|
+
* @zh 可选参数
|
|
2036
|
+
* @en optional params
|
|
2037
|
+
*/ params?: UseScrollIntoViewParams,
|
|
2038
|
+
/**
|
|
2039
|
+
* @zh 滚动容器
|
|
2040
|
+
* @en scroll container
|
|
2041
|
+
*/
|
|
2042
|
+
scrollElement?: BasicTarget<HTMLElement>) => {
|
|
2043
|
+
scrollIntoView: (animation?: UseScrollIntoViewAnimation) => void;
|
|
2044
|
+
cancel: () => void;
|
|
2045
|
+
};
|
|
2046
|
+
/**
|
|
2047
|
+
* @title UseScrollIntoViewAnimation
|
|
2048
|
+
*/
|
|
2049
|
+
interface UseScrollIntoViewAnimation {
|
|
2050
|
+
/**
|
|
2051
|
+
* @en target element alignment relatively to parent based on current axis
|
|
2052
|
+
* @zh 基于当前轴的目标元素相对于父元素的对齐方式
|
|
2053
|
+
*/
|
|
2054
|
+
alignment?: "start" | "end" | "center";
|
|
2055
|
+
}
|
|
2056
|
+
/**
|
|
2057
|
+
* @title UseScrollIntoViewParams
|
|
2058
|
+
*/
|
|
2059
|
+
interface UseScrollIntoViewParams {
|
|
2060
|
+
/**
|
|
2061
|
+
* @en callback fired after scroll
|
|
2062
|
+
* @zh 滚动完成回调
|
|
2063
|
+
*/
|
|
2064
|
+
onScrollFinish?: () => void;
|
|
2065
|
+
/**
|
|
2066
|
+
* @en duration of scroll in milliseconds
|
|
2067
|
+
* @zh 滚动时间
|
|
2068
|
+
* @defaultValue 1250
|
|
2069
|
+
*/
|
|
2070
|
+
duration?: number;
|
|
2071
|
+
/**
|
|
2072
|
+
* @en axis of scroll
|
|
2073
|
+
* @zh 滚动方向
|
|
2074
|
+
* @defaultValue y
|
|
2075
|
+
*/
|
|
2076
|
+
axis?: "x" | "y";
|
|
2077
|
+
/**
|
|
2078
|
+
* @en custom mathematical easing function
|
|
2079
|
+
* @zh 自定义缓和数学函数
|
|
2080
|
+
* @defaultValue (t: number) => t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t
|
|
2081
|
+
*/
|
|
2082
|
+
easing?: (t: number) => number;
|
|
2083
|
+
/**
|
|
2084
|
+
* @en additional distance between nearest edge and element
|
|
2085
|
+
* @zh 最近的边缘和元素之间的附加距离
|
|
2086
|
+
* @defaultValue 0
|
|
2087
|
+
*/
|
|
2088
|
+
offset?: number;
|
|
2089
|
+
/**
|
|
2090
|
+
* @en indicator if animation may be interrupted by user scrolling
|
|
2091
|
+
* @zh 指示动画是否可能因用户滚动而中断
|
|
2092
|
+
* @defaultValue true
|
|
2093
|
+
*/
|
|
2094
|
+
cancelable?: boolean;
|
|
2095
|
+
/**
|
|
2096
|
+
* @en prevents content jumping in scrolling lists with multiple targets
|
|
2097
|
+
* @zh 防止内容在具有多个目标的滚动列表中跳跃
|
|
2098
|
+
*/
|
|
2099
|
+
isList?: boolean;
|
|
2100
|
+
}
|
|
2101
|
+
|
|
2102
|
+
declare const useScrollIntoView: UseScrollIntoView;
|
|
2103
|
+
|
|
2104
|
+
/**
|
|
2105
|
+
* @title useScrollLock
|
|
2106
|
+
* @returns 包含以下元素的元组:
|
|
2107
|
+
* - 是否锁定。
|
|
2108
|
+
* - 更新锁定值的函数。
|
|
2109
|
+
* @returns_en A tuple with the following elements:
|
|
2110
|
+
* - whether scroll is locked.
|
|
2111
|
+
* - A function to update the value of lock state.
|
|
2112
|
+
*/
|
|
2113
|
+
type UseScrollLock = (
|
|
2114
|
+
/**
|
|
2115
|
+
* @zh dom元素
|
|
2116
|
+
* @en dom element
|
|
2117
|
+
*/
|
|
2118
|
+
target: BasicTarget<HTMLElement>,
|
|
2119
|
+
/**
|
|
2120
|
+
* @zh 默认值
|
|
2121
|
+
* @en default value
|
|
2122
|
+
* @defaultValue false
|
|
2123
|
+
*/
|
|
2124
|
+
initialState?: boolean) => readonly [boolean, (flag: boolean) => void];
|
|
2125
|
+
|
|
2126
|
+
declare const useScrollLock: UseScrollLock;
|
|
2127
|
+
|
|
2128
|
+
declare function useSessionStorage(key: string, defaults: string, options?: UseStorageOptions<string>): readonly [string | null, Dispatch<SetStateAction<string | null>>];
|
|
2129
|
+
declare function useSessionStorage(key: string, defaults: number, options?: UseStorageOptions<number>): readonly [number | null, Dispatch<SetStateAction<number | null>>];
|
|
2130
|
+
declare function useSessionStorage(key: string, defaults: boolean, options?: UseStorageOptions<boolean>): readonly [boolean | null, Dispatch<SetStateAction<boolean | null>>];
|
|
2131
|
+
declare function useSessionStorage<T>(key: string, defaults: T, options?: UseStorageOptions<T>): readonly [T | null, Dispatch<SetStateAction<T | null>>];
|
|
2132
|
+
declare function useSessionStorage<T = unknown>(key: string, defaults: null, options?: UseStorageOptions<T>): readonly [T | null, Dispatch<SetStateAction<T | null>>];
|
|
2133
|
+
|
|
2134
|
+
/**
|
|
2135
|
+
* @title useSetState
|
|
2136
|
+
* @returns 包含以下元素的元组:
|
|
2137
|
+
* - state 的当前值。
|
|
2138
|
+
* - 更新 state 值的函数。
|
|
2139
|
+
* @returns_en A tuple with the following elements:
|
|
2140
|
+
* - The current value of the state.
|
|
2141
|
+
* - A function to update the value of the state.
|
|
2142
|
+
*/
|
|
2143
|
+
type UseSetState = <T extends Record<string, any>>(
|
|
2144
|
+
/**
|
|
2145
|
+
* @zh 初始值
|
|
2146
|
+
* @en initial value
|
|
2147
|
+
*/
|
|
2148
|
+
initialState: T) => readonly [
|
|
2149
|
+
T,
|
|
2150
|
+
(statePartial: Partial<T> | ((currentState: T) => Partial<T>)) => void
|
|
2151
|
+
];
|
|
2152
|
+
|
|
2153
|
+
declare const useSetState: UseSetState;
|
|
2154
|
+
|
|
2155
|
+
/**
|
|
2156
|
+
* @title useSticky
|
|
2157
|
+
* @returns 包含以下元素的元组:
|
|
2158
|
+
* - 当前是否粘滞。
|
|
2159
|
+
* - 更新粘滞值的函数。
|
|
2160
|
+
* @returns_en A tuple with the following elements:
|
|
2161
|
+
* - The current state of sticky.
|
|
2162
|
+
* - A function to update the value of sticky.
|
|
2163
|
+
*/
|
|
2164
|
+
type UseSticky = (
|
|
2165
|
+
/**
|
|
2166
|
+
* @zh dom元素
|
|
2167
|
+
* @en dom element
|
|
2168
|
+
*/
|
|
2169
|
+
targetElement: BasicTarget<HTMLElement>,
|
|
2170
|
+
/**
|
|
2171
|
+
* @zh 可选参数
|
|
2172
|
+
* @en optional params
|
|
2173
|
+
*/
|
|
2174
|
+
params: UseStickyParams,
|
|
2175
|
+
/**
|
|
2176
|
+
* @zh 滚动容器
|
|
2177
|
+
* @en scroll container
|
|
2178
|
+
*/
|
|
2179
|
+
scrollElement?: BasicTarget<HTMLElement>) => [boolean, React.Dispatch<React.SetStateAction<boolean>>];
|
|
2180
|
+
/**
|
|
2181
|
+
* @title UseStickyParams
|
|
2182
|
+
*/
|
|
2183
|
+
interface UseStickyParams {
|
|
2184
|
+
/**
|
|
2185
|
+
* @en axis of scroll
|
|
2186
|
+
* @zh 滚动方向
|
|
2187
|
+
* @defaultValue y
|
|
2188
|
+
*/
|
|
2189
|
+
axis?: "x" | "y";
|
|
2190
|
+
/**
|
|
2191
|
+
* @en cover height or width
|
|
2192
|
+
* @zh 沉浸式高度/宽度
|
|
2193
|
+
* @defaultValue 0
|
|
2194
|
+
*/
|
|
2195
|
+
nav: number;
|
|
2196
|
+
}
|
|
2197
|
+
|
|
2198
|
+
declare const useSticky: (targetElement: BasicTarget<HTMLElement>, { axis, nav }: UseStickyParams, scrollElement?: BasicTarget<HTMLElement>) => [boolean, react__default.Dispatch<react__default.SetStateAction<boolean>>];
|
|
2199
|
+
|
|
2200
|
+
declare const useSupported: (callback: () => unknown, sync?: boolean) => boolean;
|
|
2201
|
+
|
|
2202
|
+
/**
|
|
2203
|
+
* @title useTextDirection
|
|
2204
|
+
* @returns 包含以下元素的元组:
|
|
2205
|
+
* - 文字方向。
|
|
2206
|
+
* - 更新文字方向值的函数。
|
|
2207
|
+
* @returns_en A tuple with the following elements:
|
|
2208
|
+
* - The current value of the text direction.
|
|
2209
|
+
* - A function to update the value of the text direction.
|
|
2210
|
+
*/
|
|
2211
|
+
type UseTextDirection = (
|
|
2212
|
+
/**
|
|
2213
|
+
* @zh 可选参数
|
|
2214
|
+
* @en optional params
|
|
2215
|
+
*/
|
|
2216
|
+
options?: UseTextDirectionOptions) => readonly [UseTextDirectionValue, (value: UseTextDirectionValue) => void];
|
|
2217
|
+
/**
|
|
2218
|
+
* @title UseTextDirectionOptions
|
|
2219
|
+
*/
|
|
2220
|
+
interface UseTextDirectionOptions {
|
|
2221
|
+
/**
|
|
2222
|
+
* @en CSS Selector for the target element applying to
|
|
2223
|
+
* @zh 适用于目标元素的 CSS 选择器
|
|
2224
|
+
* @defaultValue 'html'
|
|
2225
|
+
*/
|
|
2226
|
+
selector?: string;
|
|
2227
|
+
/**
|
|
2228
|
+
* @en Initial value
|
|
2229
|
+
* @zh 初始值
|
|
2230
|
+
* @defaultValue 'ltr'
|
|
2231
|
+
*/
|
|
2232
|
+
initialValue?: UseTextDirectionValue;
|
|
2233
|
+
}
|
|
2234
|
+
/**
|
|
2235
|
+
* @title UseTextDirectionValue
|
|
2236
|
+
*/
|
|
2237
|
+
type UseTextDirectionValue = "ltr" | "rtl" | "auto";
|
|
2238
|
+
|
|
2239
|
+
declare const useTextDirection: UseTextDirection;
|
|
2240
|
+
|
|
2241
|
+
/**
|
|
2242
|
+
* @title useTextSelection
|
|
2243
|
+
* @returns 选择的文本对象
|
|
2244
|
+
* @returns_en selected text object
|
|
2245
|
+
*/
|
|
2246
|
+
type UseTextSelection = () => Selection | null;
|
|
2247
|
+
|
|
2248
|
+
declare const useTextSelection: UseTextSelection;
|
|
2249
|
+
|
|
2250
|
+
/**
|
|
2251
|
+
* @title useThrottle
|
|
2252
|
+
*/
|
|
2253
|
+
type UseThrottle = <T>(
|
|
2254
|
+
/**
|
|
2255
|
+
* @zh 要节流的值
|
|
2256
|
+
* @en the value need to throttle
|
|
2257
|
+
*/
|
|
2258
|
+
value: T,
|
|
2259
|
+
/**
|
|
2260
|
+
* @zh 间隔时间
|
|
2261
|
+
* @en wait time
|
|
2262
|
+
*/
|
|
2263
|
+
wait?: number,
|
|
2264
|
+
/**
|
|
2265
|
+
* @zh 传递给 `lodash.throttle` 的选项
|
|
2266
|
+
* @en options passed to `lodash.throttle`
|
|
2267
|
+
*/
|
|
2268
|
+
options?: ThrottleSettings) => T;
|
|
2269
|
+
|
|
2270
|
+
declare const useThrottle: UseThrottle;
|
|
2271
|
+
|
|
2272
|
+
declare const useThrottleFn: <T extends (...args: any) => any>(fn: T, wait?: number, options?: ThrottleSettings) => {
|
|
2273
|
+
run: lodash.DebouncedFunc<(...args_0: Parameters<T>) => ReturnType<T>>;
|
|
2274
|
+
cancel: () => void;
|
|
2275
|
+
flush: () => ReturnType<T> | undefined;
|
|
2276
|
+
};
|
|
2277
|
+
|
|
2278
|
+
/**
|
|
2279
|
+
* @title useTimeout
|
|
2280
|
+
* @returns 包含以下元素的元组:
|
|
2281
|
+
* - 是否等待定时器执行。
|
|
2282
|
+
* - 设置定时器。
|
|
2283
|
+
* - 取消定时器。
|
|
2284
|
+
* @returns_en A tuple with the following elements:
|
|
2285
|
+
* - Whether to wait for the timer to execute.
|
|
2286
|
+
* - Set timer.
|
|
2287
|
+
* - Cancel timer.
|
|
2288
|
+
*/
|
|
2289
|
+
type UseTimeout = (
|
|
2290
|
+
/**
|
|
2291
|
+
* @zh 间隔时间
|
|
2292
|
+
* @en wait time
|
|
2293
|
+
*/
|
|
2294
|
+
ms?: number
|
|
2295
|
+
/**
|
|
2296
|
+
* @zh 可选参数
|
|
2297
|
+
* @en optional param
|
|
2298
|
+
*/ , options?: UseTimeoutOptions) => Stoppable;
|
|
2299
|
+
/**
|
|
2300
|
+
* @title UseTimeoutOptions
|
|
2301
|
+
*/
|
|
2302
|
+
interface UseTimeoutOptions {
|
|
2303
|
+
/**
|
|
2304
|
+
* @en Start the timer immediate after calling this function
|
|
2305
|
+
* @zh 立即设置定时器
|
|
2306
|
+
* @defaultValue false
|
|
2307
|
+
*/
|
|
2308
|
+
immediate?: boolean;
|
|
839
2309
|
}
|
|
840
|
-
declare function useEyeDropper(): readonly [boolean, (options?: EyeDropperOpenOptions) => Promise<EyeDropperOpenReturnType>];
|
|
841
|
-
type UseEyeDropperReturn = ReturnType<typeof useEyeDropper>;
|
|
842
2310
|
|
|
843
|
-
|
|
844
|
-
|
|
2311
|
+
declare const useTimeout: UseTimeout;
|
|
2312
|
+
|
|
2313
|
+
/**
|
|
2314
|
+
* @title useTimeoutFn
|
|
2315
|
+
* @returns 包含以下元素的元组:
|
|
2316
|
+
* - 是否等待定时器执行。
|
|
2317
|
+
* - 设置定时器。
|
|
2318
|
+
* - 取消定时器。
|
|
2319
|
+
* @returns_en A tuple with the following elements:
|
|
2320
|
+
* - Whether to wait for the timer to execute.
|
|
2321
|
+
* - Set timer.
|
|
2322
|
+
* - Cancel timer.
|
|
2323
|
+
*/
|
|
2324
|
+
type UseTimeoutFn = (
|
|
2325
|
+
/**
|
|
2326
|
+
* @zh 回调
|
|
2327
|
+
* @en callback
|
|
2328
|
+
*/
|
|
2329
|
+
cb: (...args: unknown[]) => any,
|
|
2330
|
+
/**
|
|
2331
|
+
* @zh 间隔时间
|
|
2332
|
+
* @en wait time
|
|
2333
|
+
*/
|
|
2334
|
+
interval: number,
|
|
2335
|
+
/**
|
|
2336
|
+
* @zh 可选参数
|
|
2337
|
+
* @en optional param
|
|
2338
|
+
*/
|
|
2339
|
+
options?: UseTimeoutFnOptions) => Stoppable;
|
|
2340
|
+
/**
|
|
2341
|
+
* @title UseTimeoutFnOptions
|
|
2342
|
+
*/
|
|
2343
|
+
interface UseTimeoutFnOptions {
|
|
2344
|
+
/**
|
|
2345
|
+
* @en Start the timer immediate after calling this function
|
|
2346
|
+
* @zh 立即设置定时器
|
|
2347
|
+
* @defaultValue false
|
|
2348
|
+
*/
|
|
2349
|
+
immediate?: boolean;
|
|
2350
|
+
}
|
|
2351
|
+
|
|
2352
|
+
/**
|
|
2353
|
+
* Wrapper for `setTimeout` with controls.
|
|
2354
|
+
*
|
|
2355
|
+
* @param cb
|
|
2356
|
+
* @param interval
|
|
2357
|
+
* @param options
|
|
2358
|
+
*/
|
|
2359
|
+
declare const useTimeoutFn: UseTimeoutFn;
|
|
2360
|
+
|
|
2361
|
+
/**
|
|
2362
|
+
* @title useTitle
|
|
2363
|
+
*/
|
|
2364
|
+
type UseTitle = (
|
|
2365
|
+
/**
|
|
2366
|
+
* @zh 标题
|
|
2367
|
+
* @en title
|
|
2368
|
+
*/
|
|
2369
|
+
title: string) => void;
|
|
845
2370
|
|
|
846
|
-
declare
|
|
847
|
-
target: BasicTarget;
|
|
848
|
-
latency?: number;
|
|
849
|
-
onSingleClick?: (e?: MouseEvent | TouchEvent) => void;
|
|
850
|
-
onDoubleClick?: (e?: MouseEvent | TouchEvent) => void;
|
|
851
|
-
}): void;
|
|
2371
|
+
declare const useTitle: UseTitle;
|
|
852
2372
|
|
|
853
|
-
|
|
2373
|
+
/**
|
|
2374
|
+
* @title useToggle
|
|
2375
|
+
* @returns 包含以下元素的元组:
|
|
2376
|
+
* - 布尔状态的当前值。
|
|
2377
|
+
* - 切换布尔状态值的函数。
|
|
2378
|
+
* @returns_en A tuple with the following elements:
|
|
2379
|
+
* - The current value of the bool state.
|
|
2380
|
+
* - A function to update the value of the bool state.
|
|
2381
|
+
*/
|
|
2382
|
+
type UseToggle = (
|
|
2383
|
+
/**
|
|
2384
|
+
* @zh 初始值
|
|
2385
|
+
* @en initialValue
|
|
2386
|
+
*/
|
|
2387
|
+
initialValue: boolean) => [boolean, (nextValue?: any) => void];
|
|
854
2388
|
|
|
855
|
-
|
|
856
|
-
declare function useMeasure(target: BasicTarget, options?: ResizeObserverOptions): readonly [UseMeasureRect, () => void];
|
|
2389
|
+
declare const useToggle: UseToggle;
|
|
857
2390
|
|
|
858
|
-
declare
|
|
2391
|
+
declare const useUnmount: (fn: () => void) => void;
|
|
859
2392
|
|
|
860
|
-
declare
|
|
2393
|
+
declare const useUpdate: () => () => void;
|
|
861
2394
|
|
|
862
|
-
|
|
2395
|
+
declare const useUpdateEffect: typeof useEffect | typeof react.useLayoutEffect;
|
|
2396
|
+
|
|
2397
|
+
declare const useUpdateLayoutEffect: typeof react.useEffect | typeof useLayoutEffect;
|
|
2398
|
+
|
|
2399
|
+
/**
|
|
2400
|
+
* @title useWebNotification
|
|
2401
|
+
*/
|
|
2402
|
+
type UseWebNotification = (
|
|
2403
|
+
/**
|
|
2404
|
+
* @zh 自动请求权限
|
|
2405
|
+
* @en auto request permission
|
|
2406
|
+
*/
|
|
2407
|
+
requestPermissions?: boolean) => UseWebNotificationReturn;
|
|
2408
|
+
/**
|
|
2409
|
+
* @title UseWebNotificationReturn
|
|
2410
|
+
*/
|
|
2411
|
+
interface UseWebNotificationReturn {
|
|
863
2412
|
/**
|
|
864
|
-
*
|
|
865
|
-
* @
|
|
2413
|
+
* @zh 浏览器是否支持
|
|
2414
|
+
* @en whether browser support
|
|
866
2415
|
*/
|
|
867
|
-
observe?: boolean;
|
|
868
|
-
}
|
|
869
|
-
declare function useCssVar<T extends HTMLElement = HTMLElement>(prop: string, target: BasicTarget<T>, defaultValue?: string, options?: UseCssVarOptions): readonly [string, (v: string) => void];
|
|
870
|
-
|
|
871
|
-
declare function useWebNotification(requestPermissions?: boolean): {
|
|
872
2416
|
readonly isSupported: boolean;
|
|
873
|
-
|
|
2417
|
+
/**
|
|
2418
|
+
* @zh 展示函数
|
|
2419
|
+
* @en show function
|
|
2420
|
+
*/
|
|
2421
|
+
readonly show: UseWebNotificationShow;
|
|
2422
|
+
/**
|
|
2423
|
+
* @zh 关闭函数
|
|
2424
|
+
* @en close function
|
|
2425
|
+
*/
|
|
874
2426
|
readonly close: () => void;
|
|
2427
|
+
/**
|
|
2428
|
+
* @zh 请求权限函数
|
|
2429
|
+
* @en request permissions function
|
|
2430
|
+
*/
|
|
875
2431
|
readonly ensurePermissions: () => Promise<boolean | undefined>;
|
|
876
|
-
|
|
2432
|
+
/**
|
|
2433
|
+
* @zh 权限状态
|
|
2434
|
+
* @en permission status
|
|
2435
|
+
*/
|
|
2436
|
+
readonly permissionGranted: React.MutableRefObject<boolean>;
|
|
2437
|
+
}
|
|
2438
|
+
/**
|
|
2439
|
+
* @title UseWebNotificationShow
|
|
2440
|
+
*/
|
|
2441
|
+
type UseWebNotificationShow = (
|
|
2442
|
+
/**
|
|
2443
|
+
* @zh 通知标题
|
|
2444
|
+
* @en notification title
|
|
2445
|
+
*/
|
|
2446
|
+
title: string,
|
|
2447
|
+
/**
|
|
2448
|
+
* @zh 通知选项
|
|
2449
|
+
* @en options passed to `NotificationOptions`
|
|
2450
|
+
*/
|
|
2451
|
+
options?: NotificationOptions) => Notification | undefined;
|
|
2452
|
+
|
|
2453
|
+
declare const useWebNotification: UseWebNotification;
|
|
2454
|
+
|
|
2455
|
+
declare const useWindowsFocus: (defauleValue?: boolean) => boolean;
|
|
2456
|
+
|
|
2457
|
+
/**
|
|
2458
|
+
* @title useWindowScroll
|
|
2459
|
+
* @returns {UseWindowScrollState}
|
|
2460
|
+
*/
|
|
2461
|
+
type UseWindowScroll = () => UseWindowScrollState;
|
|
2462
|
+
/**
|
|
2463
|
+
* @title useWindowScrollState
|
|
2464
|
+
*/
|
|
2465
|
+
interface UseWindowScrollState {
|
|
2466
|
+
/**
|
|
2467
|
+
* @zh 水平滚动的像素值
|
|
2468
|
+
* @en pixel value of horizontal scrolling
|
|
2469
|
+
*/
|
|
2470
|
+
x: number;
|
|
2471
|
+
/**
|
|
2472
|
+
* @zh 垂直滚动的像素值
|
|
2473
|
+
* @en pixel value of vertical scrolling
|
|
2474
|
+
*/
|
|
2475
|
+
y: number;
|
|
2476
|
+
}
|
|
2477
|
+
|
|
2478
|
+
declare const useWindowScroll: () => UseWindowScrollState;
|
|
2479
|
+
|
|
2480
|
+
/**
|
|
2481
|
+
* @title useWindowSize
|
|
2482
|
+
* @returns_en A object with the following elements:
|
|
2483
|
+
* - width: The current window width.
|
|
2484
|
+
* - height: The current window height.
|
|
2485
|
+
* @returns 包含以下元素的对象:
|
|
2486
|
+
* - width:当前视窗宽度。
|
|
2487
|
+
* - height: 当前视窗高度。
|
|
2488
|
+
*/
|
|
2489
|
+
type UseWindowSize = () => {
|
|
2490
|
+
readonly width: number;
|
|
2491
|
+
readonly height: number;
|
|
2492
|
+
};
|
|
2493
|
+
|
|
2494
|
+
declare const useWindowSize: UseWindowSize;
|
|
2495
|
+
|
|
2496
|
+
/**
|
|
2497
|
+
* @title useClipBoard
|
|
2498
|
+
* @returns_en Returns a readonly tuple.
|
|
2499
|
+
* @returns 返回只读元组.
|
|
2500
|
+
*/
|
|
2501
|
+
type UseClipboard = () => readonly [string, (txt: string) => Promise<void>];
|
|
2502
|
+
|
|
2503
|
+
declare const useClipboard: UseClipboard;
|
|
2504
|
+
|
|
2505
|
+
/**
|
|
2506
|
+
* @title useDocumentVisiblity
|
|
2507
|
+
* @returns_en document visibility
|
|
2508
|
+
* @returns 文档可见性
|
|
2509
|
+
*/
|
|
2510
|
+
type UseDocumentVisibility = (
|
|
2511
|
+
/**
|
|
2512
|
+
* @zh 默认值
|
|
2513
|
+
* @en default value
|
|
2514
|
+
*/
|
|
2515
|
+
defaultValue?: DocumentVisibilityState) => DocumentVisibilityState;
|
|
2516
|
+
|
|
2517
|
+
/**
|
|
2518
|
+
* @title useEventListener
|
|
2519
|
+
*/
|
|
2520
|
+
type UseEventListener = (
|
|
2521
|
+
/**
|
|
2522
|
+
* @zh 事件名称
|
|
2523
|
+
* @en event name
|
|
2524
|
+
*/
|
|
2525
|
+
eventName: string,
|
|
2526
|
+
/**
|
|
2527
|
+
* @zh 事件处理器
|
|
2528
|
+
* @en event handler
|
|
2529
|
+
*/
|
|
2530
|
+
handler: (event: any) => void,
|
|
2531
|
+
/**
|
|
2532
|
+
* @zh dom元素
|
|
2533
|
+
* @en dom element
|
|
2534
|
+
* @defaultValue `window`
|
|
2535
|
+
*/
|
|
2536
|
+
element?: HTMLElement | Element | Window | Document | EventTarget | null | undefined,
|
|
2537
|
+
/**
|
|
2538
|
+
* @zh 监听选项
|
|
2539
|
+
* @en listener options
|
|
2540
|
+
*/
|
|
2541
|
+
options?: boolean | AddEventListenerOptions | undefined) => void;
|
|
2542
|
+
|
|
2543
|
+
/**
|
|
2544
|
+
* @title useFavicon
|
|
2545
|
+
*/
|
|
2546
|
+
type UseFavicon = (
|
|
2547
|
+
/**
|
|
2548
|
+
* @zh 图标路径
|
|
2549
|
+
* @en icon href
|
|
2550
|
+
*/
|
|
2551
|
+
href: string,
|
|
2552
|
+
/**
|
|
2553
|
+
* @zh 基础 url
|
|
2554
|
+
* @en base url
|
|
2555
|
+
*/
|
|
2556
|
+
baseUrl?: string,
|
|
2557
|
+
/**
|
|
2558
|
+
* @zh 设置 link 标签的 rel 属性
|
|
2559
|
+
* @en set rel attribute to link element
|
|
2560
|
+
* @defaultValue icon
|
|
2561
|
+
*/
|
|
2562
|
+
rel?: string) => void;
|
|
2563
|
+
|
|
2564
|
+
/**
|
|
2565
|
+
* @title useHover
|
|
2566
|
+
*/
|
|
2567
|
+
type UseHover = <T extends Element = HTMLDivElement>(
|
|
2568
|
+
/**
|
|
2569
|
+
* @zh dom对象
|
|
2570
|
+
* @en dom element
|
|
2571
|
+
*/
|
|
2572
|
+
target: RefObject<T>) => boolean;
|
|
2573
|
+
|
|
2574
|
+
/**
|
|
2575
|
+
* @title useIntersectionObserver
|
|
2576
|
+
* @returns 停止监听函数
|
|
2577
|
+
* @returns_en stop listening function
|
|
2578
|
+
*/
|
|
2579
|
+
type UseIntersectionObserver = (
|
|
2580
|
+
/**
|
|
2581
|
+
* @zh dom元素
|
|
2582
|
+
* @en dom element
|
|
2583
|
+
*/
|
|
2584
|
+
target: RefObject<Element>,
|
|
2585
|
+
/**
|
|
2586
|
+
* @zh 回调
|
|
2587
|
+
* @en callback
|
|
2588
|
+
*/
|
|
2589
|
+
callback: IntersectionObserverCallback,
|
|
2590
|
+
/**
|
|
2591
|
+
* @zh 传递给 `IntersectionObserver` 的参数
|
|
2592
|
+
* @en options passed to `IntersectionObserver`
|
|
2593
|
+
*/
|
|
2594
|
+
options?: IntersectionObserverInit) => () => void;
|
|
2595
|
+
|
|
2596
|
+
/**
|
|
2597
|
+
* @title useLocalStorage
|
|
2598
|
+
* @returns 包含以下元素的元组:
|
|
2599
|
+
* - localStorage 的当前值。
|
|
2600
|
+
* - 更新 localStorage 值的函数。
|
|
2601
|
+
* @returns_en A tuple with the following elements:
|
|
2602
|
+
* - The current value of the localStorage.
|
|
2603
|
+
* - A function to update the value of the localStorage.
|
|
2604
|
+
*/
|
|
2605
|
+
type UseLocalStorage = <T extends string | number | boolean | object | null>(
|
|
2606
|
+
/**
|
|
2607
|
+
* @zh 键值
|
|
2608
|
+
* @en key
|
|
2609
|
+
*/
|
|
2610
|
+
key: string,
|
|
2611
|
+
/**
|
|
2612
|
+
* @zh 默认值
|
|
2613
|
+
* @en default value
|
|
2614
|
+
*/
|
|
2615
|
+
defaultValue?: T,
|
|
2616
|
+
/**
|
|
2617
|
+
* @zh 可选参数
|
|
2618
|
+
* @en optional params
|
|
2619
|
+
*/
|
|
2620
|
+
options?: UseLocalStorageOptions<T>) => readonly [T | null, Dispatch<SetStateAction<T | null>>];
|
|
2621
|
+
/**
|
|
2622
|
+
* @title UseLocalStorageOptions
|
|
2623
|
+
*/
|
|
2624
|
+
interface UseLocalStorageOptions<T> {
|
|
2625
|
+
/**
|
|
2626
|
+
* @en Custom data serialization
|
|
2627
|
+
* @zh 自定义数据序列化
|
|
2628
|
+
*/
|
|
2629
|
+
serializer?: UseLocalStorageSerializer<T>;
|
|
2630
|
+
/**
|
|
2631
|
+
* @en On error callback
|
|
2632
|
+
* @zh 错误回调
|
|
2633
|
+
* @defaultValue `console.error`
|
|
2634
|
+
*/
|
|
2635
|
+
onError?: (error: unknown) => void;
|
|
2636
|
+
/**
|
|
2637
|
+
* @en set to storage when storage doesn't has data in effect, fallback to `defaultValue`
|
|
2638
|
+
* @zh 当副作用执行的时候没有在 storage 中获取到数据时设置,默认会设置 `defaultValue`
|
|
2639
|
+
*/
|
|
2640
|
+
effectStorageValue?: T | (() => T);
|
|
2641
|
+
}
|
|
2642
|
+
/**
|
|
2643
|
+
* @title UseLocalStorageSerializer
|
|
2644
|
+
*/
|
|
2645
|
+
interface UseLocalStorageSerializer<T> {
|
|
2646
|
+
/**
|
|
2647
|
+
* @en Custom data read
|
|
2648
|
+
* @zh 自定义数据读取
|
|
2649
|
+
*/
|
|
2650
|
+
read: (raw: string) => T;
|
|
2651
|
+
/**
|
|
2652
|
+
* @en Custom data write
|
|
2653
|
+
* @zh 自定义数据写入
|
|
2654
|
+
*/
|
|
2655
|
+
write: (value: T) => string;
|
|
2656
|
+
}
|
|
2657
|
+
|
|
2658
|
+
/**
|
|
2659
|
+
* @title useMountedState
|
|
2660
|
+
* @returns 组件的挂载状态
|
|
2661
|
+
* @returns_en component mounted state
|
|
2662
|
+
*/
|
|
2663
|
+
type UseMountedState = () => () => boolean;
|
|
2664
|
+
|
|
2665
|
+
/**
|
|
2666
|
+
* @title usePageLeave
|
|
2667
|
+
* @returns 鼠标是否离开页面
|
|
2668
|
+
* @returns_en whether the mouse leave page
|
|
2669
|
+
*/
|
|
2670
|
+
type UsePageLeave = () => boolean;
|
|
2671
|
+
|
|
2672
|
+
/**
|
|
2673
|
+
* @title usePreferredDark
|
|
2674
|
+
* @returns 是否偏好黑色
|
|
2675
|
+
* @returns_en whether prefer dark
|
|
2676
|
+
*/
|
|
2677
|
+
type UsePreferredDark = (
|
|
2678
|
+
/**
|
|
2679
|
+
* @zh 默认值
|
|
2680
|
+
* @en defaule value
|
|
2681
|
+
*/
|
|
2682
|
+
defaultState?: boolean) => boolean;
|
|
2683
|
+
|
|
2684
|
+
/**
|
|
2685
|
+
* @title usePrevious
|
|
2686
|
+
* @returns 更新前的值
|
|
2687
|
+
* @returns_en previous value
|
|
2688
|
+
*/
|
|
2689
|
+
type UsePrevious = <T>(
|
|
2690
|
+
/**
|
|
2691
|
+
* @zh 状态值
|
|
2692
|
+
* @en state value
|
|
2693
|
+
*/
|
|
2694
|
+
state: T) => T | undefined;
|
|
2695
|
+
|
|
2696
|
+
/**
|
|
2697
|
+
* @title useRafState
|
|
2698
|
+
* @returns 包含以下元素的元组:
|
|
2699
|
+
* - state 的当前值。
|
|
2700
|
+
* - 在 `requestAnimationFrame` 中更新 state 值的函数。
|
|
2701
|
+
* @returns_en A tuple with the following elements:
|
|
2702
|
+
* - the state value
|
|
2703
|
+
* - a function to update state in `requestAnimationFrame`
|
|
2704
|
+
*/
|
|
2705
|
+
type UseRafState = <S>(
|
|
2706
|
+
/**
|
|
2707
|
+
* @zh 状态值
|
|
2708
|
+
* @en state value
|
|
2709
|
+
*/
|
|
2710
|
+
initialState: S | (() => S)) => readonly [S, Dispatch<SetStateAction<S>>];
|
|
2711
|
+
|
|
2712
|
+
/**
|
|
2713
|
+
* @title useReducedMotion
|
|
2714
|
+
* @returns 是否偏好减少动画
|
|
2715
|
+
* @returns_en whether prefer reduced motion
|
|
2716
|
+
*/
|
|
2717
|
+
type UseReducedMotion = (
|
|
2718
|
+
/**
|
|
2719
|
+
* @zh 默认值
|
|
2720
|
+
* @en default value
|
|
2721
|
+
*/
|
|
2722
|
+
defaultState?: boolean) => boolean;
|
|
2723
|
+
|
|
2724
|
+
/**
|
|
2725
|
+
* @title useResizeObserver
|
|
2726
|
+
*/
|
|
2727
|
+
type UseResizeObserver = (
|
|
2728
|
+
/**
|
|
2729
|
+
* @zh dom元素
|
|
2730
|
+
* @en dom element
|
|
2731
|
+
*/
|
|
2732
|
+
target: RefObject<Element>,
|
|
2733
|
+
/**
|
|
2734
|
+
* @zh 回调
|
|
2735
|
+
* @en callback
|
|
2736
|
+
*/
|
|
2737
|
+
callback: ResizeObserverCallback,
|
|
2738
|
+
/**
|
|
2739
|
+
* @zh `resizeObserver` 参数
|
|
2740
|
+
* @en options passed to `resizeObserver`
|
|
2741
|
+
*/
|
|
2742
|
+
options?: ResizeObserverOptions) => () => void;
|
|
2743
|
+
|
|
2744
|
+
/**
|
|
2745
|
+
* @title useScreenSafeArea
|
|
2746
|
+
* @returns 包含以下元素的元组:
|
|
2747
|
+
* - 顶部安全距离。
|
|
2748
|
+
* - 右边安全距离。
|
|
2749
|
+
* - 底部安全距离。
|
|
2750
|
+
* - 左边安全距离,
|
|
2751
|
+
* - 手动更新函数
|
|
2752
|
+
* @returns_en A tuple with the following elements:
|
|
2753
|
+
* - top safe distance
|
|
2754
|
+
* - right safe distance
|
|
2755
|
+
* - bottom safe distance
|
|
2756
|
+
* - left safe distance
|
|
2757
|
+
* - munual update function
|
|
2758
|
+
*/
|
|
2759
|
+
type UseScreenSafeArea = () => readonly [string, string, string, string, DebouncedFunc$1<() => void>];
|
|
2760
|
+
|
|
2761
|
+
/**
|
|
2762
|
+
* @title useSessionStorage
|
|
2763
|
+
* @returns 包含以下元素的元组:
|
|
2764
|
+
* - sessionStorage 的当前值。
|
|
2765
|
+
* - 更新 sessionStorage 值的函数。
|
|
2766
|
+
* @returns_en A tuple with the following elements:
|
|
2767
|
+
* - The current value of the sessionStorage.
|
|
2768
|
+
* - A function to update the value of the sessionStorage.
|
|
2769
|
+
*/
|
|
2770
|
+
type UseSessionStorage = <T extends string | number | boolean | object | null>(
|
|
2771
|
+
/**
|
|
2772
|
+
* @zh 键值
|
|
2773
|
+
* @en key
|
|
2774
|
+
*/
|
|
2775
|
+
key: string,
|
|
2776
|
+
/**
|
|
2777
|
+
* @zh 默认值
|
|
2778
|
+
* @en default value
|
|
2779
|
+
*/
|
|
2780
|
+
defaultValue?: T,
|
|
2781
|
+
/**
|
|
2782
|
+
* @zh 可选参数
|
|
2783
|
+
* @en optional params
|
|
2784
|
+
*/
|
|
2785
|
+
options?: UseSessionStorageOptions<T>) => readonly [T | null, Dispatch<SetStateAction<T | null>>];
|
|
2786
|
+
/**
|
|
2787
|
+
* @title UseSessionStorageOptions
|
|
2788
|
+
*/
|
|
2789
|
+
interface UseSessionStorageOptions<T> {
|
|
2790
|
+
/**
|
|
2791
|
+
* @en Custom data serialization
|
|
2792
|
+
* @zh 自定义数据序列化
|
|
2793
|
+
*/
|
|
2794
|
+
serializer?: UseSessionStorageSerializer<T>;
|
|
2795
|
+
/**
|
|
2796
|
+
* @en On error callback
|
|
2797
|
+
* @zh 错误回调
|
|
2798
|
+
* @defaultValue `console.error`
|
|
2799
|
+
*/
|
|
2800
|
+
onError?: (error: unknown) => void;
|
|
2801
|
+
/**
|
|
2802
|
+
* @en set to storage when storage doesn't has data in effect, fallback to `defaultValue`
|
|
2803
|
+
* @zh 当副作用执行的时候没有在 storage 中获取到数据时设置,默认会设置 `defaultValue`
|
|
2804
|
+
*/
|
|
2805
|
+
effectStorageValue?: T | (() => T);
|
|
2806
|
+
}
|
|
2807
|
+
/**
|
|
2808
|
+
* @title UseSessionStorageSerializer
|
|
2809
|
+
*/
|
|
2810
|
+
interface UseSessionStorageSerializer<T> {
|
|
2811
|
+
/**
|
|
2812
|
+
* @en Custom data read
|
|
2813
|
+
* @zh 自定义数据读取
|
|
2814
|
+
*/
|
|
2815
|
+
read: (raw: string) => T;
|
|
2816
|
+
/**
|
|
2817
|
+
* @en Custom data write
|
|
2818
|
+
* @zh 自定义数据写入
|
|
2819
|
+
*/
|
|
2820
|
+
write: (value: T) => string;
|
|
2821
|
+
}
|
|
2822
|
+
|
|
2823
|
+
/**
|
|
2824
|
+
* @title useSupported
|
|
2825
|
+
* @returns 浏览器是否支持
|
|
2826
|
+
* @returns_en whether the browser support
|
|
2827
|
+
*/
|
|
2828
|
+
type UseSupported = (
|
|
2829
|
+
/**
|
|
2830
|
+
* @zh 测试回调
|
|
2831
|
+
* @en test callback
|
|
2832
|
+
*/
|
|
2833
|
+
callback: () => unknown,
|
|
2834
|
+
/**
|
|
2835
|
+
* @zh 使用 useLayoutEffect来进行测试
|
|
2836
|
+
* @en use useLayoutEffect to test
|
|
2837
|
+
* @defaultValue false
|
|
2838
|
+
*/
|
|
2839
|
+
sync?: boolean) => boolean;
|
|
2840
|
+
|
|
2841
|
+
/**
|
|
2842
|
+
* @title useThrottleFn
|
|
2843
|
+
* @returns_en A object with the following elements:
|
|
2844
|
+
* - run: exec function.
|
|
2845
|
+
* - cancel: cancel exec function.
|
|
2846
|
+
* - flush: immediately exec function
|
|
2847
|
+
* @returns 具有以下元素的对象:
|
|
2848
|
+
* - run:执行函数。
|
|
2849
|
+
* - cancel:取消执行函数。
|
|
2850
|
+
* - flush: 立即执行函数
|
|
2851
|
+
*/
|
|
2852
|
+
type UseThrottleFn = <T extends (...args: any) => any>(
|
|
2853
|
+
/**
|
|
2854
|
+
* @zh 要节流的函数
|
|
2855
|
+
* @en Throttle function
|
|
2856
|
+
*/
|
|
2857
|
+
fn: T,
|
|
2858
|
+
/**
|
|
2859
|
+
* @zh 间隔时间
|
|
2860
|
+
* @en wait time
|
|
2861
|
+
*/
|
|
2862
|
+
wait?: number,
|
|
2863
|
+
/**
|
|
2864
|
+
* @zh 传递给 `lodash.throttle` 的属性
|
|
2865
|
+
* @en options passed to `lodash.throttle`
|
|
2866
|
+
*/
|
|
2867
|
+
options?: ThrottleSettings$1) => {
|
|
2868
|
+
run: DebouncedFunc<(...args_0: Parameters<T>) => ReturnType<T>>;
|
|
2869
|
+
cancel: () => void;
|
|
2870
|
+
flush: any;
|
|
877
2871
|
};
|
|
878
2872
|
|
|
879
|
-
declare function useLocationSelector<R>(selector: (location: Location) => R,
|
|
880
2873
|
/**
|
|
881
|
-
* @
|
|
882
|
-
|
|
2874
|
+
* @title useUnmount
|
|
2875
|
+
*/
|
|
2876
|
+
type UseUnmount = (
|
|
2877
|
+
/**
|
|
2878
|
+
* @zh 清理函数
|
|
2879
|
+
* @en clear function
|
|
2880
|
+
*/
|
|
2881
|
+
fn: () => void) => void;
|
|
2882
|
+
|
|
2883
|
+
/**
|
|
2884
|
+
* @title useUpdate
|
|
2885
|
+
* @returns 强制更新函数
|
|
2886
|
+
* @returns_en rerender trigger function
|
|
2887
|
+
*/
|
|
2888
|
+
type UseUpdate = () => () => void;
|
|
2889
|
+
|
|
2890
|
+
/**
|
|
2891
|
+
* @title useWindowsFocus
|
|
2892
|
+
* @returns 窗口是否聚焦
|
|
2893
|
+
* @returns_en whether window focus
|
|
2894
|
+
*/
|
|
2895
|
+
type UseWindowsFocus = (
|
|
2896
|
+
/**
|
|
2897
|
+
* @zh 默认值
|
|
2898
|
+
* @en defauleValue
|
|
883
2899
|
*/
|
|
884
|
-
|
|
2900
|
+
defauleValue?: boolean) => boolean;
|
|
885
2901
|
|
|
886
|
-
export { type ColorScheme, type Contrast, type
|
|
2902
|
+
export { type ColorScheme, type Contrast, type DepsEqualFnType, type EventType, type INetworkInformation, type IUseNetworkState, type KeyModifier, type UseActiveElement, type UseAsyncEffect, type UseClickOutside, type UseClipboard, type UseCookie, type UseCookieState, type UseCountDown, type UseCounter, type UseCssVar, type UseCssVarOptions, type UseCustomCompareEffect, type UseCycleList, type UseDarkMode, type UseDarkOptions, type UseDebounce, type UseDebounceFn, type UseDeepCompareEffect, type UseDocumentVisibility, type UseDoubleClick, type UseDoubleClickProps, type UseDraggable, type UseDraggableOptions, type UseDropZone, type UseElementBounding, type UseElementBoundingOptions, type UseElementBoundingReturn, type UseElementSize, type UseElementVisibility, type UseEvent, type UseEventEmitter, type UseEventEmitterDisposable, type UseEventEmitterEvent, type UseEventEmitterEventOnce, type UseEventEmitterListener, type UseEventEmitterReturn, type UseEventListener, type UseEyeDropper, type UseEyeDropperOpenOptions, type UseEyeDropperOpenReturnType, type UseFavicon, type UseFileDialog, type UseFileDialogOptions, type UseFirstMountState, type UseFocus, type UseFps, type UseFpsOptions, type UseFullScreenOptions, type UseFullscreen, type UseGeolocation, type UseHover, type UseIdle, type UseInfiniteScroll, type UseInfiniteScrollArrivedState, type UseInfiniteScrollDirection, type UseInfiniteScrollLoadMore, type UseInfiniteScrollOptions, type UseIntersectionObserver, type UseInterval, type UseIntervalOptions, type UseKeyModifier, type UseLatest, type UseLocalStorage, type UseLocalStorageOptions, type UseLocalStorageSerializer, type UseLocationSelector, type UseLongPress, type UseLongPressOptions, type UseMeasure, type UseMeasureRect, type UseMediaDeviceOptions, type UseMediaDevices, type UseMediaQuery, type UseModifierOptions, type UseMount, type UseMountedState, type UseMouse, type UseMouseCursorState, type UseMousePressed, type UseMousePressedOptions, type UseMousePressedSourceType, type UseMutationObserver, type UseNetwork, type UseObjectUrl, type UseOnline, type UseOrientation, type UseOrientationLockType, type UseOrientationState, type UseOrientationType, type UsePageLeave, type UsePermission, type UsePermissionDescriptorNamePolyfill, type UsePermissionGeneralPermissionDescriptor, type UsePermissionState, type UsePreferredColorScheme, type UsePreferredContrast, type UsePreferredDark, type UsePrevious, type UseRafFn, type UseRafState, type UseReducedMotion, type UseResizeObserver, type UseScreenSafeArea, type UseScriptTag, type UseScriptTagOptions, type UseScriptTagStatus, type UseScroll, type UseScrollArrivedState, type UseScrollDirection, type UseScrollIntoView, type UseScrollIntoViewAnimation, type UseScrollIntoViewParams, type UseScrollLock, type UseScrollOffset, type UseScrollOptions, type UseSessionStorage, type UseSessionStorageOptions, type UseSessionStorageSerializer, type UseSetState, type UseSticky, type UseStickyParams, type UseSupported, type UseTextDirection, type UseTextDirectionOptions, type UseTextDirectionValue, type UseTextSelection, type UseThrottle, type UseThrottleFn, type UseTimeout, type UseTimeoutFn, type UseTimeoutFnOptions, type UseTimeoutOptions, type UseTitle, type UseToggle, type UseUnmount, type UseUpdate, type UseWebNotification, type UseWebNotificationReturn, type UseWebNotificationShow, type UseWindowScroll, type UseWindowScrollState, type UseWindowSize, type UseWindowsFocus, defaultOptions, useActiveElement, useAsyncEffect, useClickOutside, useClipboard, useCookie, useCountDown, useCounter, useCssVar, useCustomCompareEffect, useCycleList, useDarkMode, useDebounce, useDebounceFn, useDeepCompareEffect, useDocumentVisibility, useDoubleClick, useDraggable, useDropZone, useElementBounding, useElementSize, useElementVisibility, useEvent, useEventEmitter, useEventListener, useEyeDropper, useFavicon, useFileDialog, useFirstMountState, useFocus, useFps, useFullscreen, useGeolocation, useHover, useIdle, useInfiniteScroll, useIntersectionObserver, useInterval, useIsomorphicLayoutEffect, useKeyModifier, useLatest, useLocalStorage, useLocationSelector, useLongPress, useMeasure, useMediaDevices, useMediaQuery, useMount, useMountedState, useMouse, useMousePressed, useMutationObserver, useNetwork, useObjectUrl, useOnceEffect, useOnceLayoutEffect, useOnline, useOrientation, usePageLeave, usePermission, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePrevious, useRafFn, useRafState, useReducedMotion, useResizeObserver, useScreenSafeArea, useScriptTag, useScroll, useScrollIntoView, useScrollLock, useSessionStorage, useSetState, useSticky, useSupported, useTextDirection, useTextSelection, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useTitle, useToggle, useUnmount, useUpdate, useUpdateEffect, useUpdateLayoutEffect, useWebNotification, useWindowScroll, useWindowSize, useWindowsFocus };
|