@@ -10,69 +10,64 @@ import type {
1010 DataSourceKey ,
1111 DataSourceOptions ,
1212 DataSourceParams ,
13+ DataSourceRequest ,
1314 DataSourceResponse ,
1415 DataSourceState ,
1516} from '../../../core' ;
1617import { useRefetchInterval } from '../../hooks/useRefetchInterval' ;
1718import { normalizeStatus } from '../../utils/normalizeStatus' ;
1819
19- import type {
20- AnyInfiniteQueryDataSource ,
21- AnyPageParam ,
22- InfiniteQueryObserverExtendedOptions ,
23- } from './types' ;
20+ import type { AnyInfiniteQueryDataSource , InfiniteQueryObserverExtendedOptions } from './types' ;
2421import { composeOptions } from './utils' ;
2522
26- export const useInfiniteQueryData = < TDataSource extends AnyInfiniteQueryDataSource > (
27- context : DataSourceContext < TDataSource > ,
28- dataSource : TDataSource ,
29- params : DataSourceParams < TDataSource > ,
30- options ?: Partial < DataSourceOptions < TDataSource > > ,
31- ) : DataSourceState < TDataSource > => {
32- const composedOptions = composeOptions ( context , dataSource , params , options ) ;
33-
34- const extendedOptions = useInfiniteQueryDataOptions ( composedOptions ) ;
35-
36- const result = useInfiniteQuery ( extendedOptions ) ;
37-
38- const transformedData = useMemo < DataSourceState < TDataSource > [ 'data' ] > (
39- ( ) => result . data ?. pages . flat ( 1 ) ?? [ ] ,
40- [ result . data ] ,
41- ) ;
42-
43- return {
44- ...result ,
45- status : normalizeStatus ( result . status , result . fetchStatus ) ,
46- data : transformedData ,
47- originalStatus : result . status ,
48- originalData : result . data ,
49- } as DataSourceState < TDataSource > ;
50- } ;
51-
52- export function useInfiniteQueryDataOptions < TDataSource extends AnyInfiniteQueryDataSource > (
23+ const useInfiniteQueryDataOptions = < TDataSource extends AnyInfiniteQueryDataSource > (
5324 composedOptions : InfiniteQueryObserverExtendedOptions <
5425 DataSourceResponse < TDataSource > ,
5526 DataSourceError < TDataSource > ,
56- InfiniteData < DataSourceData < TDataSource > , AnyPageParam > ,
27+ InfiniteData < DataSourceData < TDataSource > , Partial < DataSourceRequest < TDataSource > > > ,
5728 DataSourceResponse < TDataSource > ,
5829 DataSourceKey ,
59- AnyPageParam
30+ Partial < DataSourceRequest < TDataSource > >
6031 > ,
6132) : InfiniteQueryObserverOptions <
6233 DataSourceResponse < TDataSource > ,
6334 DataSourceError < TDataSource > ,
64- InfiniteData < DataSourceData < TDataSource > , AnyPageParam > ,
35+ InfiniteData < DataSourceData < TDataSource > , Partial < DataSourceRequest < TDataSource > > > ,
6536 DataSourceResponse < TDataSource > ,
6637 DataSourceKey ,
67- AnyPageParam
68- > {
38+ Partial < DataSourceRequest < TDataSource > >
39+ > => {
6940 const {
70- refetchInterval : refetchIntervalOption ,
7141 queryFn : queryFnOption ,
42+ refetchInterval : refetchIntervalOption ,
7243 ...restOptions
73- } = composedOptions || { } ;
44+ } = composedOptions ;
45+
46+ const { queryFn, refetchInterval} = useRefetchInterval ( refetchIntervalOption , queryFnOption ) ;
47+
48+ return { ...restOptions , queryFn, refetchInterval} ;
49+ } ;
50+
51+ export const useInfiniteQueryData = < TDataSource extends AnyInfiniteQueryDataSource > (
52+ context : DataSourceContext < TDataSource > ,
53+ dataSource : TDataSource ,
54+ params : DataSourceParams < TDataSource > ,
55+ options ?: Partial < DataSourceOptions < TDataSource > > ,
56+ ) : DataSourceState < TDataSource > => {
57+ const extendedOptions = composeOptions ( context , dataSource , params , options ) ;
58+ const composedOptions = useInfiniteQueryDataOptions ( extendedOptions ) ;
59+ const state = useInfiniteQuery ( composedOptions ) ;
7460
75- const { refetchInterval, queryFn} = useRefetchInterval ( refetchIntervalOption , queryFnOption ) ;
61+ const transformedData = useMemo < DataSourceState < TDataSource > [ 'data' ] > (
62+ ( ) => state . data ?. pages . flat ( 1 ) ?? [ ] ,
63+ [ state . data ] ,
64+ ) ;
7665
77- return { ...restOptions , refetchInterval, queryFn} ;
78- }
66+ return {
67+ ...state ,
68+ status : normalizeStatus ( state . status , state . fetchStatus ) ,
69+ data : transformedData ,
70+ originalStatus : state . status ,
71+ originalData : state . data ,
72+ } as DataSourceState < TDataSource > ;
73+ } ;
0 commit comments