Skip to content

fix(mypage): 마이페이지 UI 개선 - #105

Merged
evenif99 merged 1 commit into
devfrom
fix/mypage-improvements
Jun 22, 2026
Merged

fix(mypage): 마이페이지 UI 개선#105
evenif99 merged 1 commit into
devfrom
fix/mypage-improvements

Conversation

@evenif99

@evenif99 evenif99 commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • 상점/고객문의 메뉴 클릭 시 페이지 이동 대신 '준비중입니다.' 토스트 메시지 표시
  • 회원탈퇴 페이지 본문 폰트 색상을 text-secondary(회색)에서 text-primary(검정)로 변경
  • 회원탈퇴 페이지 상단에 사용자 프로필(아바타, 이름, 이메일) 표시 (/api/user/me 활용)

Test plan

  • 마이페이지에서 '상점' 클릭 시 토스트 메시지 확인
  • 마이페이지에서 '고객문의' 클릭 시 토스트 메시지 확인
  • 서비스 소개, 개인정보처리방침, 이용약관은 기존처럼 페이지 이동 확인
  • 회원탈퇴 페이지 본문 텍스트가 검정색으로 표시되는지 확인
  • 회원탈퇴 페이지 상단에 사용자 아바타, 이름, 이메일이 표시되는지 확인

🤖 Generated with Claude Code

Summary by CodeRabbit

릴리스 노트

  • 신규 기능

    • 마이페이지의 특정 메뉴 항목(상점, 문의) 클릭 시 "준비중입니다" 알림 표시
    • 탈퇴 페이지 상단에 사용자 프로필 영역(프로필 이미지, 이름, 이메일) 추가
  • 스타일

    • 마이페이지 탈퇴 페이지 프로필 섹션 스타일 개선

- 상점/고객문의 메뉴 클릭 시 페이지 이동 대신 토스트 메시지 표시
- 회원탈퇴 페이지 본문 폰트 색상을 text-secondary에서 text-primary로 변경
- 회원탈퇴 페이지 상단에 사용자 프로필(아바타, 이름, 이메일) 표시

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

vercel Bot commented Jun 22, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
talky-owl Ready Ready Preview, Comment Jun 22, 2026 6:01am

@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

마이페이지 메뉴에서 shop/contact 항목을 링크 대신 버튼으로 전환하고 클릭 시 "준비중입니다." 토스트를 표시하는 로직을 추가한다. 별도로, 탈퇴 페이지 상단에 사용자 아바타·이름·이메일을 표시하는 프로필 섹션과 대응 스타일을 추가한다.

Changes

마이페이지 준비중 메뉴 토스트 처리

Layer / File(s) Summary
준비중 상수·타입·가드 및 조건부 렌더링
src/app/(page)/mypage/page.tsx
PREPARING_ITEMS 상수와 PreparingKey 타입, isPreparing 타입 가드를 도입하고, useToastStore에서 showToast를 가져와 해당 항목 클릭 시 "준비중입니다." 토스트를 표시한다. LINK_ITEMS 순회 시 준비중 항목은 button, 나머지는 Link로 분기 렌더링한다.

탈퇴 페이지 프로필 UI 추가

Layer / File(s) Summary
프로필 데이터·스타일·JSX
src/app/(page)/mypage/withdraw/page.tsx, src/app/(page)/mypage/withdraw/page.module.scss
displayNamename/nickname 우선순위로 계산하고, .profile 및 하위 요소(__info, __name, __email)에 대한 flex·ellipsis·CSS 변수 색상 스타일을 추가한다. JSX에 section.profileAvatar와 이름·이메일을 렌더링하며, __paragraph 색상을 text-primary로 변경하고 버튼 JSX를 단일 라인으로 정리한다.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • I5-Project/TALKY-OWL#63: shop/contact 메뉴 항목을 준비중 토스트로 처리하는 동일한 기능 지점을 직접 수정·완성하는 변경이다.
  • I5-Project/TALKY-OWL#87: 동일한 mypage/withdraw/page.tsx 탈퇴 페이지 UI/로직 영역을 수정한 PR이다.

Poem

🐇 토끼가 메뉴를 살피다가
아직 준비 중인 문을 발견했네
버튼 하나 톡 누르면 팝업이 뜨고
탈퇴 페이지엔 얼굴도 생겼다네 🎉
준비중도, 프로필도, 모두 제자리!

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

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.
Description check ❓ Inconclusive PR 설명에서 작업 내용, 테스트 계획 등 기본 정보는 포함되어 있으나, 템플릿의 필수 섹션(담당 작업 영역, 관련 Issue, 변경 사항, 테스트 결과, 작업 범위 확인 등)이 완성되지 않았습니다. PR 템플릿의 모든 필수 섹션(2-10번)을 완성하세요. 특히 담당 작업 영역, 관련 Issue, 테스트 결과 체크박스, 작업 범위/보안 확인 항목을 채워주세요.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 변경 사항의 주요 내용을 명확하게 요약하고 있습니다. '마이페이지 UI 개선'은 마이페이지 메뉴 렌더링 로직, 텍스트 색상 변경, 사용자 프로필 표시 등 세 가지 UI 개선 사항을 포괄하는 적절한 제목입니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ 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 fix/mypage-improvements

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/app/(page)/mypage/page.tsx (1)

