Skip to content

Commit 569053c

Browse files
committed
fix: sitemap이 전체 렌더링되지 않을 수 있던 문제 수정
1 parent 07bc456 commit 569053c

3 files changed

Lines changed: 23 additions & 4 deletions

File tree

apps/pyconkr-admin/src/components/pages/sitemap/list.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {
22
useBackendAdminClient,
3-
useListPaginatedQuery,
3+
useListAllQuery,
44
useSelectablesQuery,
55
useRemovePreparedMutation,
66
useUpdatePreparedMutation,
@@ -111,9 +111,7 @@ const InnerSiteMapList: FC<InnerSiteMapListProps> = ErrorBoundary.with(
111111
{ fallback: ErrorFallback },
112112
Suspense.with({ fallback: <CircularProgress /> }, ({ domainGroupId, headerSlot }: InnerSiteMapListProps) => {
113113
const backendAdminAPIClient = useBackendAdminClient();
114-
const {
115-
data: { results: data },
116-
} = useListPaginatedQuery<FlatSiteMap>(backendAdminAPIClient, "cms", "sitemap", { domain_group: domainGroupId, page_size: "200" });
114+
const { data } = useListAllQuery<FlatSiteMap>(backendAdminAPIClient, "cms", "sitemap", { domain_group: domainGroupId });
117115
const deleteMutation = useRemovePreparedMutation(backendAdminAPIClient, "cms", "sitemap");
118116
const { mutateAsync: updateMutationAsync } = useUpdatePreparedMutation(backendAdminAPIClient, "cms", "sitemap");
119117

packages/common/src/apis/admin_api.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,20 @@ export const listPaginated =
4444
() =>
4545
client.get<PaginatedListResponse<T>>(`v1/admin-api/${app}/${resource}/`, { params });
4646

47+
export const listAll =
48+
<T>(client: BackendAPIClient, app: string, resource: string, params?: Record<string, string>) =>
49+
async (): Promise<T[]> => {
50+
const items: T[] = [];
51+
for (let page = 1; ; page += 1) {
52+
const data = await client.get<PaginatedListResponse<T>>(`v1/admin-api/${app}/${resource}/`, {
53+
params: { ...params, page: String(page), page_size: "200" },
54+
});
55+
items.push(...data.results);
56+
if (!data.next) break;
57+
}
58+
return items;
59+
};
60+
4761
export const retrieve =
4862
<T>(client: BackendAPIClient, app: string, resource: string, id: string) =>
4963
() => {

packages/common/src/hooks/useAdminAPI.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
create,
88
fetchDashboardChartData,
99
issueGoogleOAuth2AccessToken,
10+
listAll,
1011
listDashboardCharts,
1112
listPaginated,
1213
listSections,
@@ -149,6 +150,12 @@ export const useListPaginatedQuery = <T>(client: BackendAPIClient, app: string,
149150
queryFn: listPaginated<T>(client, app, resource, params),
150151
});
151152

153+
export const useListAllQuery = <T>(client: BackendAPIClient, app: string, resource: string, params?: Record<string, string>) =>
154+
useSuspenseQuery({
155+
queryKey: [...QUERY_KEYS.ADMIN_LIST, app, resource, "all", JSON.stringify(params)],
156+
queryFn: listAll<T>(client, app, resource, params),
157+
});
158+
152159
export const useRetrieveQuery = <T>(client: BackendAPIClient, app: string, resource: string, id: string) =>
153160
useSuspenseQuery({
154161
queryKey: [...QUERY_KEYS.ADMIN_RETRIEVE, app, resource, id],

0 commit comments

Comments
 (0)