[FIX] 상세 투두 수정 시 Today 화면에 미반영되는 버그 수정#212
Conversation
use-update-todo-submit의 onSuccess에서 getGetTodayQueryKey invalidation이 누락되어 Today 화면의 TodayTodoCard가 갱신되지 않는 버그를 수정했습니다. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Walkthrough상세 투두 수정 성공 시 기존 Home 및 상세 쿼리와 함께 Today 목록 쿼리도 무효화하도록 변경했습니다. 이를 통해 수정된 투두가 Today 화면에 반영됩니다. Changes투두 수정 캐시 갱신
Estimated code review effort: 1 (Trivial) | ~3 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Timo Performance ReportBundle Size — timo-web
Lighthouse — timo-web
Image Optimization — timo-web
측정 커밋: |
use-delete-todo-submit의 onSuccess에서 getGetTodayQueryKey invalidation이 누락되어 서버 동기화 없이 로컬 state만 제거되던 문제를 수정했습니다. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
handleSubTodoCheck가 로컬 state만 변경하고 서버에 반영하지 않아 새로고침 시 체크 상태가 초기화되는 문제를 수정했습니다. Home과 동일하게 optimistic update 후 실패 시 롤백하는 구조로 변경했습니다. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
체크박스 클릭 시 마우스가 카드 위에 있어 isHovered가 true인 상태라 isCompleted가 true여도 isDimmed가 false로 계산되는 문제를 수정했습니다. isCompleted가 true로 바뀌면 isHovered를 즉시 초기화합니다. 서브태스크는 isDone 상태에 따라 텍스트 색상을 즉시 변경합니다. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ISSUE 🔗
close #211
What is this PR? 🔍
Today 화면에서 투두 수정·삭제·서브태스크 완료가 반영되지 않거나, 완료 시 dimmed 처리가 지연되는 버그 4건을 수정했습니다.
배경
useUpdateTodoSubmit,useDeleteTodoSubmit의onSuccess에서getGetHomeQueryKey()만 invalidate하고,handleSubTodoCheck는// TODO: API상태로 로컬 state만 변경하는 구조였습니다.getGetTodayQueryKey())가 invalidate되지 않아 수정·삭제 후 Today 화면이 갱신되지 않았고, 서브태스크 체크는 새로고침 시 초기화됐습니다. 또한 체크박스 클릭 시 마우스가 카드 위에 있으면isHovered=true로 인해 즉시 dimmed되지 않는 문제도 있었습니다.1. 상세 모달 수정 → Today 미반영 (
use-update-todo-submit.ts)onSuccess에서getGetHomeQueryKey()만 invalidate하고getGetTodayQueryKey()를 누락했습니다.getGetTodayQueryKey를 동일한 엔드포인트 파일에서 import해onSuccess시점에 함께 invalidate합니다.2. 상세 모달 삭제 → Today 미반영 (
use-delete-todo-submit.ts)getGetTodayQueryKey()invalidation을 추가했습니다.3. 서브태스크 완료 → 새로고침 시 초기화 (
useTodayTodoList.ts)// TODO: APIuseChangeSubtaskStatus연결handleSubTodoCheck가// TODO: API상태로 로컬 state만 변경해 새로고침 시 체크 상태가 초기화됐습니다.handleToggleSubtaskCompleted와 동일한 패턴으로, optimistic update 후changeSubtaskStatusAPI 호출, 실패 시 이전 state로 롤백합니다.4. 완료 시 dimmed 처리 지연 (
TodayTodoCardContainer.tsx,TodayTodoCard.tsx)isDimmed = isCompleted && !isHovered에서 체크박스 클릭 시isHovered=true상태가 유지돼 즉시 dimmed되지 않았습니다. 서브태스크는sub.isDone이 텍스트 스타일에 반영되지 않았습니다.isCompleted가true로 바뀌면useEffect로isHovered를 즉시false로 초기화합니다. 서브태스크 텍스트는sub.isDone이true일 때text-timo-gray-500을 적용합니다.To Reviewers
handleSubTodoCheck패턴을 Home의handleToggleSubtaskCompleted와 맞췄습니다. 두 구현이 일치하는지 비교해서 봐주세요.isCompleted시useEffect로isHovered를 초기화하는 방식이 의도와 맞는지 확인 부탁드립니다.Screenshot 📷
Test Checklist ✔