Skip to content

[Fix] #82 온보딩 UI 수정 - #83

Merged
nabbang6 merged 5 commits into
developfrom
fix/#82-온보딩-UI-수정
May 30, 2026

Hidden character warning

The head ref may contain hidden characters: "fix/#82-\uc628\ubcf4\ub529-UI-\uc218\uc815"
Merged

nabbang6 merged 5 commits into
developfrom
fix/#82-온보딩-UI-수정

Conversation

@nabbang6

@nabbang6 nabbang6 commented May 30, 2026

Copy link
Copy Markdown
Collaborator

🗒️ PR 타입

  • 기능 추가
  • 기능 삭제
  • 버그 수정
  • 코드 리팩토링
  • 문서 수정
  • 의존성, 환경 변수, 빌드 관련 코드 업데이트

🔗 관련 이슈


📌 작업사항

  • 온보딩 미완료 상태로 뒤로가기 시 인증 토큰(localStorage) 초기화
  • 온보딩 페이지 x축 여백을 홈 화면(px-400)과 통일 (max-w-93.75 제거)
  • SelectField 드롭다운 아이템 텍스트 수직 클리핑 수정 (truncate를 button → inner span으로 이동)
  • SelectField / DropdownTrigger disabled prop 지원 추가
  • 마이페이지 프로필 편집, 온보딩 학교 정보 단계에서 캠퍼스 미선택·로딩 중 학과 필드 비활성화
  • 학과 목록 로딩 중 placeholder 텍스트 변경으로 인한 깜빡임 제거

📸 스크린샷

image image

📣 기타사항 및 코멘트

캠퍼스 미선택 상태에서 학과 선택 시 아래처럼 표시되는 문제가 잇어서 캠퍼스 선택 전까지는 disabled로 표시되게 처리했습니당!
image


✅ 체크리스트

  • 로컬에서 빌드 및 테스트 완료
  • Label 지정 완료
  • 리뷰어 지정 완료
  • 코드 리뷰 반영 완료

Summary by CodeRabbit

릴리스 노트

  • Bug Fixes

    • 선택 필드의 비활성화 상태 처리 개선
    • 학과 목록 로딩 중 선택 비활성화 기능 추가
    • 온보딩 페이지 뒤로가기 동작 개선
  • Style

    • 온보딩 페이지 레이아웃 스타일 업데이트

Review Change Stack

@nabbang6
nabbang6 requested a review from hdg0116 May 30, 2026 16:09
@nabbang6 nabbang6 self-assigned this May 30, 2026
@nabbang6 nabbang6 added the 🐞 Fix 버그 해결 label May 30, 2026
@vercel

vercel Bot commented May 30, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
bangjjack-frontend-dev Ready Ready Preview, Comment May 30, 2026 4:17pm

@coderabbitai

coderabbitai Bot commented May 30, 2026

Copy link
Copy Markdown

Warning

Review limit reached

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

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

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ 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: CHILL

Plan: Pro

Run ID: ae581e0a-8efd-4321-af07-9c66fb36e0e8

📥 Commits

Reviewing files that changed from the base of the PR and between b1210bc and e6c760b.

📒 Files selected for processing (1)
  • src/pages/LoginPage.tsx

Walkthrough

드롭다운 및 선택 필드 컴포넌트에 비활성 상태 지원을 추가하고, 온보딩 및 프로필 편집 플로우에서 선택 필드 종속성을 강제합니다. 부서 필드 플레이스홀더를 단순화하고, 온보딩 레이아웃 너비를 조정하며, 뒤로 가기 네비게이션에 인증 정리를 추가합니다.

Changes

필드 비활성 상태 및 검증

