Skip to content

Commit 9742052

Browse files
✨(frontend) refactor document access API and remove infinite query
- Simplified the `getDocAccesses` function by removing pagination parameters. - Updated the `useDocAccesses` hook to reflect changes in the API response type. - Removed the `useDocAccessesInfinite` function to streamline document access management.
1 parent 24dfeb4 commit 9742052

File tree

1 file changed

+8
-56
lines changed

1 file changed

+8
-56
lines changed
Lines changed: 8 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,20 @@
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';
92

10-
import { APIError, APIList, errorCauses, fetchAPI } from '@/api';
3+
import { APIError, errorCauses, fetchAPI } from '@/api';
114
import { Access } from '@/docs/doc-management';
125

136
export type DocAccessesParam = {
147
docId: string;
158
ordering?: string;
169
};
1710

18-
export type DocAccessesAPIParams = DocAccessesParam & {
19-
page: number;
20-
};
21-
22-
type AccessesResponse = APIList<Access>;
11+
export type DocAccessesAPIParams = DocAccessesParam & {};
2312

2413
export const getDocAccesses = async ({
25-
page,
2614
docId,
2715
ordering,
28-
}: DocAccessesAPIParams): Promise<AccessesResponse> => {
29-
let url = `documents/${docId}/accesses/?page=${page}`;
16+
}: DocAccessesAPIParams): Promise<Access[]> => {
17+
let url = `documents/${docId}/accesses/`;
3018

3119
if (ordering) {
3220
url += '&ordering=' + ordering;
@@ -41,54 +29,18 @@ export const getDocAccesses = async ({
4129
);
4230
}
4331

44-
return response.json() as Promise<AccessesResponse>;
32+
return (await response.json()) as Access[];
4533
};
4634

4735
export const KEY_LIST_DOC_ACCESSES = 'docs-accesses';
4836

4937
export function useDocAccesses(
5038
params: DocAccessesAPIParams,
51-
queryConfig?: UseQueryOptions<AccessesResponse, APIError, AccessesResponse>,
39+
queryConfig?: UseQueryOptions<Access[], APIError, Access[]>,
5240
) {
53-
return useQuery<AccessesResponse, APIError, AccessesResponse>({
41+
return useQuery<Access[], APIError, Access[]>({
5442
queryKey: [KEY_LIST_DOC_ACCESSES, params],
5543
queryFn: () => getDocAccesses(params),
5644
...queryConfig,
5745
});
5846
}
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

Comments
 (0)