Skip to content

Commit 31e1bbc

Browse files
committed
fix: paginated된 list API 대응
1 parent b9c349c commit 31e1bbc

9 files changed

Lines changed: 31 additions & 37 deletions

File tree

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useBackendAdminClient, useListQuery } from "@frontend/common/hooks/useAdminAPI";
1+
import { useBackendAdminClient, useListAutoQuery } from "@frontend/common/hooks/useAdminAPI";
22
import { CircularProgress, Stack, Table, TableBody, TableCell, TableHead, TableRow, Typography } from "@mui/material";
33
import { ErrorBoundary, Suspense } from "@suspensive/react";
44
import { FC } from "react";
@@ -19,7 +19,7 @@ const InnerAdminModificationAuditList: FC = ErrorBoundary.with(
1919
{ fallback: ErrorFallback },
2020
Suspense.with({ fallback: <CircularProgress /> }, () => {
2121
const backendAdminClient = useBackendAdminClient();
22-
const listQuery = useListQuery<ListRowType>(backendAdminClient, "participant_portal_api", "modificationaudit");
22+
const listQuery = useListAutoQuery<ListRowType>(backendAdminClient, "participant_portal_api", "modificationaudit");
2323

2424
return (
2525
<Stack sx={{ flexGrow: 1, width: "100%", minHeight: "100%" }}>
@@ -35,7 +35,7 @@ const InnerAdminModificationAuditList: FC = ErrorBoundary.with(
3535
</TableRow>
3636
</TableHead>
3737
<TableBody>
38-
{listQuery.data?.map((item) => {
38+
{listQuery.data.items.map((item) => {
3939
const link = `/modification-audit/modification-audit/${item.id}`;
4040
const isRequested = item.status === "requested";
4141
return (

apps/pyconkr-admin/src/components/pages/notification/send_history_create.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Fieldset } from "@frontend/common/components";
2-
import { useBackendAdminClient, useCreateMutation, useListQuery, useRenderTemplateMutation } from "@frontend/common/hooks/useAdminAPI";
2+
import { useBackendAdminClient, useCreateMutation, useListAutoQuery, useRenderTemplateMutation } from "@frontend/common/hooks/useAdminAPI";
33
import { Add, Close, Delete, Send, Visibility } from "@mui/icons-material";
44
import {
55
Box,
@@ -208,9 +208,9 @@ const InnerAdminNotificationHistoryCreate: FC<AdminNotificationHistoryCreateProp
208208
const [templateContext, setTemplateContext] = useState<Record<string, string>>({});
209209
const [globalVarFlags, setGlobalVarFlags] = useState<Record<string, boolean>>({});
210210

211-
const templateListQuery = useListQuery<NotificationTemplateSchema>(backendAdminClient, app, templateResource);
211+
const templateListQuery = useListAutoQuery<NotificationTemplateSchema>(backendAdminClient, app, templateResource);
212212
const renderTemplateMutation = useRenderTemplateMutation(backendAdminClient, app, templateResource);
213-
const selectedTemplate = templateListQuery.data?.find((t) => t.id === formData.template) ?? null;
213+
const selectedTemplate = templateListQuery.data.items.find((t) => t.id === formData.template) ?? null;
214214
const templateVariables = selectedTemplate?.template_variables ?? [];
215215

216216
const isGlobalVar = (varName: string) => globalVarFlags[varName] ?? !NotAppliableToAllRecipientsFieldList.includes(varName);
@@ -324,7 +324,7 @@ const InnerAdminNotificationHistoryCreate: FC<AdminNotificationHistoryCreateProp
324324
<MenuItem value="">
325325
<em>(없음)</em>
326326
</MenuItem>
327-
{(templateListQuery.data ?? []).map((t) => (
327+
{templateListQuery.data.items.map((t) => (
328328
<MenuItem key={t.id} value={t.id}>
329329
{t.str_repr}
330330
</MenuItem>

apps/pyconkr-admin/src/components/pages/presentation/editor.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
useBackendAdminClient,
44
useCreateMutation,
55
useFieldSelectablesQuery,
6-
useListQuery,
6+
useListAutoQuery,
77
useRemovePreparedMutation,
88
useSchemaQuery,
99
useUpdatePreparedMutation,
@@ -290,7 +290,9 @@ export const AdminPresentationEditor: FC = ErrorBoundary.with(
290290
const speakerDeleteMutation = useRemovePreparedMutation(...speakerQueryParams);
291291
const { data: speakerJsonSchema } = useSchemaQuery(...speakerQueryParams);
292292
const speakerChoices = useFieldSelectablesQuery(...speakerQueryParams);
293-
const { data: speakerInitialData } = useListQuery<PresentationSpeaker>(...speakerQueryParams, { presentation });
293+
const {
294+
data: { items: speakerInitialData },
295+
} = useListAutoQuery<PresentationSpeaker>(...speakerQueryParams, { presentation });
294296
const speakers = speakerInitialData.map((s) => ({ ...s, trackId: s.id || Math.random().toString(36).substring(2, 15) }));
295297

296298
const scheduleQueryParams = [backendAdminAPIClient, "event", "roomschedule"] as const;
@@ -299,7 +301,9 @@ export const AdminPresentationEditor: FC = ErrorBoundary.with(
299301
const scheduleDeleteMutation = useRemovePreparedMutation(...scheduleQueryParams);
300302
const { data: scheduleJsonSchema } = useSchemaQuery(...scheduleQueryParams);
301303
const scheduleChoices = useFieldSelectablesQuery(...scheduleQueryParams);
302-
const { data: scheduleInitialData } = useListQuery<Schedule>(...scheduleQueryParams, { presentation });
304+
const {
305+
data: { items: scheduleInitialData },
306+
} = useListAutoQuery<Schedule>(...scheduleQueryParams, { presentation });
303307
const schedules = scheduleInitialData.map((s) => ({ ...s, trackId: s.id || Math.random().toString(36).substring(2, 15) }));
304308

305309
useMemo(() => {

apps/pyconkr-admin/src/components/pages/shop/order/list.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useBackendAdminClient, useListPaginatedQuery, useListQuery } from "@frontend/common/hooks/useAdminAPI";
1+
import { useBackendAdminClient, useListAutoQuery, useListPaginatedQuery } from "@frontend/common/hooks/useAdminAPI";
22
import { RestartAlt } from "@mui/icons-material";
33
import {
44
Button,
@@ -104,9 +104,9 @@ const InnerOrderList: FC = ErrorBoundary.with(
104104
}, [searchParams]);
105105

106106
const ordersQuery = useListPaginatedQuery<OrderAdmin>(client, "shop", "order", apiParams);
107-
const groupsQuery = useListQuery<CategoryGroupAdminWithCategories>(client, "shop", "categorygroup", {});
107+
const groupsQuery = useListAutoQuery<CategoryGroupAdminWithCategories>(client, "shop", "categorygroup", {});
108108
const { count = 0, results: orders = [] } = ordersQuery.data ?? {};
109-
const groups = useMemo(() => groupsQuery.data ?? [], [groupsQuery.data]);
109+
const groups = useMemo(() => groupsQuery.data.items, [groupsQuery.data]);
110110

111111
const setFilter = <K extends keyof FilterState>(key: K, value: FilterState[K]) => {
112112
setFilters((prev) => ({ ...prev, [key]: value }));

apps/pyconkr-admin/src/components/pages/shop/product/editor.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {
22
useBackendAdminClient,
33
useCreateMutation,
4-
useListQuery,
4+
useListAutoQuery,
55
useRemoveMutation,
66
useRetrieveQuery,
77
useUpdateMutation,
@@ -57,12 +57,12 @@ const InnerProductEditor: FC = ErrorBoundary.with(
5757

5858
const isCreate = !id;
5959
const productQuery = useRetrieveQuery<ProductAdmin>(client, "shop", "product", id ?? "");
60-
const groupsQuery = useListQuery<CategoryGroupAdminWithCategories>(client, "shop", "categorygroup", {});
61-
const tagsQuery = useListQuery<TagAdmin>(client, "shop", "tag", {});
60+
const groupsQuery = useListAutoQuery<CategoryGroupAdminWithCategories>(client, "shop", "categorygroup", {});
61+
const tagsQuery = useListAutoQuery<TagAdmin>(client, "shop", "tag", {});
6262

6363
const existing = isCreate ? undefined : (productQuery.data ?? undefined);
64-
const groups = groupsQuery.data ?? [];
65-
const tags = tagsQuery.data ?? [];
64+
const groups = groupsQuery.data.items;
65+
const tags = tagsQuery.data.items;
6666

6767
const [tab, setTab] = useState(0);
6868
const [values, setValues] = useState<ProductFormValues>(() => buildDefaultFormValues(existing));

apps/pyconkr-admin/src/components/pages/shop/product/list.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useBackendAdminClient, useListQuery } from "@frontend/common/hooks/useAdminAPI";
1+
import { useBackendAdminClient, useListAutoQuery } from "@frontend/common/hooks/useAdminAPI";
22
import { Add, Delete, Edit } from "@mui/icons-material";
33
import {
44
Button,
@@ -54,11 +54,11 @@ const InnerProductList: FC = ErrorBoundary.with(
5454
if (categoryQuery) apiParams.category = categoryQuery;
5555
if (statusQuery !== "all") apiParams.status = statusQuery;
5656

57-
const productsQuery = useListQuery<ProductAdmin>(client, "shop", "product", apiParams);
58-
const groupsQuery = useListQuery<CategoryGroupAdminWithCategories>(client, "shop", "categorygroup", {});
57+
const productsQuery = useListAutoQuery<ProductAdmin>(client, "shop", "product", apiParams);
58+
const groupsQuery = useListAutoQuery<CategoryGroupAdminWithCategories>(client, "shop", "categorygroup", {});
5959

60-
const products = productsQuery.data ?? [];
61-
const groups = useMemo(() => groupsQuery.data ?? [], [groupsQuery.data]);
60+
const products = productsQuery.data.items;
61+
const groups = useMemo(() => groupsQuery.data.items, [groupsQuery.data]);
6262

6363
const categoryToGroup: Record<string, { groupId: string; groupName: string; categoryName: string }> = useMemo(() => {
6464
const map: Record<string, { groupId: string; groupName: string; categoryName: string }> = {};

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

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

packages/common/src/apis/admin_api.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,6 @@ export const changePassword = (client: BackendAPIClient) => (data: UserChangePas
3939
export const resetUserPassword = (client: BackendAPIClient, id: string) => () =>
4040
client.delete<UserResetPasswordResponseSchema>(`v1/admin-api/user/userext/${id}/password/`);
4141

42-
export const list =
43-
<T>(client: BackendAPIClient, app: string, resource: string, params?: Record<string, string>) =>
44-
() =>
45-
client.get<T[]>(`v1/admin-api/${app}/${resource}/`, { params });
46-
4742
export const listPaginated =
4843
<T>(client: BackendAPIClient, app: string, resource: string, params?: Record<string, string>) =>
4944
() =>

packages/common/src/hooks/useAdminAPI.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
create,
88
fetchDashboardChartData,
99
issueGoogleOAuth2AccessToken,
10-
list,
1110
listAuto,
1211
listDashboardCharts,
1312
listPaginated,
@@ -145,12 +144,6 @@ export const useOpenApiSchemaQuery = (client: BackendAPIClient) =>
145144
staleTime: Infinity,
146145
});
147146

148-
export const useListQuery = <T>(client: BackendAPIClient, app: string, resource: string, params?: Record<string, string>) =>
149-
useSuspenseQuery({
150-
queryKey: [...QUERY_KEYS.ADMIN_LIST, app, resource, JSON.stringify(params)],
151-
queryFn: list<T>(client, app, resource, params),
152-
});
153-
154147
export const useListPaginatedQuery = <T>(client: BackendAPIClient, app: string, resource: string, params?: Record<string, string>) =>
155148
useSuspenseQuery({
156149
queryKey: [...QUERY_KEYS.ADMIN_LIST, app, resource, "paginated", JSON.stringify(params)],

0 commit comments

Comments
 (0)