Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Walkthrough이 변경사항은 쿼리 캐시 무효화, 로컬스토리지 기반 상태 관리, 지도 마커 UI 단순화, 폴링 간격 조정, 그리고 모의 데이터 파일 제거를 포함합니다. 회의 참가 흐름을 개선하고 맵 인터페이스를 리팩토링하며 불필요한 모의 데이터를 정리합니다. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
components/join/joinForm.tsx (1)
31-44:⚠️ Potential issue | 🔴 Critical
useSearchParams()호출을 위해 Suspense 경계 추가 필요
JoinForm은useSearchParams()를 사용하는 클라이언트 컴포넌트입니다. Next.js App Router에서 정적 렌더링 중에useSearchParams()를 호출하면 가장 가까운<Suspense>경계까지 클라이언트 사이드 렌더링으로 전환됩니다.app/join/[id]/page.tsx의JoinForm반환 부분을Suspense로 감싸지 않으면 빌드 에러가 발생하거나 전체 페이지가 동적 렌더링으로 변환됩니다.수정 방안
import { Suspense } from 'react'; import JoinForm from '@/components/join/joinForm'; export default async function Page({ params }: Props) { const { id } = await params; return ( <Suspense fallback={<div>Loading...</div>}> <JoinForm meetingId={id} /> </Suspense> ); }
🤖 Fix all issues with AI agents
In `@components/join/joinForm.tsx`:
- Around line 84-87: When handling the failure branch in the joinForm response,
avoid directly accessing result.data.message because result.data may be
undefined and cause a TypeError; update the code around setErrorMessage(...) and
show() to read the message via optional chaining (e.g. result.data?.message) and
keep the existing fallback string so setErrorMessage(result.data?.message || '모임
참여에 실패했습니다. 다시 시도해주세요.') is safe even when result.data is undefined.
🧹 Nitpick comments (2)
components/join/joinForm.tsx (2)
88-96:error: any대신 구체적 타입 사용 권장.정적 분석 도구에서도 지적된 사항입니다.
unknown으로 변경 후 타입 가드를 사용하면 타입 안전성을 확보할 수 있습니다.♻️ 리팩토링 제안
- } catch (error: any) { - const errorData = error.data || error.response?.data; - const serverMessage = errorData?.message; + } catch (error: unknown) { + const err = error as Record<string, any>; + const errorData = err?.data || err?.response?.data; + const serverMessage = errorData?.message;
70-78:@ts-ignore사용은 타입 안전성을 약화시킵니다.
mutateAsync호출에서 타입 에러를 억제하고 있습니다.useEnterParticipant훅의 제네릭 타입을 올바르게 정의하면@ts-ignore없이도 해결할 수 있습니다. 당장은 아니더라도 향후 개선을 권장합니다.
🚀 fix: 중간지점 UI 개선, 모임 참여 에러 핸들링
📝 변경사항
✅ 체크리스트
📸 스크린샷
💬 리뷰어 전달사항
Summary by CodeRabbit
릴리스 노트
개선 사항
정리