Layer / File(s) Summary
드롭다운 비활성 상태 기초
src/components/ui/dropdown.tsx
DropdownTrigger에서 disabled prop을 처리하고, 비활성 상태일 때 키보드와 클릭 핸들러를 차단하며, 기본 버튼 요소에 비활성 상태를 전달합니다.
선택 필드 비활성 상태 및 렌더링
src/components/ui/select-field.tsx
SelectField에 선택 비활성 prop을 추가하고, DropdownTrigger에 조건부 스타일링(커서 변경, 불투명도 감소)과 함께 전달하며, DropdownItem의 레이블을 전용 절단 span으로 래핑하도록 리팩터링합니다.
온보딩 선택 필드 비활성 상태 전파
src/features/onboarding/components/fields/OnBoardingSelectField.tsx
OnBoardingSelectField에 선택 비활성 prop을 추가하고 기본 SelectField로 전달하여 온보딩 플로우에서 비활성 상태 제어를 활성화합니다.
온보딩 및 프로필 부서 필드 검증
src/features/onboarding/components/steps/OnBoardingSchoolInfoStep.tsx, src/features/mypage/components/profile-edit/ProfileEditFields.tsx
부서 플레이스홀더 로직을 단순화하고, 캠퍼스를 선택하지 않았거나 부서 목록이 로딩 중일 때 부서 필드를 비활성화하여 온보딩 및 프로필 편집 플로우에서 필드 종속성을 강제합니다.

온보딩 레이아웃 및 네비게이션

Layer / File(s) Summary
온보딩 레이아웃 너비 조정
src/features/onboarding/components/OnBoardingLayout.tsx
온보딩 레이아웃 래퍼에서 가로 중앙 정렬 및 최대 너비 제약(mx-auto, max-w-93.75)을 제거하여 전체 너비 레이아웃을 허용합니다.
뒤로 가기 네비게이션 인증 정리
src/pages/OnBoardingPage.tsx
OnBoardingPage 뒤로 가기 네비게이션을 사용자 정의 콜백으로 변경하여 뒤로 이동하기 전에 인증 상태를 정리합니다.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • Bangjjack/Bangjjack-Frontend#17: 메인 PR은 OnBoardingPage의 뒤로가기 동작을 useGoBack 관련 변경과 clearAuth() 호출로 확장하는 것으로, retrieved PR의 공통 훅 추가와 연결됩니다.

Suggested labels

🔨 Refactor

Suggested reviewers

  • hdg0116
🚥 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 제목은 '#82 온보딩 UI 수정'으로 연결 이슈와 주요 변경 사항을 명확히 반영합니다.
Linked Issues check ✅ Passed 코드 변경사항이 #82의 모든 요구사항(캠퍼스 미선택 시 학과 비활성화, x축 패딩 통일, 드롭다운 렌더링 수정)을 충족합니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 #82의 명시된 목표 범위 내에 있으며, 범위를 벗어난 변경사항이 없습니다.
Description check ✅ Passed PR 설명이 템플릿의 모든 주요 섹션을 포함하고 있으며, 작업사항과 스크린샷이 구체적으로 명시되어 있습니다.

✏️ 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 fix/#82-온보딩-UI-수정

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.

@github-actions

Copy link
Copy Markdown

✅ CI 검증 결과

TypeScript: 통과
ESLint: 통과
Prettier: 통과
Build: 통과

🎉 모든 검증을 통과했습니다.

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

🧹 Nitpick comments (2)
src/features/onboarding/components/steps/OnBoardingSchoolInfoStep.tsx (1)

59-59: ⚡ Quick win

에러 상태일 때도 필드를 비활성화하는 것을 고려하세요.

학과 목록 로딩이 실패하면(isDepartmentsError === true) departments 배열이 비어있어 드롭다운에 옵션이 표시되지 않습니다. 현재는 캠퍼스가 선택되고 로딩이 끝나면 에러 상태에서도 필드가 활성화되어 사용자가 빈 드롭다운을 열 수 있습니다.

더 나은 UX를 위해 에러 상태에서도 필드를 비활성화하는 것을 고려해보세요.

♻️ 제안하는 수정
-            disabled={!values.campus || isDepartmentsLoading}
+            disabled={!values.campus || isDepartmentsLoading || isDepartmentsError}
🤖 Prompt for 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.

