[FIX] 반복 투두를 오늘이 아닌 날짜에서 재생해도 해당 날짜에 귀속되도록 수정#257
Conversation
- 타이머 시작 API에 추가된 date 쿼리 파라미터를 반영하도록 orval 코드를 재생성했습니다 - Home/Today/Focus에서 타이머를 시작할 때 재생한 카드의 날짜를 함께 전송하도록 수정해, 반복 투두를 오늘이 아닌 날짜에서 재생해도 해당 날짜에 정확히 귀속되도록 했습니다
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (4)
📒 Files selected for processing (3)
📝 WalkthroughWalkthrough홈, 오늘, 포커스 화면의 타이머 시작 요청에 선택한 투두 날짜를 Changes타이머 날짜 귀속
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
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
측정 커밋: |
ehye1
left a comment
There was a problem hiding this comment.
서버에서 항상 오늘로 처리하고 있던게 문제였군요!
처음에만 date로 처리하고 이후에는 timerId로 처리하면 되구나
수고하셨습니당
ISSUE 🔗
close #254
What is this PR? 🔍
반복 투두를 오늘이 아닌 날짜(과거/미래)의 카드에서 재생해도, 백엔드에 추가된
date파라미터를 함께 보내 그 카드의 날짜에 정확히 귀속되도록 수정했습니다.배경
startTimerAPI는todoId만 받고 날짜를 지정할 방법이 없어서, 서버가 항상 서버 기준 "오늘" 날짜로 타이머를 귀속시켰습니다.activeTimer.date가 오늘로 찍혀서 클릭한 카드와 매칭되지 않았습니다. 그 결과 방금 재생한 카드 자체가 "실행 중"으로 표시되지 않고, 다른 카드들의 재생 버튼을 누르면 "다른 투두의 타이머가 이미 실행 중이에요" 오류가 발생했습니다.startTimer에 optionaldate쿼리 파라미터를 추가했고(미지정 시 오늘로 기본 처리),startedAt은 실제 시작 시각을 그대로 유지하면서date만 재생한 투두 인스턴스의 날짜로 귀속되도록 스키마가 바뀌었습니다. 클라이언트도 이에 맞춰 타이머를 시작할 때 클릭한 카드의 날짜를 함께 전송하도록 수정했습니다.타이머 시작 API 연동
pnpm gen:api로 orval 코드를 재생성해startTimer가date쿼리 파라미터(StartTimerParams)를 받도록 반영하고, Home/Today/Focus의 타이머 시작 호출부에서 이 파라미터를 채워 보내도록 수정했습니다.timerId기반이라 날짜를 다시 보낼 필요가 없지만, 타이머를 최초로 시작하는 시점에만 서버가 "어떤 날짜에 귀속시킬지" 판단할 근거가 없었습니다.useHomeTodosByDate.ts/useTodayTodoList.ts는 재생한 카드가 속한dateKey를,use-focus-session.ts는 현재 조회 중인focusView.date를 각각startTimer({ todoId, params: { date } })로 전달합니다. 재생성 시 이번 작업과 무관한 다른 도메인(캘린더 등)의 스펙 변경이 함께 딸려 나와서, 타이머 도메인 관련 파일만 남기고 나머지는 되돌렸습니다.TimerPanel.tsx)은 새 타이머를 시작하는 진입점이 없고 이미 활성화된 타이머만 표시/제어하므로 이번 변경 대상에서 제외했습니다.To Reviewers
startTimer호출부 3곳(Home/Today/Focus) 모두 각자의 "재생한 카드/현재 보고 있는 날짜" 소스에서date를 가져오는데, 값의 출처가 파일마다 달라서(dateKey파라미터 vstodos.find(...)?.datevsfocusView.date) 각 지점에서 실제로 맞는 날짜를 넘기고 있는지 한 번 봐주시면 좋겠습니다.Screenshot 📷
Test Checklist ✔
pnpm check-types통과pnpm lint통과Summary by CodeRabbit