71-88: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick win

준비중 버튼에 접근성 속성 추가를 권장합니다.

준비중 항목은 button으로 렌더링되지만 시각적으로 Link와 동일하게 보입니다. 스크린 리더 사용자는 클릭하기 전까지 해당 항목이 탐색하지 않고 토스트를 표시한다는 것을 알 수 없습니다.

aria-label을 추가하여 준비중임을 명시하는 것이 좋습니다.

♿ 접근성 개선 제안
           isPreparing(item.key) ? (
             <button
               key={item.key}
               type="button"
               className={styles.menu__item}
               onClick={() => showToast('준비중입니다.')}
+              aria-label={`${item.label} (준비중)`}
             >
               <span className={styles.menu__label}>{item.label}</span>
               <ChevronRightRoundedIcon className={styles.menu__arrow} />
             </button>
🤖 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/app/`(page)/mypage/page.tsx around lines 71 - 88, The button element
rendered when isPreparing(item.key) is true lacks accessibility attributes that
would inform screen reader users that this is a preparing/unavailable menu item,
making it indistinguishable from regular navigation links. Add an aria-label
attribute to the button element that clearly indicates the item is under
preparation (e.g., "준비중인 메뉴" or similar), so screen reader users understand the
button's purpose and disabled state before interacting with it.
🤖 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/`(page)/mypage/withdraw/page.tsx:
- Around line 106-114: The Avatar component in the profile section is missing
the `alt` attribute required for accessibility compliance. Add an `alt` prop to
the Avatar component (the one with size="l" and src={user?.profileImageUrl ??
undefined}) with a descriptive alternative text, such as using the displayName
variable or a fallback value like "User profile image", to ensure screen reader
users can understand the purpose of the image and meet WCAG accessibility
standards.

---

Nitpick comments:
In `@src/app/`(page)/mypage/page.tsx:
- Around line 71-88: The button element rendered when isPreparing(item.key) is
true lacks accessibility attributes that would inform screen reader users that
this is a preparing/unavailable menu item, making it indistinguishable from
regular navigation links. Add an aria-label attribute to the button element that
clearly indicates the item is under preparation (e.g., "준비중인 메뉴" or similar), so
screen reader users understand the button's purpose and disabled state before
interacting with it.
🪄 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: Repository UI (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 713f343a-517c-4c87-8d62-ee79f2ce613a

📥 Commits

Reviewing files that changed from the base of the PR and between 6d1c4a6 and 1c55800.

📒 Files selected for processing (3)
  • src/app/(page)/mypage/page.tsx
  • src/app/(page)/mypage/withdraw/page.module.scss
  • src/app/(page)/mypage/withdraw/page.tsx

Comment on lines +106 to +114
<section className={styles.profile}>
<Avatar size="l" src={user?.profileImageUrl ?? undefined} />
<div className={styles.profile__info}>
<span className={styles.profile__name}>{displayName}</span>
<span className={styles.profile__email}>{user?.email ?? ''}</span>
</div>
</section>
<div className={styles.terms}>
{WITHDRAW_TERMS.map(section => (
{WITHDRAW_TERMS.map((section) => (

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Avatar에 접근성을 위한 alt 속성을 추가해야 합니다.

스크린 리더 사용자를 위해 Avatar 컴포넌트에 대체 텍스트를 제공해야 합니다. 현재 alt 속성이 누락되어 있어 접근성 기준(WCAG)을 위반합니다.

♿ 접근성 개선 제안
-        <section className={styles.profile}>
-          <Avatar size="l" src={user?.profileImageUrl ?? undefined} />
+        <section className={styles.profile}>
+          <Avatar size="l" src={user?.profileImageUrl ?? undefined} alt={displayName || '사용자'} />
           <div className={styles.profile__info}>
🤖 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/app/`(page)/mypage/withdraw/page.tsx around lines 106 - 114, The Avatar
component in the profile section is missing the `alt` attribute required for
accessibility compliance. Add an `alt` prop to the Avatar component (the one
with size="l" and src={user?.profileImageUrl ?? undefined}) with a descriptive
alternative text, such as using the displayName variable or a fallback value
like "User profile image", to ensure screen reader users can understand the
purpose of the image and meet WCAG accessibility standards.

@evenif99 evenif99 self-assigned this Jun 22, 2026
@evenif99
evenif99 merged commit c079671 into dev Jun 22, 2026
3 checks passed
@evenif99
evenif99 deleted the fix/mypage-improvements branch June 22, 2026 09:20
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.

1 participant