Skip to content

feat: 첫 글자 보여주도록 수정#124

Merged
ff1451 merged 1 commit intodevelopfrom
123-feat-기본-이미지-대신-첫-글자-보여주도록-추가
Feb 19, 2026

Hidden character warning

The head ref may contain hidden characters: "123-feat-\uae30\ubcf8-\uc774\ubbf8\uc9c0-\ub300\uc2e0-\uccab-\uae00\uc790-\ubcf4\uc5ec\uc8fc\ub3c4\ub85d-\ucd94\uac00"
Merged

feat: 첫 글자 보여주도록 수정#124
ff1451 merged 1 commit intodevelopfrom
123-feat-기본-이미지-대신-첫-글자-보여주도록-추가

Conversation

@ff1451
Copy link
Copy Markdown
Collaborator

@ff1451 ff1451 commented Feb 19, 2026

Summary by CodeRabbit

릴리스 노트

  • 스타일
    • 멤버 목록 및 사용자 정보 페이지의 아바타 이미지를 사용자 이름의 첫 글자를 표시하는 원형 플레이스홀더로 변경했습니다.
    • 새로운 아바타 디자인은 모든 관련 페이지에 일관되게 적용됩니다.
    • 기존의 모든 상호작용과 기능은 변경되지 않습니다.

@ff1451 ff1451 self-assigned this Feb 19, 2026
@ff1451 ff1451 linked an issue Feb 19, 2026 that may be closed by this pull request
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 19, 2026

📝 Walkthrough

둘러보기

두 컴포넌트 파일에서 아바타 이미지 요소를 이름의 첫 글자로 표시하는 원형 div 플레이스홀더로 교체했습니다. ManagedMemberList에서 3개, UserInfoCard에서 1개의 img 태그를 주석 처리하고 스타일이 적용된 초기 문자 렌더링으로 변경했습니다. 데이터 흐름, 이벤트 핸들링, 레이아웃 구조는 변경 없이 순수한 UI 표현만 수정되었습니다.

🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목이 변경사항의 핵심을 명확하게 반영하고 있습니다. 이미지 대신 첫 글자를 표시하는 변경이 정확히 제목에 나타났습니다.

✏️ 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 123-feat-기본-이미지-대신-첫-글자-보여주도록-추가

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

Copy link
Copy Markdown
Contributor

@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/pages/User/MyPage/components/UserInfoCard.tsx (1)

30-30: ⚠️ Potential issue | 🟡 Minor

ManagerDetailInfoCard의 클럽 아바타도 첫 글자로 변경 필요

PR에서 사용자 아바타는 첫 글자로 변경했으나, ManagerDetailInfoCard의 클럽 이미지(30줄)는 여전히 <img> 태그를 사용 중입니다. ManagedMemberList에서는 이미 멤버 아바타를 첫 글자로 변경했으므로, 클럽 아바타도 같은 패턴으로 통일하면 좋겠습니다.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/pages/User/MyPage/components/UserInfoCard.tsx` at line 30, In
ManagerDetailInfoCard replace the <img> usage that reads managedClub?.imageUrl
with the same initial-based avatar pattern used in ManagedMemberList: render a
rounded div (matching classes h-12 w-12 rounded-full etc.) that shows the first
character of managedClub?.name (or title) centered, with a fallback background
when imageUrl is missing; ensure you reference managedClub when computing the
initial and remove reliance on src/imageUrl for display so behavior is
consistent with ManagedMemberList.
🧹 Nitpick comments (4)
src/pages/Manager/ManagedMemberList/index.tsx (3)

358-361: 중복 패턴 - 위에서 제안한 컴포넌트 활용

Change Vice President Modal의 아바타도 동일한 패턴입니다. 주석 코드 제거 후 공통 컴포넌트 사용을 권장합니다.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/pages/Manager/ManagedMemberList/index.tsx` around lines 358 - 361, Remove
the commented-out <img> and replace the duplicated inline avatar markup in
ManagedMemberList (the div rendering member.name.charAt(0)) with a shared Avatar
component (e.g., Avatar(props) that accepts name, src, size/className); also
update the Change Vice President Modal to use the same Avatar component so both
places reuse the logic/display (handle fallback to initials when src is missing,
accept className like "h-8 w-8 rounded-full object-cover" and preserve
background/text color behavior).

