From 7c3dd656dddb7dff97c5544be006f51331e7d259 Mon Sep 17 00:00:00 2001 From: jjangminii Date: Thu, 16 Jul 2026 18:35:51 +0900 Subject: [PATCH] =?UTF-8?q?refactor(web):=20=EC=84=9C=EB=B8=8C=ED=83=9C?= =?UTF-8?q?=EC=8A=A4=ED=81=AC=20=EA=B4=80=EB=A0=A8=20=EC=8A=A4=ED=82=A4?= =?UTF-8?q?=EB=A7=88=20=EB=B3=80=EA=B2=BD=EC=82=AC=ED=95=AD=EC=9D=84=20?= =?UTF-8?q?=EB=B0=98=EC=98=81=ED=95=9C=EB=8B=A4=20(#261)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 서브태스크 완료 상태 변경 API에 추가된 필수 date 파라미터를 반영했습니다 - 서브태스크 수정 요청에서 제거된 completed 필드를 반영했습니다 --- apps/timo-web/api/generated/endpoints/todo/todo.ts | 12 ++++++++++-- .../generated/models/changeSubtaskStatusParams.ts | 14 ++++++++++++++ apps/timo-web/api/generated/models/index.ts | 1 + .../generated/models/todoSubtaskUpdateRequest.ts | 1 - .../home/_hooks/use-home-todos-by-date.ts | 7 ++++++- .../today/_hooks/useTodayTodoList.ts | 7 ++++++- .../(main)/focus/_hooks/use-focus-session.ts | 1 + .../todo-modal/detail/use-toggle-subtask-submit.ts | 7 ++++++- .../utils/todo/detail-todo-update-request.ts | 1 - 9 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 apps/timo-web/api/generated/models/changeSubtaskStatusParams.ts diff --git a/apps/timo-web/api/generated/endpoints/todo/todo.ts b/apps/timo-web/api/generated/endpoints/todo/todo.ts index ba2c70bb..0fd8f0fe 100644 --- a/apps/timo-web/api/generated/endpoints/todo/todo.ts +++ b/apps/timo-web/api/generated/endpoints/todo/todo.ts @@ -17,6 +17,7 @@ import type { BaseResponseTodoDetailResponse, BaseResponseTodoReorderResponse, BaseResponseTodoStatusChangeResponse, + ChangeSubtaskStatusParams, ErrorDto, GetTodoDetailParams, SubtaskStatusUpdateRequest, @@ -509,6 +510,7 @@ export const changeSubtaskStatus = ( todoId: number, subtaskId: number, subtaskStatusUpdateRequest: BodyType, + params: ChangeSubtaskStatusParams, options?: SecondParameter, signal?: AbortSignal, ) => { @@ -518,6 +520,7 @@ export const changeSubtaskStatus = ( method: "PATCH", headers: { "Content-Type": "application/json" }, data: subtaskStatusUpdateRequest, + params, signal, }, options, @@ -535,6 +538,7 @@ export const getChangeSubtaskStatusMutationOptions = < todoId: number; subtaskId: number; data: BodyType; + params: ChangeSubtaskStatusParams; }, TContext >; @@ -546,6 +550,7 @@ export const getChangeSubtaskStatusMutationOptions = < todoId: number; subtaskId: number; data: BodyType; + params: ChangeSubtaskStatusParams; }, TContext > => { @@ -564,11 +569,12 @@ export const getChangeSubtaskStatusMutationOptions = < todoId: number; subtaskId: number; data: BodyType; + params: ChangeSubtaskStatusParams; } > = (props) => { - const { todoId, subtaskId, data } = props ?? {}; + const { todoId, subtaskId, data, params } = props ?? {}; - return changeSubtaskStatus(todoId, subtaskId, data, requestOptions); + return changeSubtaskStatus(todoId, subtaskId, data, params, requestOptions); }; return { mutationFn, ...mutationOptions }; @@ -596,6 +602,7 @@ export const useChangeSubtaskStatus = < todoId: number; subtaskId: number; data: BodyType; + params: ChangeSubtaskStatusParams; }, TContext >; @@ -609,6 +616,7 @@ export const useChangeSubtaskStatus = < todoId: number; subtaskId: number; data: BodyType; + params: ChangeSubtaskStatusParams; }, TContext > => { diff --git a/apps/timo-web/api/generated/models/changeSubtaskStatusParams.ts b/apps/timo-web/api/generated/models/changeSubtaskStatusParams.ts new file mode 100644 index 00000000..0522f55d --- /dev/null +++ b/apps/timo-web/api/generated/models/changeSubtaskStatusParams.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.20.0 🍺 + * Do not edit manually. + * Timo API + * Timo 서버 API 명세서 + * OpenAPI spec version: v1 + */ + +export interface ChangeSubtaskStatusParams { + /** + * 완료 상태를 변경할 날짜 (ISO). 반복 TODO는 날짜별로 완료가 분리됩니다. + */ + date: string; +} diff --git a/apps/timo-web/api/generated/models/index.ts b/apps/timo-web/api/generated/models/index.ts index e4e610e7..a9b38cd3 100644 --- a/apps/timo-web/api/generated/models/index.ts +++ b/apps/timo-web/api/generated/models/index.ts @@ -49,6 +49,7 @@ export * from "./calendarDayResponse"; export * from "./calendarDisconnectResponse"; export * from "./calendarEventResponse"; export * from "./calendarEventsResponse"; +export * from "./changeSubtaskStatusParams"; export * from "./dailyTodoResponse"; export * from "./dayCompletionResponse"; export * from "./dayResponse"; diff --git a/apps/timo-web/api/generated/models/todoSubtaskUpdateRequest.ts b/apps/timo-web/api/generated/models/todoSubtaskUpdateRequest.ts index 550da0d5..10420e0d 100644 --- a/apps/timo-web/api/generated/models/todoSubtaskUpdateRequest.ts +++ b/apps/timo-web/api/generated/models/todoSubtaskUpdateRequest.ts @@ -10,5 +10,4 @@ export interface TodoSubtaskUpdateRequest { subtaskId?: number; /** @minLength 1 */ content: string; - completed: boolean; } diff --git a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_hooks/use-home-todos-by-date.ts b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_hooks/use-home-todos-by-date.ts index 2372754d..a5cd937f 100644 --- a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_hooks/use-home-todos-by-date.ts +++ b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_hooks/use-home-todos-by-date.ts @@ -234,7 +234,12 @@ export const useHomeTodosByDate = ( })); changeSubtaskStatus( - { todoId, subtaskId, data: { isCompleted: completed } }, + { + todoId, + subtaskId, + data: { isCompleted: completed }, + params: { date: dateKey }, + }, { onSuccess: () => { invalidateHomeAndFocus(); diff --git a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_hooks/useTodayTodoList.ts b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_hooks/useTodayTodoList.ts index 99b4cf8b..bf8975fc 100644 --- a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_hooks/useTodayTodoList.ts +++ b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_hooks/useTodayTodoList.ts @@ -233,7 +233,12 @@ export const useTodayTodoList = ( ); changeSubtaskStatus( - { todoId, subtaskId, data: { isCompleted: completed } }, + { + todoId, + subtaskId, + data: { isCompleted: completed }, + params: { date: dateKey }, + }, { onSuccess: () => { invalidateTodayView(); diff --git a/apps/timo-web/app/[locale]/(main)/focus/_hooks/use-focus-session.ts b/apps/timo-web/app/[locale]/(main)/focus/_hooks/use-focus-session.ts index 066e8575..ee97c800 100644 --- a/apps/timo-web/app/[locale]/(main)/focus/_hooks/use-focus-session.ts +++ b/apps/timo-web/app/[locale]/(main)/focus/_hooks/use-focus-session.ts @@ -208,6 +208,7 @@ export const useFocusSession = ({ todoId: todo.todoId, subtaskId, data: { isCompleted: completed }, + params: { date: focusView.date }, }); }; diff --git a/apps/timo-web/hooks/todo-modal/detail/use-toggle-subtask-submit.ts b/apps/timo-web/hooks/todo-modal/detail/use-toggle-subtask-submit.ts index 049c0b2f..df429fb4 100644 --- a/apps/timo-web/hooks/todo-modal/detail/use-toggle-subtask-submit.ts +++ b/apps/timo-web/hooks/todo-modal/detail/use-toggle-subtask-submit.ts @@ -35,7 +35,12 @@ export const useToggleSubtaskSubmit = () => { { onSuccess, onError }: ToggleSubtaskSubmitHandlers = {}, ) => { changeSubtaskStatus( - { todoId, subtaskId, data: { isCompleted: completed } }, + { + todoId, + subtaskId, + data: { isCompleted: completed }, + params: { date }, + }, { onSuccess: () => { queryClient.invalidateQueries({ queryKey: getGetHomeQueryKey() }); diff --git a/apps/timo-web/utils/todo/detail-todo-update-request.ts b/apps/timo-web/utils/todo/detail-todo-update-request.ts index 1a0fb4ed..d31fd790 100644 --- a/apps/timo-web/utils/todo/detail-todo-update-request.ts +++ b/apps/timo-web/utils/todo/detail-todo-update-request.ts @@ -27,7 +27,6 @@ export const buildDetailTodoSubtasksUpdateRequest = ( .map((subtask) => ({ subtaskId: subtask.subtaskId ?? undefined, content: subtask.value.trim(), - completed: subtask.completed, })) .filter((subtask) => subtask.content.length > 0);