1
- import {
2
- DefinedInitialDataInfiniteOptions ,
3
- InfiniteData ,
4
- QueryKey ,
5
- UseQueryOptions ,
6
- useInfiniteQuery ,
7
- useQuery ,
8
- } from '@tanstack/react-query' ;
1
+ import { UseQueryOptions , useQuery } from '@tanstack/react-query' ;
9
2
10
- import { APIError , APIList , errorCauses , fetchAPI } from '@/api' ;
3
+ import { APIError , errorCauses , fetchAPI } from '@/api' ;
11
4
import { Access } from '@/docs/doc-management' ;
12
5
13
6
export type DocAccessesParam = {
14
7
docId : string ;
15
8
ordering ?: string ;
16
9
} ;
17
10
18
- export type DocAccessesAPIParams = DocAccessesParam & {
19
- page : number ;
20
- } ;
21
-
22
- type AccessesResponse = APIList < Access > ;
11
+ export type DocAccessesAPIParams = DocAccessesParam & { } ;
23
12
24
13
export const getDocAccesses = async ( {
25
- page,
26
14
docId,
27
15
ordering,
28
- } : DocAccessesAPIParams ) : Promise < AccessesResponse > => {
29
- let url = `documents/${ docId } /accesses/?page= ${ page } ` ;
16
+ } : DocAccessesAPIParams ) : Promise < Access [ ] > => {
17
+ let url = `documents/${ docId } /accesses/` ;
30
18
31
19
if ( ordering ) {
32
20
url += '&ordering=' + ordering ;
@@ -41,54 +29,18 @@ export const getDocAccesses = async ({
41
29
) ;
42
30
}
43
31
44
- return response . json ( ) as Promise < AccessesResponse > ;
32
+ return ( await response . json ( ) ) as Access [ ] ;
45
33
} ;
46
34
47
35
export const KEY_LIST_DOC_ACCESSES = 'docs-accesses' ;
48
36
49
37
export function useDocAccesses (
50
38
params : DocAccessesAPIParams ,
51
- queryConfig ?: UseQueryOptions < AccessesResponse , APIError , AccessesResponse > ,
39
+ queryConfig ?: UseQueryOptions < Access [ ] , APIError , Access [ ] > ,
52
40
) {
53
- return useQuery < AccessesResponse , APIError , AccessesResponse > ( {
41
+ return useQuery < Access [ ] , APIError , Access [ ] > ( {
54
42
queryKey : [ KEY_LIST_DOC_ACCESSES , params ] ,
55
43
queryFn : ( ) => getDocAccesses ( params ) ,
56
44
...queryConfig ,
57
45
} ) ;
58
46
}
59
-
60
- /**
61
- * @param param Used for infinite scroll pagination
62
- * @param queryConfig
63
- * @returns
64
- */
65
- export function useDocAccessesInfinite (
66
- param : DocAccessesParam ,
67
- queryConfig ?: DefinedInitialDataInfiniteOptions <
68
- AccessesResponse ,
69
- APIError ,
70
- InfiniteData < AccessesResponse > ,
71
- QueryKey ,
72
- number
73
- > ,
74
- ) {
75
- return useInfiniteQuery <
76
- AccessesResponse ,
77
- APIError ,
78
- InfiniteData < AccessesResponse > ,
79
- QueryKey ,
80
- number
81
- > ( {
82
- initialPageParam : 1 ,
83
- queryKey : [ KEY_LIST_DOC_ACCESSES , param ] ,
84
- queryFn : ( { pageParam } ) =>
85
- getDocAccesses ( {
86
- ...param ,
87
- page : pageParam ,
88
- } ) ,
89
- getNextPageParam ( lastPage , allPages ) {
90
- return lastPage . next ? allPages . length + 1 : undefined ;
91
- } ,
92
- ...queryConfig ,
93
- } ) ;
94
- }
0 commit comments