Skip to content

Conversation

@kim3360
Copy link
Contributor

@kim3360 kim3360 commented Feb 2, 2026

🚀 모임 입장하기 api 추가

📝 변경사항

모임 입장 API 연동 (POST /api/participant/{meetingId}/enter)

  • 파일: app/join/[id]/page.tsx, hooks/api/useParticipant.ts
  • React Query mutation hook 생성 (useParticipantEnter)
  • 이름 및 비밀번호(4자리 숫자) 입력
  • "내 정보 기억하기" 기능:
    • 체크 시: localStorage에 저장
    • 미체크 시: sessionStorage에 저장
  • 성공 시 /meeting/{meetingId}로 이동
  • 에러 처리: Toast 컴포넌트로 사용자에게 알림

✅ 체크리스트

  • 코드 리뷰를 받았습니다
  • 테스트를 완료했습니다
  • 린터 에러가 없습니다
  • 타입 에러가 없습니다
  • 브라우저에서 테스트를 완료했습니다
  • 모바일에서 테스트를 완료했습니다 (해당되는 경우)

📸 스크린샷

UI 변경 사항이 있다면 이미지를 드래그해서 넣어주세요!

💬 리뷰어 전달사항

  • 리뷰어가 특별히 확인해야 할 사항이 있다면 적어주세요.

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 회의 입장 페이지에 오류 메시지 표시 기능 추가
    • "나를 기억하기" 옵션 기반 사용자 정보 저장 기능 추가
    • 요청 처리 중 제출 버튼 비활성화 상태 표시
  • 버그 수정

    • 공유 페이지의 네비게이션 링크 경로 수정

@vercel
Copy link

vercel bot commented Feb 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mingling-frontend Ready Ready Preview, Comment Feb 2, 2026 11:20am

@coderabbitai
Copy link

coderabbitai bot commented Feb 2, 2026

개요

새로운 참가자 입장 기능을 추가합니다. 조인 페이지에 폼 제출, 오류 처리, 상태 지속성 메커니즘을 구현하고, API 타입을 정의하며, 공유 페이지 네비게이션 링크를 업데이트합니다.

변경사항

코호트 / 파일(들) 요약
조인 및 공유 페이지
app/join/[id]/page.tsx, app/share/[id]/page.tsx
조인 페이지에서 useParams, useParticipantEnter, useToast 훅을 추가하고 비동기 폼 제출, 오류 처리, Toast 알림을 구현합니다. 공유 페이지의 네비게이션 링크를 /join/{id}로 변경합니다.
API 통합
hooks/api/useParticipant.ts, types/api.ts
useParticipantEnter 뮤테이션 훅을 추가하고 ParticipantEnterRequest, ParticipantEnterResponse 등 새로운 API 타입을 정의합니다.

예상 코드 리뷰 노력

🎯 2 (Simple) | ⏱️ ~10분

관련 가능성이 있는 PR

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목은 주요 변경사항인 '모임 입장하기 api 추가'를 명확하게 설명하며, 변경 사항과 완벽하게 일치합니다.
Description check ✅ Passed PR 설명은 템플릿의 필수 섹션(변경사항, 체크리스트)을 포함하고 있으며, 변경된 파일, API 엔드포인트, 주요 기능(remember me, 에러 처리)을 상세히 기술하고 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/api-participant

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@app/join/`[id]/page.tsx:
- Around line 23-41: In handleSubmit (the submit handler) when persisting the
userId based on isRemembered, also remove the userId from the opposite storage
so stale values don't persist: if isRemembered is true, set
localStorage.setItem('userId', name) and remove
sessionStorage.removeItem('userId'); otherwise set
sessionStorage.setItem('userId', name) and remove
localStorage.removeItem('userId'); update the logic inside the try block where
participantEnter.mutateAsync result.success is handled to perform these paired
set/remove operations for userId.

In `@app/share/`[id]/page.tsx:
- Around line 85-87: The share button’s visual Link uses `/join/${id}` but the
copied URL is built with `/meeting/${id}`, causing inconsistent share paths;
update the code that generates the copied share URL (the function or variable
that composes the share link—e.g., any `copyMeetingLink`, `generateShareUrl`,
`shareUrl` or copy handler) to use `/join/${id}` so it matches the Link href and
the join flow, and ensure the `id` interpolation and origin are reused rather
than a different path.

Comment on lines 85 to 87
<Link
href={`/meeting/${id}`}
href={`/join/${id}`}
className="bg-blue-5 hover:bg-blue-8 h-12 w-full rounded-sm py-2.5 pt-3 text-center text-lg font-normal text-white transition-colors md:w-90"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

공유 링크 경로를 CTA와 일치시키세요.
버튼은 /join/{id}로 이동하지만, 복사되는 링크는 /meeting/{id}라서 공유 경로가 분리됩니다. join 흐름을 기준으로 복사 링크도 동일하게 맞춰주세요.

🔧 수정 제안
-        setShareUrl(`${window.location.origin}/meeting/${id}`);
+        setShareUrl(`${window.location.origin}/join/${id}`);
🤖 Prompt for AI Agents
In `@app/share/`[id]/page.tsx around lines 85 - 87, The share button’s visual Link
uses `/join/${id}` but the copied URL is built with `/meeting/${id}`, causing
inconsistent share paths; update the code that generates the copied share URL
(the function or variable that composes the share link—e.g., any
`copyMeetingLink`, `generateShareUrl`, `shareUrl` or copy handler) to use
`/join/${id}` so it matches the Link href and the join flow, and ensure the `id`
interpolation and origin are reused rather than a different path.

@kangdy25 kangdy25 merged commit 294c2b1 into main Feb 2, 2026
5 checks passed
@coderabbitai coderabbitai bot mentioned this pull request Feb 2, 2026
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants