Skip to content

feat/#22: start, continue comment 뷰 구현#23

Merged
sung-silver merged 9 commits intodevelopfrom
feat/#22
Apr 18, 2026
Merged

feat/#22: start, continue comment 뷰 구현#23
sung-silver merged 9 commits intodevelopfrom
feat/#22

Conversation

@sung-silver
Copy link
Copy Markdown
Contributor

Related Issue 🚀

Work Description ✏️

  • start, continue comment 뷰 구현
  • 멤버 선택 모달 버튼 활성화 디테일 변경
  • comment 추가 버튼 활성화 디테일 변경

PR Point 📸

2026-04-15.10.57.53.mov

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 15, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f2981c96-6472-48f8-af69-a4f23d44d2a2

📥 Commits

Reviewing files that changed from the base of the PR and between d88c2e6 and 0ec6546.

📒 Files selected for processing (4)
  • src/components/peer-comment/PeerCommentStepTemplate.tsx
  • src/components/peer-comment/PeerMemberPicker.css.ts
  • src/components/peer-comment/PeerMemberPicker.tsx
  • src/utils/peerCommentUtils.ts
💤 Files with no reviewable changes (1)
  • src/utils/peerCommentUtils.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/components/peer-comment/PeerMemberPicker.css.ts
  • src/components/peer-comment/PeerMemberPicker.tsx

Summary by CodeRabbit

  • 새로운 기능

    • 피어 댓글 흐름에 두 개의 새 단계 페이지 추가 및 각 단계용 콘텐츠(한글 문구·예시 이미지) 추가
  • 버그 수정/개선

    • 빈 입력 시 “추가” 및 “선택 완료” 버튼 비활성화로 잘못된 제출 방지
    • 다음 단계 활성화 조건 변경(행 유효성 기준 조정)
  • UI 개선

    • 멤버 선택 하단 시트 동작 및 레이아웃·스타일 개선

Walkthrough

라우터에 /start-comment/continue-comment 경로가 추가되고, 피어 코멘트 템플릿 관련 타입/상수가 중앙화되었으며 반복 입력기와 멤버 선택기에서 미완성 입력에 따른 버튼 비활성화 로직과 시트(BottomSheet) 스타일/구현 변경이 적용되었습니다.

Changes

Cohort / File(s) Summary
라우팅 변경
src/App.tsx
라우터에 /start-comment, /continue-comment 경로 추가; 각각 StartCommentPage, ContinueCommentPage 렌더링
새 페이지
src/pages/StartCommentPage.tsx, src/pages/ContinueCommentPage.tsx
PeerCommentStepTemplate 기반의 새 페이지 컴포넌트 추가(각각 step content와 nextPath 지정)
상수·타입 중앙화
src/constant/peerCommentStepContents.ts, src/types/comment.ts, src/types/index.ts
피어 코멘트 단계용 콘텐츠 상수 추가 및 PeerCommentStepContent 타입을 src/types로 이동·재수출
템플릿 변경
src/components/peer-comment/PeerCommentStepTemplate.tsx, src/components/index.ts, src/components/peer-comment/PeerCommentBlock.tsx
템플릿의 export 인터페이스 제거·로컬화, PeerCommentStepContent@types에서 사용, Next 활성화 조건 단순화 및 submissionPatch 단순화
반복 입력기 검증
src/components/peer-comment/PeerCommentRepeater.tsx
미완성 행 존재 시 “추가” 버튼 비활성화 로직 추가(isAddDisabled)
멤버 선택기 및 스타일
src/components/peer-comment/PeerMemberPicker.tsx, src/components/peer-comment/PeerMemberPicker.css.ts
Dialog → BottomSheet로 교체(열림 제어 prop 변경), 멤버 미선택 시 확인 버튼 비활성화(isConfirmDisabled), 시트 표면 레이아웃/글로벌 스타일 변경
내비게이션 업데이트
src/pages/StopCommentPage.tsx
템플릿에 전달하는 content를 상수로 변경하고 nextPath"/start-comment"로 수정
유틸 정리
src/utils/peerCommentUtils.ts
hasAtLeastOneCompletePeerRow 유틸 제거

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

