메신저 사용자 검색 undefined 가드

useCompanyUsers 응답 중 user_name 이 비어있는 레거시 row 가 있을 때
toLowerCase 호출에서 발생하던 Runtime TypeError 방지.

- NewRoomModal: userName/deptName ?? '' 으로 가드 후 includes
- MessageInput: 멘션 자동완성 필터에서 userName ?? '' 가드

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
chpark
2026-05-07 16:51:28 +09:00
parent 97b333dd2e
commit 223cf55f5c
2 changed files with 7 additions and 6 deletions
@@ -39,7 +39,7 @@ function MessageInput({ roomId, onTypingStart, onTypingStop }: MessageInputProps
const { data: users } = useCompanyUsers();
const filteredMentionUsers = mentionQuery !== null && users
? users.filter((u) => u.userName.toLowerCase().includes(mentionQuery.toLowerCase())).slice(0, 5)
? users.filter((u) => (u.userName ?? "").toLowerCase().includes(mentionQuery.toLowerCase())).slice(0, 5)
: [];
// Revoke object URLs when pending files change or component unmounts
@@ -35,11 +35,12 @@ export function NewRoomModal({ open, onOpenChange, userStatuses }: NewRoomModalP
const createRoom = useCreateRoom();
const { selectRoom } = useMessengerContext();
const filtered = users.filter(
(u) =>
u.userName.toLowerCase().includes(search.toLowerCase()) ||
(u.deptName && u.deptName.toLowerCase().includes(search.toLowerCase()))
);
const filtered = users.filter((u) => {
const q = search.toLowerCase();
const name = (u.userName ?? "").toLowerCase();
const dept = (u.deptName ?? "").toLowerCase();
return name.includes(q) || dept.includes(q);
});
const toggleUser = (userId: string) => {
if (tab === "dm") {