문제 상황
채팅방에서 한글 메시지 입력 후 keyDown 이벤트가 발생할 때, 마지막 글자가 다음 블록의 첫 글자로 들어가며 keyDown 이벤트가 두 번 발생
원인
•
IME(Input Method Editor) 이슈로 인해 엔터키를 누를 때 한글 입력이 완성되지 않은 상태에서 이벤트가 발생
◦
한글을 입력할 때, IME는 글자를 조합하는 중이기 때문에 엔터 키를 누를 때 메시지가 완성되지 않은 상태에서 이벤트가 발생할 수 있음
해결
컴포지션 이벤트를 활용하여 IME 입력이 완전히 끝난 후에만 메시지가 전송되도록 처리
•
isComposing 상태를 추가하여 IMe 입력 상태 추적
•
onCompositionStart와 onCompositionEnd 이벤트 핸들러를 사용하여 IME 입력 상태 관리
•
handleKeyDown에서 isComposing 상태를 확인하여 한글 입력 중에는 Enter 키 이벤트를 무시하도록 설정