Merged
Conversation
Claude Code가 읽을 수 있도록 AI 에이전트 가이드 파일을 CLAUDE.MD로 생성했습니다. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
docs: AGENTS.md에서 CLAUDE.MD 생성
- useClickOutside 커스텀 훅 생성 (외부 클릭 및 ESC 키 처리) - 중복된 useEffect 로직 153줄 제거 (-88%) - 5개 컴포넌트에 적용: App(3개), TimelineItem, AccountSelector, ReactionPicker - ref를 메뉴 패널에만 연결하여 버튼 토글 정상 동작 보장 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
refactor: 팝오버/메뉴 외부 클릭 로직을 useClickOutside 훅으로 통합
- useEmojiManager 커스텀 훅 생성 (이모지 로드, 최근 사용, 카테고리화) - 중복된 이모지 관리 로직 297줄 제거 (-69%) - ComposeBox와 ReactionPicker에 적용 - 인스턴스별 이모지 카탈로그, 최근 사용 이모지, 카테고리 확장 상태 관리 통합 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
refactor: 이모지 관리 로직을 useEmojiManager 훅으로 통합
이미지 확대/축소 및 드래그 이동 로직을 재사용 가능한 커스텀 훅으로 분리했습니다. 변경 사항: - useImageZoom 훅 생성 (147줄) - 줌 레벨 관리 (0.6x ~ 3x) - 오프셋 클램핑 (이미지가 경계를 벗어나지 않도록) - 드래그 상태 관리 - 휠/로드/포인터 이벤트 핸들러 제공 - TimelineItem 적용 - 중복 코드 111줄 제거 - 이미지 전환 시 resetImageZoom() 호출 - ComposeBox 적용 - 중복 코드 102줄 제거 - 이미지 전환 시 resetImageZoom() 호출 총 177줄의 중복 코드를 제거하고 중앙화된 로직으로 통합했습니다. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
refactor: 이미지 줌/드래그 로직 useImageZoom 훅으로 추출
계정 정보 표시 패턴(아바타 + 표시명 + 핸들)을 재사용 가능한 컴포넌트로 분리했습니다. 변경 사항: - AccountLabel 컴포넌트 생성 (115줄) - 아바타 + 표시명 + 핸들 통합 표시 - 유연한 props로 다양한 사용 사례 지원 - 아바타 전용 모드 지원 - 크기, 스타일 커스터마이징 가능 - 인터랙션 핸들러 지원 (클릭, 키보드) - AccountManager 적용 - 계정 목록 항목에서 중복 코드 제거 - AccountSelector 적용 - 활성 계정 요약 표시 - 드롭다운 계정 목록 항목 - 2개 위치에서 중복 코드 제거 총 51줄의 중복 코드를 제거하고 재사용 가능한 컴포넌트로 통합했습니다. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
AccountLabel 컴포넌트를 확장하여 TimelineItem의 status-* 클래스도 지원하도록 개선했습니다. 변경 사항: - AccountLabel 확장 (23줄 추가) - avatarClassName, avatarFallbackClassName props 추가 - textContainerClassName, handleClassName props 추가 - textAsDiv prop 추가 (div vs span 선택) - status-avatar, status-avatar-fallback 등 커스텀 클래스 지원 - TimelineItem 적용 (11줄 절감) - 삭제 확인 모달의 계정 표시를 AccountLabel로 교체 - 중복 코드 제거 이로써 AccountLabel이 더 범용적으로 사용 가능해졌습니다. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
AccountLabel의 이름이 항상 굵게 표시되던 문제를 수정했습니다.
변경 사항:
- boldName prop 추가 (기본값: false)
- 이름을 조건부로 <strong> 또는 <span>으로 렌더링
- TimelineItem 삭제 확인 모달에 boldName={true} 적용
이제 계정 목록에서는 일반 글씨로, 필요한 곳에서만 굵게 표시됩니다.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
첨부 이미지 추가 버튼 보더 두께 조정
refactor: 계정 표시 UI를 AccountLabel 컴포넌트로 통합
프로필 팔로우 버튼과 모달 레이어링 추가
풀 핸들 멘션 링크 프로필 모달 열기
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
변경 사항
테스트