1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| import type { OnlineUtilsLoadingOptions } from './formOnlineUtils';
|
| export function createListScopedOnlineUtils(baseOnlineUtils: any, setLoading: (loading: boolean, tip?: string) => void) {
| let loadingCount = 0;
| const scopedOnlineUtils = {
| ...baseOnlineUtils,
| showLoading(tip?: string, options?: OnlineUtilsLoadingOptions) {
| if (options?.scope !== 'list') return baseOnlineUtils.showLoading?.(tip, options);
| loadingCount++;
| setLoading(true, tip);
| },
| hideLoading(options?: OnlineUtilsLoadingOptions) {
| if (options?.scope !== 'list') return baseOnlineUtils.hideLoading?.(options);
| if (!loadingCount) return;
| loadingCount--;
| if (!loadingCount) setLoading(false);
| },
| };
|
| return {
| onlineUtils: scopedOnlineUtils,
| resetLoading: () => {
| loadingCount = 0;
| },
| };
| }
|
|