Skip to content

feat: 호스트도 참여 플로우로 본인 가능시간 입력 (#72) - #73

Merged
kokkumong merged 4 commits into
devfrom
feature/72-host-auto-participant
Jun 14, 2026
Merged

kokkumong merged 4 commits into
devfrom
feature/72-host-auto-participant

Conversation

@kokkumong

Copy link
Copy Markdown
Collaborator

🚀 작업 내용 (What)

  • 호스트(모임 생성자)가 생성 완료 화면의 "일정 등록하기"(구 "참여 화면 열기") 버튼으로 진입하면, 결과 화면 대신 참여자와 동일한 가능 시간 입력 폼을 보도록 변경.
  • ?participate=1 쿼리로 "참여 의도"를 명시 → isHostView가 hostToken > participate > 생성자 순으로 판정.
  • 기존 참여 폼/엔드포인트(/api/schedules/[id]/availability)를 그대로 재사용 (서버·DB 변경 없음). 호스트 제출 시 참여자 1명으로 집계됨.
  • (동반 수정) feat: 모임 생성 1단계 기본 정보 입력 화면 UI 개편 및 홈 리다이렉트 추가 #71 머지로 깨진 모임 생성 플로우 단위 테스트 5건을 보정 (소요시간 입력 추가).

📣 핵심 변경 이유 (Why)

  • 기존에는 로그인한 호스트가 어느 링크로 들어와도 결과 화면(HostView)으로 직행해, 본인 가능 시간을 입력할 방법이 없었음. 그 결과 결과 화면이 "0명 응답"으로 보여 혼란스럽고 "모두의 일정 분석" 가치와 어긋남.
  • 대시보드의 "내 모임 결과 보기"(토큰 없는 생성자 경로)는 그대로 유지하면서, 참여 의도일 때만 입력 폼을 노출하도록 최소 변경.

📸 스크린샷 (Visuals, 선택)

  • 버튼 라벨 변경("참여 화면 열기" → "일정 등록하기") 및 호스트 본인 가능 시간 입력 폼 진입. (필요 시 캡처 첨부)

⚠️ 체크리스트 (Checklist)

  • 브랜치 컨벤션(feature/00-name)을 지켰나요?
  • 커밋 컨벤션(feat:, fix: 등)을 지켰나요?
  • 작업 전에 관련 이슈를 생성하고 연결했나요?
  • 내 코드가 팀의 기존 코드를 망가뜨리지 않았는지 확인했나요?

🔗 관련 이슈 (Issue)

Close #72

kokkumong and others added 2 commits June 14, 2026 19:15
생성자가 "일정 등록하기"(?participate=1)로 진입하면 결과 화면 대신
참여자와 동일한 가능시간 입력 폼을 보여주도록 isHostView 우선순위 조정.
기존 참여 폼/엔드포인트 재사용, 서버·DB 변경 없음, 대시보드 결과 보기 경로 유지.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#71에서 소요시간이 select→자유입력 필드로 바뀌며 기본값이 비어
제출이 막혀 5개 테스트가 4단계에 도달하지 못하던 문제를 해결.
헬퍼에서 "예상 소요시간"을 채운 뒤 단계 진행하도록 수정.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 14, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
moim-app Ready Ready Preview, Comment Jun 14, 2026 10:40am

@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@kokkumong, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 49 minutes and 10 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 0bb6b93e-a5a6-491c-8e75-bb643ad15249

📥 Commits

Reviewing files that changed from the base of the PR and between 3ed497b and d0ff0f8.

📒 Files selected for processing (2)
  • e2e/host-flow.spec.ts
  • src/app/schedule/create/CreateScheduleClient.tsx

Walkthrough

참여자 링크에 ?participate=1 쿼리 파라미터를 추가하고, ScheduleRoomClientforceParticipant prop을 도입해 호스트 계정으로 진입해도 참여자 폼 뷰를 강제 표시하는 플로우를 구현함. 버튼 텍스트도 "일정 등록하기"로 변경됨.

Changes

forceParticipant 참여자 뷰 강제 플로우

Layer / File(s) Summary
참여자 링크 URL·버튼 텍스트 변경
src/app/schedule/create/CreateScheduleClient.tsx, src/app/schedule/create/CreateScheduleClient.test.tsx
참여자 버튼 href에 ?participate=1 추가, 버튼 텍스트 "일정 등록하기" 변경. 테스트에서 예상 소요시간 입력(60) 단계 추가.
page.tsx participate 파라미터 추출 및 prop 전달
src/app/schedule/[id]/page.tsx
searchParams 타입에 participate?: string 추가, hostToken·participate 동시 추출, forceParticipant={participate === "1"}ScheduleRoomClient에 전달.
ScheduleRoomClient forceParticipant 분기 로직
src/app/schedule/[id]/ScheduleRoomClient.tsx
forceParticipant?: boolean prop 추가, isHostView useMemo에서 forceParticipant가 true면 생성자 여부 무관하게 false 반환하도록 분기 추가.

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

  • #72: PR이 이슈에서 요청한 forceParticipant prop 추가, ?participate=1 링크 부여, 버튼 텍스트 "일정 등록하기" 변경을 모두 구현함.
  • 초대 링크 준비 화면 수정 #52: 참여자/호스트 링크를 ?participate=1로 구분하는 방식이 해당 이슈에서 식별한 동일 링크 문제를 직접 해결함.

Possibly related PRs

  • Siul49/moim#16: ScheduleRoomClient에서 hostToken·participants 기반으로 isHostView를 분기하던 원본 로직을 도입한 PR로, 이번 변경이 해당 분기에 forceParticipant 오버라이드를 추가함.

Suggested labels

feature

🚥 Pre-merge checks | ✅ 4 | ❌ 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 (4 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목은 'feat:' 접두사로 시작하고 변경 내용(호스트 참여 플로우)을 명확하게 요약하며 이슈 번호를 포함함.
Description check ✅ Passed PR 설명이 필수 섹션(What, Why, Checklist, 관련 이슈)을 모두 포함하고 변경 사항을 상세히 설명함.
Linked Issues check ✅ Passed 코드 변경이 #72 요구사항(forceParticipant prop 추가, ?participate=1 쿼리 파라미터, isHostView 우선순위 로직)을 모두 충족하고 기존 엔드포인트 재사용을 유지함.
Out of Scope Changes check ✅ Passed 변경사항이 #72 범위 내 호스트 참여 플로우 구현과 #71 회귀 테스트 수정으로만 제한되며, 서버/DB/엔드포인트 수정 없음.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/72-host-auto-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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/app/schedule/create/CreateScheduleClient.tsx`:
- Line 853: The href attribute in the CreateScheduleClient component uses string
concatenation to add query parameters
(href={`${links.participant}?participate=1`}), which will fail if
links.participant already contains query parameters, resulting in malformed URLs
like ?a=1?participate=1. Replace this line by constructing a URL object from
links.participant, using the searchParams.set method to safely add the
participate parameter, and then converting it back to a string for the href
attribute.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c2054e1a-c2e3-47a6-8135-5fd612fb971f

📥 Commits

Reviewing files that changed from the base of the PR and between 984b3b7 and 3ed497b.

📒 Files selected for processing (4)
  • src/app/schedule/[id]/ScheduleRoomClient.tsx
  • src/app/schedule/[id]/page.tsx
  • src/app/schedule/create/CreateScheduleClient.test.tsx
  • src/app/schedule/create/CreateScheduleClient.tsx

Comment thread src/app/schedule/create/CreateScheduleClient.tsx Outdated
kokkumong and others added 2 commits June 14, 2026 19:39
#71에서 소요시간이 select→자유입력으로 바뀌며 getByLabel("소요 시간")
.selectOption이 타임아웃되던 문제를 "예상 소요시간" 입력으로 수정.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
links.participant에 기존 쿼리가 있어도 ?a=1?participate=1 형태로
깨지지 않도록 ? / & 구분자를 동적으로 선택.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@kokkumong
kokkumong merged commit 2906c41 into dev Jun 14, 2026
5 checks passed
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.

[FEAT] 호스트(모임 생성자)를 자동 참여자로 포함

1 participant