✨(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.
This commit is contained in:
committed by
Anthony LC
parent
93d9dec068
commit
cab7771b82
@@ -1,12 +1,7 @@
|
|||||||
import { UseQueryOptions, useQuery } from '@tanstack/react-query';
|
import { UseQueryOptions, useQuery } from '@tanstack/react-query';
|
||||||
|
|
||||||
import {
|
import { APIError, errorCauses, fetchAPI } from '@/api';
|
||||||
APIError,
|
|
||||||
APIList,
|
|
||||||
errorCauses,
|
|
||||||
fetchAPI,
|
|
||||||
useAPIInfiniteQuery,
|
|
||||||
} from '@/api';
|
|
||||||
import { Access } from '@/docs/doc-management';
|
import { Access } from '@/docs/doc-management';
|
||||||
|
|
||||||
export type DocAccessesParams = {
|
export type DocAccessesParams = {
|
||||||
@@ -14,18 +9,13 @@ export type DocAccessesParams = {
|
|||||||
ordering?: string;
|
ordering?: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type DocAccessesAPIParams = DocAccessesParams & {
|
export type DocAccessesAPIParams = DocAccessesParams & {};
|
||||||
page: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
type AccessesResponse = APIList<Access>;
|
|
||||||
|
|
||||||
export const getDocAccesses = async ({
|
export const getDocAccesses = async ({
|
||||||
page,
|
|
||||||
docId,
|
docId,
|
||||||
ordering,
|
ordering,
|
||||||
}: DocAccessesAPIParams): Promise<AccessesResponse> => {
|
}: DocAccessesAPIParams): Promise<Access[]> => {
|
||||||
let url = `documents/${docId}/accesses/?page=${page}`;
|
let url = `documents/${docId}/accesses/`;
|
||||||
|
|
||||||
if (ordering) {
|
if (ordering) {
|
||||||
url += '&ordering=' + ordering;
|
url += '&ordering=' + ordering;
|
||||||
@@ -40,27 +30,18 @@ export const getDocAccesses = async ({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return response.json() as Promise<AccessesResponse>;
|
return (await response.json()) as Access[];
|
||||||
};
|
};
|
||||||
|
|
||||||
export const KEY_LIST_DOC_ACCESSES = 'docs-accesses';
|
export const KEY_LIST_DOC_ACCESSES = 'docs-accesses';
|
||||||
|
|
||||||
export function useDocAccesses(
|
export function useDocAccesses(
|
||||||
params: DocAccessesAPIParams,
|
params: DocAccessesAPIParams,
|
||||||
queryConfig?: UseQueryOptions<AccessesResponse, APIError, AccessesResponse>,
|
queryConfig?: UseQueryOptions<Access[], APIError, Access[]>,
|
||||||
) {
|
) {
|
||||||
return useQuery<AccessesResponse, APIError, AccessesResponse>({
|
return useQuery<Access[], APIError, Access[]>({
|
||||||
queryKey: [KEY_LIST_DOC_ACCESSES, params],
|
queryKey: [KEY_LIST_DOC_ACCESSES, params],
|
||||||
queryFn: () => getDocAccesses(params),
|
queryFn: () => getDocAccesses(params),
|
||||||
...queryConfig,
|
...queryConfig,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param param Used for infinite scroll pagination
|
|
||||||
* @param queryConfig
|
|
||||||
* @returns
|
|
||||||
*/
|
|
||||||
export function useDocAccessesInfinite(params: DocAccessesParams) {
|
|
||||||
return useAPIInfiniteQuery(KEY_LIST_DOC_ACCESSES, getDocAccesses, params);
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user