211-214: 주석 처리된 코드 제거 및 Avatar 컴포넌트 추출 권장

주석 처리된 이전 코드를 제거해주세요. 또한, 동일한 아바타 패턴이 파일 내에서 3번 반복되므로 재사용 가능한 컴포넌트로 추출하는 것을 권장합니다.

♻️ Avatar 컴포넌트 추출 제안
// 별도 파일 또는 파일 상단에 추가
interface InitialAvatarProps {
  name: string;
  size?: 'sm' | 'md';
}

function InitialAvatar({ name, size = 'md' }: InitialAvatarProps) {
  const sizeClass = size === 'sm' ? 'h-8 w-8' : 'h-10 w-10';
  return (
    <div className={`flex ${sizeClass} items-center justify-center rounded-full bg-indigo-100 text-indigo-400`}>
      {name.charAt(0) || '?'}
    </div>
  );
}

사용 예시:

-{/* <img className="h-10 w-10 rounded-full object-cover" src={member.imageUrl} alt={member.name} /> */}
-<div className="flex h-10 w-10 items-center justify-center rounded-full bg-indigo-100 text-indigo-400">
-  {member.name.charAt(0)}
-</div>
+<InitialAvatar name={member.name} />
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/pages/Manager/ManagedMemberList/index.tsx` around lines 211 - 214, Remove
the commented-out img element in ManagedMemberList and extract the repeated
avatar markup into a reusable component named InitialAvatar (with
InitialAvatarProps and a size prop defaulting to 'md'); replace the three inline
instances that render member.name.charAt(0) with <InitialAvatar
name={member.name} size="..."/> (use 'sm' or 'md' as appropriate) so the avatar
logic is centralized and the old commented code is deleted.

306-309: 중복 패턴 - 위에서 제안한 컴포넌트 활용

Transfer President Modal의 아바타도 동일한 패턴입니다. 주석 코드 제거 후 공통 컴포넌트 사용을 권장합니다.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/pages/Manager/ManagedMemberList/index.tsx` around lines 306 - 309, 관리자
목록에서 주석 처리된 img와 현재 직접 만든 초기 문자 블록을 제거하고, 공통 아바타 컴포넌트(예: Avatar)를 사용하도록 교체하세요;
구체적으로 ManagedMemberList 컴포넌트의 member.imageUrl / member.name.charAt(0) 로직을
Avatar에 위임하고, TransferPresidentModal에서도 동일한 Avatar 컴포넌트를 사용하도록 통일하여 중복 패턴을
제거하세요.
src/pages/User/MyPage/components/UserInfoCard.tsx (1)

102-105: 주석 처리된 코드 제거 권장

주석 처리된 이전 코드를 제거해주세요. ManagedMemberList에서 제안한 InitialAvatar 컴포넌트를 공유하면 일관성 있게 사용할 수 있습니다.

♻️ 제안
-{/* <img className="h-12 w-12 rounded-full" src={myInfo.imageUrl} alt="Member Avatar" /> */}
-<div className="flex h-12 w-12 items-center justify-center rounded-full bg-indigo-100 text-indigo-400">
-  {myInfo.name.charAt(0)}
-</div>
+<InitialAvatar name={myInfo.name} size="lg" />
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/pages/User/MyPage/components/UserInfoCard.tsx` around lines 102 - 105,
Remove the commented-out img element in UserInfoCard (the line referencing
myInfo.imageUrl) and replace its usage with the shared InitialAvatar component
used by ManagedMemberList to keep avatar rendering consistent; update
UserInfoCard to render <InitialAvatar ...> (passing the same props currently
used in ManagedMemberList, e.g., name or imageUrl) and remove the leftover
comment so all avatar logic is centralized in InitialAvatar.
🤖 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/pages/User/MyPage/components/UserInfoCard.tsx`:
- Line 30: In ManagerDetailInfoCard replace the <img> usage that reads
managedClub?.imageUrl with the same initial-based avatar pattern used in
ManagedMemberList: render a rounded div (matching classes h-12 w-12 rounded-full
etc.) that shows the first character of managedClub?.name (or title) centered,
with a fallback background when imageUrl is missing; ensure you reference
managedClub when computing the initial and remove reliance on src/imageUrl for
display so behavior is consistent with ManagedMemberList.

