Skip to content

Commit dc2d141

Browse files
committed
Simplify signal support detection
1 parent dcb43ab commit dc2d141

File tree

7 files changed

+83
-99
lines changed

7 files changed

+83
-99
lines changed

packages/ra-core/src/controller/usePrevNextController.ts

+7-9
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
import { useResourceContext } from '../core';
77
import { useDataProvider } from '../dataProvider';
88
import { useStore } from '../store';
9-
import { FilterPayload, GetListParams, RaRecord, SortPayload } from '../types';
9+
import { FilterPayload, RaRecord, SortPayload } from '../types';
1010
import { ListParams, SORT_ASC } from './list';
1111
import { useRecordContext } from './record';
1212
import { useCreatePath } from '../routing';
@@ -191,15 +191,13 @@ export const usePrevNextController = <RecordType extends RaRecord = any>(
191191
const { data, error, isFetching, isLoading, isPending } = useQuery({
192192
queryKey: [resource, 'getList', params],
193193
queryFn: queryParams => {
194-
const dataProviderParams: GetListParams = {
194+
return dataProvider.getList(resource, {
195195
...params,
196-
signal: undefined,
197-
};
198-
199-
if (dataProvider.supportAbortSignal === true) {
200-
dataProviderParams.signal = queryParams.signal;
201-
}
202-
return dataProvider.getList(resource, dataProviderParams);
196+
signal:
197+
dataProvider.supportAbortSignal === true
198+
? queryParams.signal
199+
: undefined,
200+
});
203201
},
204202
enabled: !canUseCacheData,
205203
...otherQueryOptions,

packages/ra-core/src/dataProvider/useGetList.ts

+13-16
Original file line numberDiff line numberDiff line change
@@ -83,26 +83,23 @@ export const useGetList = <RecordType extends RaRecord = any>(
8383
GetListResult<RecordType>
8484
>({
8585
queryKey: [resource, 'getList', { pagination, sort, filter, meta }],
86-
queryFn: queryParams => {
87-
const dataProviderParams: GetListParams = {
88-
pagination,
89-
sort,
90-
filter,
91-
meta,
92-
signal: undefined,
93-
};
94-
95-
if (dataProvider.supportAbortSignal === true) {
96-
dataProviderParams.signal = queryParams.signal;
97-
}
98-
return dataProvider
99-
.getList<RecordType>(resource, dataProviderParams)
86+
queryFn: queryParams =>
87+
dataProvider
88+
.getList<RecordType>(resource, {
89+
pagination,
90+
sort,
91+
filter,
92+
meta,
93+
signal:
94+
dataProvider.supportAbortSignal === true
95+
? queryParams.signal
96+
: undefined,
97+
})
10098
.then(({ data, total, pageInfo }) => ({
10199
data,
102100
total,
103101
pageInfo,
104-
}));
105-
},
102+
})),
106103
...queryOptions,
107104
});
108105

packages/ra-core/src/dataProvider/useGetMany.ts

+8-10
Original file line numberDiff line numberDiff line change
@@ -84,17 +84,15 @@ export const useGetMany = <RecordType extends RaRecord = any>(
8484
// no need to call the dataProvider
8585
return Promise.resolve([]);
8686
}
87-
const dataProviderParams: GetManyParams = {
88-
ids,
89-
meta,
90-
signal: undefined,
91-
};
92-
93-
if (dataProvider.supportAbortSignal === true) {
94-
dataProviderParams.signal = queryParams.signal;
95-
}
9687
return dataProvider
97-
.getMany<RecordType>(resource, dataProviderParams)
88+
.getMany<RecordType>(resource, {
89+
ids,
90+
meta,
91+
signal:
92+
dataProvider.supportAbortSignal === true
93+
? queryParams.signal
94+
: undefined,
95+
})
9896
.then(({ data }) => data);
9997
},
10098
placeholderData: () => {

packages/ra-core/src/dataProvider/useGetManyAggregate.ts

+19-22
Original file line numberDiff line numberDiff line change
@@ -116,22 +116,21 @@ export const useGetManyAggregate = <RecordType extends RaRecord = any>(
116116
// no need to call the dataProvider
117117
return resolve([]);
118118
}
119-
const dataProviderParams: GetManyCallArgs = {
119+
120+
// debounced / batched fetch
121+
return callGetManyQueries({
120122
resource,
121123
ids,
122124
meta,
123125
resolve,
124126
reject,
125127
dataProvider,
126128
queryClient,
127-
signal: undefined,
128-
};
129-
130-
if (dataProvider.supportAbortSignal === true) {
131-
dataProviderParams.signal = queryParams.signal;
132-
}
133-
// debounced / batched fetch
134-
return callGetManyQueries(dataProviderParams);
129+
signal:
130+
dataProvider.supportAbortSignal === true
131+
? queryParams.signal
132+
: undefined,
133+
});
135134
}),
136135
placeholderData,
137136
retry: false,
@@ -344,19 +343,17 @@ const callGetManyQueries = batch((calls: GetManyCallArgs[]) => {
344343
meta: uniqueMeta,
345344
},
346345
],
347-
queryFn: queryParams => {
348-
const dataProviderParams: GetManyParams = {
349-
ids: aggregatedIds,
350-
meta: uniqueMeta,
351-
signal: undefined,
352-
};
353-
if (dataProvider.supportAbortSignal === true) {
354-
dataProviderParams.signal = queryParams.signal;
355-
}
356-
return dataProvider
357-
.getMany<any>(resource, dataProviderParams)
358-
.then(({ data }) => data);
359-
},
346+
queryFn: queryParams =>
347+
dataProvider
348+
.getMany<any>(resource, {
349+
ids: aggregatedIds,
350+
meta: uniqueMeta,
351+
signal:
352+
dataProvider.supportAbortSignal === true
353+
? queryParams.signal
354+
: undefined,
355+
})
356+
.then(({ data }) => data),
360357
})
361358
.then(data => {
362359
callsForResource.forEach(({ ids, resolve }) => {

packages/ra-core/src/dataProvider/useGetManyReference.ts

+12-13
Original file line numberDiff line numberDiff line change
@@ -100,21 +100,20 @@ export const useGetManyReference = <RecordType extends RaRecord = any>(
100100
// check at runtime to support partial parameters with the enabled option
101101
return Promise.reject(new Error('target and id are required'));
102102
}
103-
const dataProviderParams: GetManyReferenceParams = {
104-
target,
105-
id,
106-
pagination,
107-
sort,
108-
filter,
109-
meta,
110-
signal: undefined,
111-
};
112103

113-
if (dataProvider.supportAbortSignal === true) {
114-
dataProviderParams.signal = queryParams.signal;
115-
}
116104
return dataProvider
117-
.getManyReference<RecordType>(resource, dataProviderParams)
105+
.getManyReference<RecordType>(resource, {
106+
target,
107+
id,
108+
pagination,
109+
sort,
110+
filter,
111+
meta,
112+
signal:
113+
dataProvider.supportAbortSignal === true
114+
? queryParams.signal
115+
: undefined,
116+
})
118117
.then(({ data, total, pageInfo }) => ({
119118
data,
120119
total,

packages/ra-core/src/dataProvider/useGetOne.ts

+11-14
Original file line numberDiff line numberDiff line change
@@ -68,20 +68,17 @@ export const useGetOne = <RecordType extends RaRecord = any>(
6868
// Sometimes the id comes as a number (e.g. when read from a Record in useGetList response).
6969
// As the react-query cache is type-sensitive, we always stringify the identifier to get a match
7070
queryKey: [resource, 'getOne', { id: String(id), meta }],
71-
queryFn: queryParams => {
72-
const dataProviderParams: GetOneParams<RecordType> = {
73-
id,
74-
meta,
75-
signal: undefined,
76-
};
77-
78-
if (dataProvider.supportAbortSignal === true) {
79-
dataProviderParams.signal = queryParams.signal;
80-
}
81-
return dataProvider
82-
.getOne<RecordType>(resource, dataProviderParams)
83-
.then(({ data }) => data);
84-
},
71+
queryFn: queryParams =>
72+
dataProvider
73+
.getOne<RecordType>(resource, {
74+
id,
75+
meta,
76+
signal:
77+
dataProvider.supportAbortSignal === true
78+
? queryParams.signal
79+
: undefined,
80+
})
81+
.then(({ data }) => data),
8582
...queryOptions,
8683
});
8784

packages/ra-core/src/dataProvider/useInfiniteGetList.ts

+13-15
Original file line numberDiff line numberDiff line change
@@ -103,22 +103,20 @@ export const useInfiniteGetList = <RecordType extends RaRecord = any>(
103103
],
104104
queryFn: queryParams => {
105105
const { pageParam = pagination.page } = queryParams;
106-
const dataProviderParams: GetListParams = {
107-
pagination: {
108-
page: pageParam,
109-
perPage: pagination.perPage,
110-
},
111-
sort,
112-
filter,
113-
meta,
114-
signal: undefined,
115-
};
116-
117-
if (dataProvider.supportAbortSignal === true) {
118-
dataProviderParams.signal = queryParams.signal;
119-
}
120106
return dataProvider
121-
.getList<RecordType>(resource, dataProviderParams)
107+
.getList<RecordType>(resource, {
108+
pagination: {
109+
page: pageParam,
110+
perPage: pagination.perPage,
111+
},
112+
sort,
113+
filter,
114+
meta,
115+
signal:
116+
dataProvider.supportAbortSignal === true
117+
? queryParams.signal
118+
: undefined,
119+
})
122120
.then(({ data, pageInfo, total }) => ({
123121
data,
124122
total,

0 commit comments

Comments
 (0)