From 13571bed5bced64c3931e7d2054e1f7079189c64 Mon Sep 17 00:00:00 2001 From: whqtker Date: Tue, 11 Aug 2026 14:28:34 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=90=9B=20=ED=95=B4=EC=99=B8=20?= =?UTF-8?q?=EB=8C=80=ED=95=99=20=EB=AA=A9=EB=A1=9D=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=EB=84=A4=EC=9D=B4=EC=85=98=20=EC=8B=9C=20page=20?= =?UTF-8?q?=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=EB=A5=BC=201-indexed?= =?UTF-8?q?=EB=A1=9C=20=EC=A0=84=EC=86=A1=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 서버의 page 계약은 1-indexed인데 이 화면의 UI 상태는 0부터 시작해 그대로 요청에 실려 보내고 있었다. page=0과 page=1 요청이 모두 서버 내부에서 동일한 오프셋으로 클램프되어, "다음" 버튼을 처음 눌렀을 때 같은 목록이 다시 보이고 마지막 페이지에는 영원히 도달하지 못했다. API 호출 시점에만 page + 1로 변환해 서버 계약에 맞춘다. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01WTCqRi8V2TJ1ZqHpfiQ1vy --- .../features/univ-apply-infos/tabs/HostUniversityTab.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/admin/src/components/features/univ-apply-infos/tabs/HostUniversityTab.tsx b/apps/admin/src/components/features/univ-apply-infos/tabs/HostUniversityTab.tsx index cab132af..ece446f3 100644 --- a/apps/admin/src/components/features/univ-apply-infos/tabs/HostUniversityTab.tsx +++ b/apps/admin/src/components/features/univ-apply-infos/tabs/HostUniversityTab.tsx @@ -134,7 +134,8 @@ export function HostUniversityTab() { const query = useQuery({ queryKey: ["admin", "host-universities", searchParams], - queryFn: () => adminApi.getHostUniversities({ ...searchParams, size: 20 }), + // 서버의 page 파라미터는 1-indexed 계약이므로, 0-indexed로 관리되는 UI 상태를 API 호출 시점에 변환한다. + queryFn: () => adminApi.getHostUniversities({ ...searchParams, page: searchParams.page + 1, size: 20 }), placeholderData: keepPreviousData, }); From d7138ae4d0a57f3f787d9790909e1e447b8b676a Mon Sep 17 00:00:00 2001 From: whqtker Date: Tue, 11 Aug 2026 14:40:03 +0900 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=A3=BC=EC=84=9D=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01WTCqRi8V2TJ1ZqHpfiQ1vy --- .../features/univ-apply-infos/tabs/HostUniversityTab.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/admin/src/components/features/univ-apply-infos/tabs/HostUniversityTab.tsx b/apps/admin/src/components/features/univ-apply-infos/tabs/HostUniversityTab.tsx index ece446f3..aa084fad 100644 --- a/apps/admin/src/components/features/univ-apply-infos/tabs/HostUniversityTab.tsx +++ b/apps/admin/src/components/features/univ-apply-infos/tabs/HostUniversityTab.tsx @@ -134,7 +134,6 @@ export function HostUniversityTab() { const query = useQuery({ queryKey: ["admin", "host-universities", searchParams], - // 서버의 page 파라미터는 1-indexed 계약이므로, 0-indexed로 관리되는 UI 상태를 API 호출 시점에 변환한다. queryFn: () => adminApi.getHostUniversities({ ...searchParams, page: searchParams.page + 1, size: 20 }), placeholderData: keepPreviousData, });