indicator-ui 1.0.10 → 1.0.12
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 +5 -5
- package/dist/index.js +1344 -1338
- package/dist/types/src/hooks/useLoading.d.ts +45 -2
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
type FunBaseType = (...args: any) => any;
|
|
2
|
-
type
|
|
2
|
+
type FunctionGeneric = FunBaseType | FunBaseType[];
|
|
3
|
+
type PropsType<T extends FunctionGeneric> = [
|
|
3
4
|
fun: T,
|
|
4
5
|
initState?: boolean
|
|
5
6
|
];
|
|
@@ -8,10 +9,52 @@ type ActionsType = {
|
|
|
8
9
|
stopLoading: () => void;
|
|
9
10
|
getIsLoading: () => boolean;
|
|
10
11
|
};
|
|
11
|
-
type FunReturnType<T extends
|
|
12
|
+
type FunReturnType<T extends FunctionGeneric> = [
|
|
12
13
|
fun: T,
|
|
13
14
|
isLoading: boolean,
|
|
14
15
|
actions: ActionsType
|
|
15
16
|
];
|
|
17
|
+
/**
|
|
18
|
+
* Хук для управления состоянием загрузки при выполнении функций.
|
|
19
|
+
* Оборачивает переданную функцию (или массив функций) в декоратор, который автоматически
|
|
20
|
+
* устанавливает состояние загрузки перед выполнением и сбрасывает его после завершения.
|
|
21
|
+
*
|
|
22
|
+
* @template T - Тип функции или массива функций
|
|
23
|
+
*
|
|
24
|
+
* @param {T} fun - Функция или массив функций для декорирования
|
|
25
|
+
* @param {boolean} [initState=false] - Начальное состояние загрузки
|
|
26
|
+
*
|
|
27
|
+
* @returns {[T, boolean, ActionsType]} Кортеж из трёх элементов:
|
|
28
|
+
* - Декорированная функция(и) с автоматическим управлением состоянием загрузки
|
|
29
|
+
* - Текущее реактивное состояние загрузки (boolean)
|
|
30
|
+
* - Объект с действиями для ручного управления состоянием:
|
|
31
|
+
* - `startLoading()` - установить состояние загрузки в true
|
|
32
|
+
* - `stopLoading()` - установить состояние загрузки в false
|
|
33
|
+
* - `getIsLoading()` - получить текущее состояние загрузки
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // Использование с одной функцией
|
|
37
|
+
* const [fetchData, isLoading, {startLoading, stopLoading}] = useLoading(
|
|
38
|
+
* async () => {
|
|
39
|
+
* const response = await fetch('/api/data');
|
|
40
|
+
* return response.json();
|
|
41
|
+
* }
|
|
42
|
+
* );
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* // Использование с массивом функций
|
|
46
|
+
* const [
|
|
47
|
+
* [handleSubmit, handleDelete],
|
|
48
|
+
* isLoading,
|
|
49
|
+
* actions
|
|
50
|
+
* ] = useLoading([
|
|
51
|
+
* async (data) => await api.submit(data),
|
|
52
|
+
* async (id) => await api.delete(id)
|
|
53
|
+
* ]);
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* // С начальным состоянием загрузки
|
|
57
|
+
* const [loadUser, isLoading] = useLoading(fetchUser, true);
|
|
58
|
+
*/
|
|
16
59
|
export declare function useLoading<T extends FunBaseType>(...args: PropsType<T>): FunReturnType<T>;
|
|
17
60
|
export {};
|