fix(chat): 간헐적 스크롤 튐 · 나간 방 표시 · 화면 전환 흰 깜빡임 - #15
Merged
Merged
Conversation
QA 3건이다. 1) 들락날락하다 보면 가끔 포커스가 위로 튄다 1:1 목록만 skipNextAutoScroll 플래그를 안 비우고 있었다. 과거를 붙여도 마지막 메시지는 그대로라 "최신이 안 바뀜" 분기에서 끝나는데, 거기서 플래그를 비우지 않아 세워진 채 남았다. 그 뒤 새 메시지가 오거나 내가 하나 보내면 그제서야 보정 분기가 열리면서 그때 잰 옛 높이로 튀었다. 그룹 목록은 처음부터 거기서 비우고 있었다 — 동작을 맞춘다. 쓰이지 않게 된 previousScrollHeight 도 걷는다. 2) 그룹 방을 나갔는데 목록에 진행 중인 방처럼 남는다 서버는 나간 방을 지우지 않고 읽기 전용으로 남긴다(hasLeft: true) — 그게 계약이다. 방 화면은 이미 그 값으로 입력·나가기를 막고 있었는데 목록만 보지 않아 "진행중" 배지를 달고 안읽음까지 셌다. 종료된 방과 같은 규칙으로 다루되 배지 문구는 "나간 방"으로 가른다 — 방은 남은 사람들끼리 이어질 수 있어 "종료"는 사실이 아니다. 3) 화면을 옮길 때 흰 화면이 한 번 스친다 capacitor 의 웹뷰 배경색이 android 에만 있어 iOS 는 웹뷰 기본색(흰색) 그대로였다. 전역 backgroundColor 로 올려 두 플랫폼이 같이 받는다. 네이티브 설정이라 웹 배포가 아니라 앱 재빌드(cap sync)로 반영된다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Sep 16, 2026
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.
QA 3건입니다. 원인이 서로 달라 나눠 적습니다.
1. 들락날락하다 보면 가끔 포커스가 위로 튄다
#12 로 진입 직후는 잡혔는데, 반복하다 중간에 튀는 건 다른 원인이었습니다.
1:1 목록만
skipNextAutoScroll플래그를 비우지 않고 있었습니다.과거를 붙여도 마지막 메시지는 그대로라 항상 이 분기에서 끝납니다. 그래서 "위로 올려 과거 읽기" 한 번이 플래그를 세운 채로 남기고, 그 뒤 새 메시지가 오거나 내가 하나 보내면 그제서야 보정 분기가 열리면서 바닥으로 가야 할 화면이 그때 잰 옛 높이로 튀었습니다. 보내보고 나갔다 들어오길 반복하다 걸린 이유가 이것입니다.
그룹과 동작을 맞췄고, 쓰이지 않게 된
previousScrollHeight도 걷었습니다. 위로 올려 과거를 읽는 중에 바닥으로 끌려가지 않는 동작은 그대로입니다(그룹처럼scrollTop을 직접 만지지 않고 브라우저가 위치를 유지합니다).2. 그룹 방을 나갔는데 목록에 그대로 남는다
서버는 나간 방을 지우지 않고 읽기 전용으로 남기는 것이 계약입니다(
hasLeft: true, BE 요청서 회신에 기록). 방 화면은 이미 그 값으로 입력·투표·나가기를 막고 있었는데, 목록만hasLeft를 보지 않아 "진행중" 배지를 달고 안읽음까지 셌습니다.종료된 방과 같은 규칙으로 다루되(진행중 필터에서 빠지고, 안읽음 배지 없음) 배지 문구는 "나간 방"으로 가릅니다 — 방은 남은 사람들끼리 이어질 수 있어 "종료"는 사실이 아닙니다.
3. 화면을 옮길 때 흰 화면이 한 번 스친다
capacitor.config.ts의 웹뷰 배경색이android에만 있었습니다. iOS 는 웹뷰 기본색(흰색) 그대로라, 웹뷰가 다시 그려지는 사이 흰 화면이 드러났습니다.테스트
cypress/e2e/chat/**43건 전부 통과,npm run verify통과(lint 0 errors · typecheck · vitest 268건).chat-list.cy.ts에 2번 회귀 테스트를 더했고 되돌리면 실패하는 것까지 확인했습니다 — 나간 방이 "나간 방" 배지로 뜨고, 안읽음 배지가 붙지 않고, 진행중 필터에서 빠져 종료 필터에 들어가는지.1번은 타이밍(플래그가 남았다가 다음 메시지에서 터지는 경로)이라 E2E 로 안정적으로 재현하기 어려워 테스트를 붙이지 않았습니다. 그룹 목록이 이미 같은 처리를 하고 있어 두 목록의 동작이 같아진 것이 근거입니다.
🤖 Generated with Claude Code