🐰 새 길 위에 폴짝, 시작과 이어짐을 심었네.
비어 있으면 버튼은 잠들고, 채워지면 길이 열려요.
그림 두 장 반짝이며 문장을 도와주고,
토끼는 조용히 귀 기울여 피어의 목소리를 모으네.
🥕✨

🚥 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 제목이 주요 변경사항을 명확하게 반영하고 있으며, start/continue comment 뷰 구현이라는 핵심 내용을 간결하게 전달합니다.
Description check ✅ Passed PR 설명이 템플릿의 필수 섹션(Related Issue, Work Description)을 충실히 포함하고 있으며, 구체적인 작업 내용과 변경사항을 명시합니다.
Linked Issues check ✅ Passed PR의 코드 변경사항이 #22 이슈의 모든 요구사항을 충족합니다: start/continue 뷰 구현, 템플릿 활용, 버튼 활성화 디테일 변경이 모두 반영되었습니다.
Out of Scope Changes check ✅ Passed 모든 코드 변경사항이 #22 이슈의 범위 내에 있으며, 요구된 기능 구현과 UI/동작 개선에 집중되어 있습니다.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/#22

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
Copy Markdown

@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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/components/peer-comment/PeerCommentRepeater.tsx (1)

33-58: ⚠️ Potential issue | 🟡 Minor

공백만 입력된 경우 추가 버튼이 잘못 활성화됩니다.

Line 33에서 row.text.length === 0만 검사하면 ' ' 같은 공백 입력이 유효 텍스트처럼 처리됩니다. 그 결과 Line 58의 disabledfalse가 되어, 실제로는 미완성 행인데도 추가가 가능해집니다.

수정 제안
-  const isAddDisabled = rows.some((row) => row.memberIds.length === 0 || row.text.length === 0);
+  const isAddDisabled = rows.some((row) => row.memberIds.length === 0 || row.text.trim().length === 0);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/components/peer-comment/PeerCommentRepeater.tsx` around lines 33 - 58,
The disabled check allows whitespace-only text because it uses row.text.length
=== 0; update the isAddDisabled computation to treat whitespace as empty by
trimming the text (e.g., replace the check with something like
(row.memberIds.length === 0 || (row.text || '').trim().length === 0)). Locate
the isAddDisabled variable and change the row.text length test to use .trim()
(and guard against null/undefined) so the Add Button (disabled prop) correctly
disables for whitespace-only input.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@src/components/peer-comment/PeerCommentRepeater.tsx`:
- Around line 33-58: The disabled check allows whitespace-only text because it
uses row.text.length === 0; update the isAddDisabled computation to treat
whitespace as empty by trimming the text (e.g., replace the check with something
like (row.memberIds.length === 0 || (row.text || '').trim().length === 0)).
Locate the isAddDisabled variable and change the row.text length test to use
.trim() (and guard against null/undefined) so the Add Button (disabled prop)
correctly disables for whitespace-only input.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 20bb9971-0442-4857-bfc6-82de3f2dd7cb

📥 Commits

Reviewing files that changed from the base of the PR and between 4e19a1f and 1eb2997.

⛔ Files ignored due to path filters (4)
  • src/assets/continue_comment_example.svg is excluded by !**/*.svg
  • src/assets/continue_comment_explanation.svg is excluded by !**/*.svg
  • src/assets/start_comment_example.svg is excluded by !**/*.svg
  • src/assets/start_comment_explanation.svg is excluded by !**/*.svg
📒 Files selected for processing (6)
  • src/App.tsx
  • src/components/peer-comment/PeerCommentRepeater.tsx
  • src/components/peer-comment/PeerMemberPicker.tsx
  • src/pages/ContinueCommentPage.tsx
  • src/pages/StartCommentPage.tsx
  • src/pages/StopCommentPage.tsx

Copy link
Copy Markdown

