Skip to content
This repository was archived by the owner on Dec 6, 2025. It is now read-only.

fix(frontend): 스크롤 핸들러 강제이동 버그 수정#219

Merged
nodejun merged 1 commit into
developfrom
feat/frontend
Nov 27, 2025
Merged

fix(frontend): 스크롤 핸들러 강제이동 버그 수정#219
nodejun merged 1 commit into
developfrom
feat/frontend

Conversation

@nodejun
Copy link
Copy Markdown
Contributor

@nodejun nodejun commented Nov 27, 2025

Summary

채팅방에서 스크롤을 위로 올려도 계속 아래로 강제 이동되는 버그를 수정했습니다.

문제 상황

  • 채팅방을 열고 이전 메시지를 보기 위해 위로 스크롤하면 자동으로 다시 아래로 내려가는 현상
  • 사용자가 스크롤을 조작할 수 없어 과거 메시지 확인이 불가능했음

원인 분석

  1. messages 배열 참조 변경 시 불필요한 스크롤 트리거

    • 읽음 상태 업데이트 등으로 배열 참조만 바뀌어도 스크롤 useEffect가 실행됨
  2. shouldScrollToBottom 상태가 갱신되지 않음

    • 사용자가 위로 스크롤해도 shouldScrollToBottomtrue로 유지됨
    • shouldScrollToBottom || isNearBottom 조건에서 항상 true가 되어 강제 스크롤 발생

수정 내용

파일: frontend/src/entities/chat/model/useUnreadMessageScroll.ts

  1. 스크롤 트리거 조건 최적화

    • messagesmessages.length로 변경
    • 메시지가 실제로 추가/삭제될 때만 스크롤 동작
  2. 사용자 스크롤 시 자동 스크롤 비활성화

    • handleScroll에서 사용자가 100px 이상 위로 스크롤하면 shouldScrollToBottom = false 설정

Test plan

  • 채팅방 열기 → 초기에 맨 아래로 스크롤되는지 확인
  • 위로 스크롤 → 스크롤 위치가 유지되는지 확인
  • 새 메시지 수신 시 → 맨 아래 근처에 있을 때만 자동 스크롤되는지 확인
  • 메시지 전송 시 → 맨 아래로 스크롤되는지 확인

@nodejun nodejun merged commit 5cce646 into develop Nov 27, 2025
1 check passed
@selentia selentia mentioned this pull request Nov 27, 2025
@selentia selentia deleted the feat/frontend branch November 27, 2025 07:59
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants