From 6ac4a6d895dd8e642417a71c05c138e79ca235f0 Mon Sep 17 00:00:00 2001 From: b0nsu <125778250+b0nsu@users.noreply.github.com> Date: Fri, 24 Apr 2026 13:30:45 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20handwriting=20API=20=EC=BA=90?= =?UTF-8?q?=EC=8B=9C=20=EC=A0=84=EB=9E=B5=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - putUpdateHandwriting: invalidateQueries → setQueryData로 변경하여 저장 후 즉시 캐시 반영 - useGetHandwriting: staleTime: Infinity, refetchOnWindowFocus: false 추가하여 불필요한 refetch 방지 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../scrap/handwriting/putUpdateHandwriting.ts | 17 ++++++++--------- .../scrap/handwriting/useGetHandwriting.ts | 2 ++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/apps/native/src/apis/controller/student/scrap/handwriting/putUpdateHandwriting.ts b/apps/native/src/apis/controller/student/scrap/handwriting/putUpdateHandwriting.ts index b6f804823..fc171997c 100644 --- a/apps/native/src/apis/controller/student/scrap/handwriting/putUpdateHandwriting.ts +++ b/apps/native/src/apis/controller/student/scrap/handwriting/putUpdateHandwriting.ts @@ -29,14 +29,13 @@ export const useUpdateHandwriting = () => { }); return data as UpdateHandwritingResponse; }, - // onSuccess: (_, { scrapId }) => { - // queryClient.invalidateQueries({ - // queryKey: TanstackQueryClient.queryOptions( - // 'get', - // '/api/student/scrap/{scrapId}/handwriting', - // { params: { path: { scrapId } } } - // ).queryKey, - // }); - // }, + onSuccess: (_, { scrapId, request }) => { + queryClient.setQueryData( + TanstackQueryClient.queryOptions('get', '/api/student/scrap/{scrapId}/handwriting', { + params: { path: { scrapId } }, + }).queryKey, + { data: request.data } + ); + }, }); }; diff --git a/apps/native/src/apis/controller/student/scrap/handwriting/useGetHandwriting.ts b/apps/native/src/apis/controller/student/scrap/handwriting/useGetHandwriting.ts index 7382c18c6..1f5ca94a5 100644 --- a/apps/native/src/apis/controller/student/scrap/handwriting/useGetHandwriting.ts +++ b/apps/native/src/apis/controller/student/scrap/handwriting/useGetHandwriting.ts @@ -11,6 +11,8 @@ export const useGetHandwriting = (scrapId: number, enabled = true) => { }, { enabled, + staleTime: Infinity, + refetchOnWindowFocus: false, } ); }; From 82a9d5c15086c7eb239b602628036bd904662e80 Mon Sep 17 00:00:00 2001 From: b0nsu <125778250+b0nsu@users.noreply.github.com> Date: Sat, 2 May 2026 16:50:53 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20Copilot=20=EB=A6=AC=EB=B7=B0=20?= =?UTF-8?q?=EB=B0=98=EC=98=81=20=E2=80=94=20=EC=BA=90=EC=8B=9C=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=20shape=20=EB=B0=8F=20queryKey=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - putUpdateHandwriting: { data: request.data } → response (서버 응답 전체 사용) - deleteHandwriting: 하드코딩 queryKey → TanstackQueryClient.queryOptions() 사용 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../scrap/handwriting/deleteHandwriting.ts | 16 +++++++++++++--- .../scrap/handwriting/putUpdateHandwriting.ts | 4 ++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/apps/native/src/apis/controller/student/scrap/handwriting/deleteHandwriting.ts b/apps/native/src/apis/controller/student/scrap/handwriting/deleteHandwriting.ts index d339cef84..67a6cfb9c 100644 --- a/apps/native/src/apis/controller/student/scrap/handwriting/deleteHandwriting.ts +++ b/apps/native/src/apis/controller/student/scrap/handwriting/deleteHandwriting.ts @@ -1,6 +1,6 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; -import { client } from '@/apis/client'; +import { client, TanstackQueryClient } from '@/apis/client'; export const useDeleteHandwriting = () => { const queryClient = useQueryClient(); @@ -14,8 +14,18 @@ export const useDeleteHandwriting = () => { }); }, onSuccess: (_, scrapId) => { - queryClient.invalidateQueries({ queryKey: ['scrap', 'handwriting', scrapId] }); - queryClient.invalidateQueries({ queryKey: ['scrap', 'detail', scrapId] }); + queryClient.invalidateQueries({ + queryKey: TanstackQueryClient.queryOptions( + 'get', + '/api/student/scrap/{scrapId}/handwriting', + { params: { path: { scrapId } } } + ).queryKey, + }); + queryClient.invalidateQueries({ + queryKey: TanstackQueryClient.queryOptions('get', '/api/student/scrap/{id}', { + params: { path: { id: scrapId } }, + }).queryKey, + }); }, }); }; diff --git a/apps/native/src/apis/controller/student/scrap/handwriting/putUpdateHandwriting.ts b/apps/native/src/apis/controller/student/scrap/handwriting/putUpdateHandwriting.ts index fc171997c..ba36ca929 100644 --- a/apps/native/src/apis/controller/student/scrap/handwriting/putUpdateHandwriting.ts +++ b/apps/native/src/apis/controller/student/scrap/handwriting/putUpdateHandwriting.ts @@ -29,12 +29,12 @@ export const useUpdateHandwriting = () => { }); return data as UpdateHandwritingResponse; }, - onSuccess: (_, { scrapId, request }) => { + onSuccess: (response, { scrapId }) => { queryClient.setQueryData( TanstackQueryClient.queryOptions('get', '/api/student/scrap/{scrapId}/handwriting', { params: { path: { scrapId } }, }).queryKey, - { data: request.data } + response ); }, });