@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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/components/peer-comment/PeerMemberPicker.css.ts`:
- Around line 30-39: The current globalStyle selector using body >
div:has(.${sheetDialogSurface}) is too broad and can match the app root; update
PeerMemberPicker.css.ts to scope styles to the actual sheet element instead of
its ancestor—e.g., target the sheetDialogSurface class/identifier itself or a
stable slot/prop provided by BottomSheetContent (refer to sheetDialogSurface and
PeerMemberPicker.tsx where BottomSheetContent is used), or add a unique wrapper
class on the sheet instance and apply styles to that class so
width/maxWidth/backgroundColor/transform only affect the sheet element.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0beb6173-ca6b-499e-a4f1-b090b9b99157

📥 Commits

Reviewing files that changed from the base of the PR and between 1eb2997 and d88c2e6.

📒 Files selected for processing (12)
  • src/components/index.ts
  • src/components/peer-comment/PeerCommentBlock.tsx
  • src/components/peer-comment/PeerCommentRepeater.tsx
  • src/components/peer-comment/PeerCommentStepTemplate.tsx
  • src/components/peer-comment/PeerMemberPicker.css.ts
  • src/components/peer-comment/PeerMemberPicker.tsx
  • src/constant/peerCommentStepContents.ts
  • src/pages/ContinueCommentPage.tsx
  • src/pages/StartCommentPage.tsx
  • src/pages/StopCommentPage.tsx
  • src/types/comment.ts
  • src/types/index.ts
✅ Files skipped from review due to trivial changes (5)
  • src/types/index.ts
  • src/components/peer-comment/PeerCommentBlock.tsx
  • src/pages/ContinueCommentPage.tsx
  • src/types/comment.ts
  • src/constant/peerCommentStepContents.ts
🚧 Files skipped from review as they are similar to previous changes (4)
  • src/components/peer-comment/PeerCommentRepeater.tsx
  • src/pages/StopCommentPage.tsx
  • src/components/peer-comment/PeerMemberPicker.tsx
  • src/pages/StartCommentPage.tsx

Comment thread src/components/peer-comment/PeerMemberPicker.css.ts Outdated
@sung-silver sung-silver merged commit b86e1ec into develop Apr 18, 2026
1 check passed
@sung-silver sung-silver deleted the feat/#22 branch April 18, 2026 07:13
yungu0010 pushed a commit that referenced this pull request Apr 18, 2026
* feat: start comment 뷰 구현

* feat: continue 페이지 구현

* feat: PeerCommentRepeater 추가 버튼 활성화 기준 추가

* feat: 멤버 선택 모달에서 멤버를 1명 이상 선택해야지만 확인 완료 버튼이 활성화되도록 변경

* refactor: 코드 리뷰 반영

* refactor: peer_comment 뷰에서 사용되는 데이터 상수로 분리

* feat: dialog를 botomsheet로 변경

* feat: Next 버튼 비활성화 로직 제거

* refactor: 코드리뷰 반영
yungu0010 pushed a commit that referenced this pull request Apr 21, 2026
* feat: start comment 뷰 구현

* feat: continue 페이지 구현

* feat: PeerCommentRepeater 추가 버튼 활성화 기준 추가

* feat: 멤버 선택 모달에서 멤버를 1명 이상 선택해야지만 확인 완료 버튼이 활성화되도록 변경

* refactor: 코드 리뷰 반영

* refactor: peer_comment 뷰에서 사용되는 데이터 상수로 분리

* feat: dialog를 botomsheet로 변경

* feat: Next 버튼 비활성화 로직 제거

* refactor: 코드리뷰 반영
yungu0010 pushed a commit that referenced this pull request Apr 21, 2026
* feat: start comment 뷰 구현

* feat: continue 페이지 구현

* feat: PeerCommentRepeater 추가 버튼 활성화 기준 추가

* feat: 멤버 선택 모달에서 멤버를 1명 이상 선택해야지만 확인 완료 버튼이 활성화되도록 변경

* refactor: 코드 리뷰 반영

* refactor: peer_comment 뷰에서 사용되는 데이터 상수로 분리

* feat: dialog를 botomsheet로 변경

* feat: Next 버튼 비활성화 로직 제거

* refactor: 코드리뷰 반영
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: continue, start 뷰 구현

1 participant