In `@src/features/onboarding/components/steps/OnBoardingSchoolInfoStep.tsx` at
line 59, The dropdown is still enabled when departments failed to load; update
the disabled condition in OnBoardingSchoolInfoStep so it also disables the field
when isDepartmentsError is true (or when departments is empty) in addition to
!values.campus and isDepartmentsLoading: modify the prop expression that
currently uses !values.campus || isDepartmentsLoading to include ||
isDepartmentsError (or || departments.length === 0) so the select remains
disabled on load error.
src/features/mypage/components/profile-edit/ProfileEditFields.tsx (1)

189-189: ⚡ Quick win

에러 상태일 때도 필드를 비활성화하는 것을 고려하세요.

온보딩 화면과 동일한 패턴이지만, 학과 목록 로딩이 실패했을 때(isDepartmentsError === true) 필드가 활성화되어 빈 드롭다운을 열 수 있습니다.

에러 상태에서도 필드를 비활성화하여 일관된 UX를 제공하는 것을 권장합니다.

♻️ 제안하는 수정
-                disabled={!selectedCampus || isDepartmentsLoading}
+                disabled={!selectedCampus || isDepartmentsLoading || isDepartmentsError}
🤖 Prompt for 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.

In `@src/features/mypage/components/profile-edit/ProfileEditFields.tsx` at line
189, The dropdown's disabled prop currently checks only selectedCampus and
isDepartmentsLoading, so when department loading fails the field remains
enabled; update the disabled expression used in the ProfileEditFields component
(the JSX element using disabled={!selectedCampus || isDepartmentsLoading}) to
also include isDepartmentsError (e.g., disabled={!selectedCampus ||
isDepartmentsLoading || isDepartmentsError}) so the field is disabled on load
error and matches onboarding UX.
🤖 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.

Nitpick comments:
In `@src/features/mypage/components/profile-edit/ProfileEditFields.tsx`:
- Line 189: The dropdown's disabled prop currently checks only selectedCampus
and isDepartmentsLoading, so when department loading fails the field remains
enabled; update the disabled expression used in the ProfileEditFields component
(the JSX element using disabled={!selectedCampus || isDepartmentsLoading}) to
also include isDepartmentsError (e.g., disabled={!selectedCampus ||
isDepartmentsLoading || isDepartmentsError}) so the field is disabled on load
error and matches onboarding UX.

In `@src/features/onboarding/components/steps/OnBoardingSchoolInfoStep.tsx`:
- Line 59: The dropdown is still enabled when departments failed to load; update
the disabled condition in OnBoardingSchoolInfoStep so it also disables the field
when isDepartmentsError is true (or when departments is empty) in addition to
!values.campus and isDepartmentsLoading: modify the prop expression that
currently uses !values.campus || isDepartmentsLoading to include ||
isDepartmentsError (or || departments.length === 0) so the select remains
disabled on load error.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: b6ea8016-1834-47c7-a821-195718eb7d37

📥 Commits

Reviewing files that changed from the base of the PR and between 2762153 and b1210bc.

📒 Files selected for processing (7)
  • src/components/ui/dropdown.tsx
  • src/components/ui/select-field.tsx
  • src/features/mypage/components/profile-edit/ProfileEditFields.tsx
  • src/features/onboarding/components/OnBoardingLayout.tsx
  • src/features/onboarding/components/fields/OnBoardingSelectField.tsx
  • src/features/onboarding/components/steps/OnBoardingSchoolInfoStep.tsx
  • src/pages/OnBoardingPage.tsx

@github-actions

Copy link
Copy Markdown

✅ CI 검증 결과

TypeScript: 통과
ESLint: 통과
Prettier: 통과
Build: 통과

🎉 모든 검증을 통과했습니다.

@nabbang6
nabbang6 merged commit d94fb2d into develop May 30, 2026
4 checks passed
@nabbang6
nabbang6 deleted the fix/#82-온보딩-UI-수정 branch June 2, 2026 08:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐞 Fix 버그 해결

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Fix] #82 온보딩 UI 수정

1 participant