@@ -283,6 +283,7 @@ const ReplyItem = memo(function ReplyItem({
283283 const [ editMentionQuery , setEditMentionQuery ] = useState ( "" ) ;
284284 const [ editMentionPosition , setEditMentionPosition ] = useState ( { top : 0 , left : 0 , width : 200 } ) ;
285285 const [ editFilteredUsers , setEditFilteredUsers ] = useState < MentionUser [ ] > ( [ ] ) ;
286+ const [ editHighlightedIndex , setEditHighlightedIndex ] = useState ( 0 ) ;
286287
287288 // Ref for edit textarea and wrapper (used for proper dropdown positioning)
288289 const editTextareaRef = useRef < HTMLTextAreaElement > ( null ) ;
@@ -479,7 +480,8 @@ const ReplyItem = memo(function ReplyItem({
479480 setEditHighlightedIndex ( i => ( i - 1 + editFilteredUsers . length ) % editFilteredUsers . length ) ;
480481 } else if ( e . key === 'Enter' ) {
481482 e . preventDefault ( ) ;
482- handleEditMentionSelect ( editFilteredUsers [ editHighlightedIndex || 0 ] ) ;
483+ const candidate = editFilteredUsers [ editHighlightedIndex || 0 ] ;
484+ if ( candidate ) handleEditMentionSelect ( candidate ) ;
483485 } else if ( e . key === 'Escape' ) {
484486 setShowEditMentionDropdown ( false ) ;
485487 }
@@ -851,7 +853,8 @@ const CommentItem = memo(function CommentItem({
851853 setEditHighlightedIndex ( i => ( i - 1 + editFilteredUsers . length ) % editFilteredUsers . length ) ;
852854 } else if ( e . key === 'Enter' ) {
853855 e . preventDefault ( ) ;
854- handleEditMentionSelect ( editFilteredUsers [ editHighlightedIndex || 0 ] ) ;
856+ const candidate = editFilteredUsers [ editHighlightedIndex || 0 ] ;
857+ if ( candidate ) handleEditMentionSelect ( candidate ) ;
855858 } else if ( e . key === 'Escape' ) {
856859 setShowEditMentionDropdown ( false ) ;
857860 }
@@ -953,7 +956,8 @@ const CommentItem = memo(function CommentItem({
953956 setReplyHighlightedIndex ( i => ( i - 1 + replyFilteredUsers . length ) % replyFilteredUsers . length ) ;
954957 } else if ( e . key === 'Enter' ) {
955958 e . preventDefault ( ) ;
956- handleReplyMentionSelect ( replyFilteredUsers [ replyHighlightedIndex || 0 ] ) ;
959+ const candidate = replyFilteredUsers [ replyHighlightedIndex || 0 ] ;
960+ if ( candidate ) handleReplyMentionSelect ( candidate ) ;
957961 } else if ( e . key === 'Escape' ) {
958962 setShowReplyMentionDropdown ( false ) ;
959963 }
0 commit comments