---

Nitpick comments:
In `@src/pages/Manager/ManagedMemberList/index.tsx`:
- Around line 358-361: Remove the commented-out <img> and replace the duplicated
inline avatar markup in ManagedMemberList (the div rendering
member.name.charAt(0)) with a shared Avatar component (e.g., Avatar(props) that
accepts name, src, size/className); also update the Change Vice President Modal
to use the same Avatar component so both places reuse the logic/display (handle
fallback to initials when src is missing, accept className like "h-8 w-8
rounded-full object-cover" and preserve background/text color behavior).
- Around line 211-214: Remove the commented-out img element in ManagedMemberList
and extract the repeated avatar markup into a reusable component named
InitialAvatar (with InitialAvatarProps and a size prop defaulting to 'md');
replace the three inline instances that render member.name.charAt(0) with
<InitialAvatar name={member.name} size="..."/> (use 'sm' or 'md' as appropriate)
so the avatar logic is centralized and the old commented code is deleted.
- Around line 306-309: 관리자 목록에서 주석 처리된 img와 현재 직접 만든 초기 문자 블록을 제거하고, 공통 아바타
컴포넌트(예: Avatar)를 사용하도록 교체하세요; 구체적으로 ManagedMemberList 컴포넌트의 member.imageUrl /
member.name.charAt(0) 로직을 Avatar에 위임하고, TransferPresidentModal에서도 동일한 Avatar
컴포넌트를 사용하도록 통일하여 중복 패턴을 제거하세요.

In `@src/pages/User/MyPage/components/UserInfoCard.tsx`:
- Around line 102-105: Remove the commented-out img element in UserInfoCard (the
line referencing myInfo.imageUrl) and replace its usage with the shared
InitialAvatar component used by ManagedMemberList to keep avatar rendering
consistent; update UserInfoCard to render <InitialAvatar ...> (passing the same
props currently used in ManagedMemberList, e.g., name or imageUrl) and remove
the leftover comment so all avatar logic is centralized in InitialAvatar.

@ff1451 ff1451 merged commit ecf94ed into develop Feb 19, 2026
2 checks passed
@ff1451 ff1451 mentioned this pull request Feb 20, 2026
ff1451 added a commit that referenced this pull request Feb 20, 2026
* feat: 알림설정 구현 (#108)

* chore: min-w 추가

* [chore] 코드래빗 설정 파일 추가 (#110)

* chore: 코드래빗 설정 파일 추가

* chore: 불필요한 tools 설정 제거

* [feat] preMember 목록 분리 및 삭제 기능 추가 (#115)

* feat: preMember 목록 분리 및 삭제 기능 추가

* chore: Pascal case

* chore: 변경된 변수명 반영

* feat: 학번 숫자 필터링 추가

* [feat] 채팅 목차 알림 상태 추가 (#113)

* chore: svg 추가

* feat: 채팅목록 알림 끄기 설정시 UI 추가

* feat: 목차 열릴시 애니메이션 추가

* [feat] 달력 카테고리 분류 추가 (#118)

* feat: 카테고리 추가

* chore: 불필요한 코드 삭제

* [refactor] 관리자 페이지 및 마이페이지 UI 수정 및 리팩토링 (#117)

* feat: 정보 카드에서 정보 페이지로 이동하도록 기능 추가

* feat: 토스트 전역상태 추가

* refactor: query 훅 분리 및 onSuccess 콜백 옵션 제거

* refactor: query 훅 사용처 수정

* refactor: 사용처 수정 2

* fix: 채팅창 스크롤 초기화 문제 수정 및 줄바꿈 기준 변경

* feat: 토글 스위치 구현

* refactor: 모집 공고 관련 목록 페이지 디자인 수정

* feat: 컴포넌트 구현 및 icon 추가

* refactor: z-index 값 수정

* refactor: API 필드 변경 사항 반영

* refactor: 모집 공고 페이지 디자인 수정 및 라우트 백 수정

* refactor: 학교 목록에 없을 시 문구 디자인 수정

* fix: lint error

* fix: 타입 변경

* feat: 모집 관련 페이지 API 추가사항 반영

* refactor: 토스트 타이머 클린업 추라

* refactor: 전역토스트 사용 변경

* refactor: 관리자 클럽 조회 훅 호출 범위 줄이기

* feat: onError handler add

* chore: add button type and remove fragment

* [feat] 문의하기 버튼 로직 추가 (#120)

* feat: API 추가 및 연결

* chore: placeholder 제거

* [fix] 채팅 스크롤 미갱신 버그 및 멤버 직위 렌더링 수정 (#122)

* fix: 채팅 스크롤 미작동 수정

* fix: 한글 출력으로 수정

* feat: 첫 글자 보여주도록 수정 (#124)

* hotfix: 동아리 소개 줄바꿈 적용 및 한 줄 소개 글자수 제한 상향

* chore: 리뷰 반영

* fix: disabled 조건 변경

* 126 fix 배포 전 qa 사항 반영 (#127)

* fix: 가입 버튼 문구 수정

* fix: 검색창 placeholder 수정

* fix: 불필요해진 UI 비활성화

* fix: 모집공고 없을 때 빈 화면 처리

* fix: 무의미한 회비페이지 수정

* feat: 토글 시 자동 페이지 이동 추가

* fix: 페이지 이동 조건 수정

---------

Co-authored-by: 김혜준 <114041848+hyejun0228@users.noreply.github.com>
Co-authored-by: hyejun <hyejunkkim228@gmail.com>
ff1451 added a commit that referenced this pull request Mar 6, 2026
* develop → main 배포 (#125)

* feat: 알림설정 구현 (#108)

* chore: min-w 추가

* [chore] 코드래빗 설정 파일 추가 (#110)

* chore: 코드래빗 설정 파일 추가

* chore: 불필요한 tools 설정 제거

* [feat] preMember 목록 분리 및 삭제 기능 추가 (#115)

* feat: preMember 목록 분리 및 삭제 기능 추가

* chore: Pascal case

* chore: 변경된 변수명 반영

* feat: 학번 숫자 필터링 추가

* [feat] 채팅 목차 알림 상태 추가 (#113)

* chore: svg 추가

* feat: 채팅목록 알림 끄기 설정시 UI 추가

* feat: 목차 열릴시 애니메이션 추가

* [feat] 달력 카테고리 분류 추가 (#118)

* feat: 카테고리 추가

* chore: 불필요한 코드 삭제

* [refactor] 관리자 페이지 및 마이페이지 UI 수정 및 리팩토링 (#117)

* feat: 정보 카드에서 정보 페이지로 이동하도록 기능 추가

* feat: 토스트 전역상태 추가

* refactor: query 훅 분리 및 onSuccess 콜백 옵션 제거

* refactor: query 훅 사용처 수정

* refactor: 사용처 수정 2

* fix: 채팅창 스크롤 초기화 문제 수정 및 줄바꿈 기준 변경

* feat: 토글 스위치 구현

* refactor: 모집 공고 관련 목록 페이지 디자인 수정

* feat: 컴포넌트 구현 및 icon 추가

* refactor: z-index 값 수정

* refactor: API 필드 변경 사항 반영

* refactor: 모집 공고 페이지 디자인 수정 및 라우트 백 수정

* refactor: 학교 목록에 없을 시 문구 디자인 수정

* fix: lint error

* fix: 타입 변경

* feat: 모집 관련 페이지 API 추가사항 반영

* refactor: 토스트 타이머 클린업 추라

* refactor: 전역토스트 사용 변경

* refactor: 관리자 클럽 조회 훅 호출 범위 줄이기

* feat: onError handler add

* chore: add button type and remove fragment

* [feat] 문의하기 버튼 로직 추가 (#120)

* feat: API 추가 및 연결

* chore: placeholder 제거

* [fix] 채팅 스크롤 미갱신 버그 및 멤버 직위 렌더링 수정 (#122)

* fix: 채팅 스크롤 미작동 수정

* fix: 한글 출력으로 수정

* feat: 첫 글자 보여주도록 수정 (#124)

* hotfix: 동아리 소개 줄바꿈 적용 및 한 줄 소개 글자수 제한 상향

* chore: 리뷰 반영

* fix: disabled 조건 변경

* 126 fix 배포 전 qa 사항 반영 (#127)

* fix: 가입 버튼 문구 수정

* fix: 검색창 placeholder 수정

* fix: 불필요해진 UI 비활성화

* fix: 모집공고 없을 때 빈 화면 처리

* fix: 무의미한 회비페이지 수정

* feat: 토글 시 자동 페이지 이동 추가

* fix: 페이지 이동 조건 수정

---------

Co-authored-by: 김혜준 <114041848+hyejun0228@users.noreply.github.com>
Co-authored-by: hyejun <hyejunkkim228@gmail.com>

* develop -> main 배포 (#132)

* chore: 타입 변경 반영

* [feat] 모집 공고에 시간 추가 및 지원서 정렬 추가 (#131)

* feat: 모집 공고에 시작, 종료 시간 추가

* feat: 지원자 목록 정렬 추가 및 시간 표시

* feat: 채팅, 모집 공고 링크 파싱 기능 추가

* feat: 인스타그램 파싱 추가

* fix: prettier error

* refactor: 유틸 분리 및 타입 변경

* chore: 타입 변경 반영

* chore: 동일 스타일 통합 및 entity 확장 사용

* chore:ios 토큰 테스트를 위한 로직 추가

* Revert "chore:ios 토큰 테스트를 위한 로직 추가"

This reverts commit 98570fc.

* hotfix: 모집 공고 textarea 길이 자동 재계산 추가

* feat: 페이지네이션 추가

* feat: 수정

* feat: 페이지네이션 수정

* feat: 디자인 수정

* feat: 로직 수정

* fix: key 수정

* develop-> main (#135)

* chore: 타입 변경 반영

* [feat] 모집 공고에 시간 추가 및 지원서 정렬 추가 (#131)

* feat: 모집 공고에 시작, 종료 시간 추가

* feat: 지원자 목록 정렬 추가 및 시간 표시

* feat: 채팅, 모집 공고 링크 파싱 기능 추가

* feat: 인스타그램 파싱 추가

* fix: prettier error

* refactor: 유틸 분리 및 타입 변경

* chore: 타입 변경 반영

* chore: 동일 스타일 통합 및 entity 확장 사용

* chore:ios 토큰 테스트를 위한 로직 추가

* Revert "chore:ios 토큰 테스트를 위한 로직 추가"

This reverts commit 98570fc.

* hotfix: 모집 공고 textarea 길이 자동 재계산 추가

* Reapply "chore:ios 토큰 테스트를 위한 로직 추가"

This reverts commit 3a56f4a.

* chore: ios토큰

* feat: 가이드 페이지 이미지 변경

* chore: 푸시알림 로직 임시 변경

* refactor: 푸시 알림 토큰 로직 브릿지 방식으로 수정 (#134)

* refactor: 푸시 알림 토큰 로직 브릿지 방식으로 수정

* fix: try catch 적용

* feat: 페이지네이션 추가

* feat: 수정

* feat: 페이지네이션 수정

* feat: 디자인 수정

* feat: 로직 수정

* fix: key 수정

* chore: 스테이지 용 임시 UI 제거

---------

Co-authored-by: hyejun <hyejunkkim228@gmail.com>

* [feat] sentry 모니터링 추가 (#141) (#142)

* chore: sentry 의존성 추가

* feat: sentry 세팅

* chore: 워크플로우 수정 및 vite 세팅

* chore: 임시 추가

* refactor: 색상 토큰 파일 분리

* refactor: 타이포그래피 스타일 파일 분리

* refactor: 피그마 타이포그래피 네이밍으로 클래스 정렬

* fix: 리뷰 코멘트 기반 접근성 및 토큰 정리

---------

Co-authored-by: 김혜준 <114041848+hyejun0228@users.noreply.github.com>
Co-authored-by: hyejun <hyejunkkim228@gmail.com>
@ff1451 ff1451 deleted the 123-feat-기본-이미지-대신-첫-글자-보여주도록-추가 branch April 7, 2026 09:33
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