From 1b92c283fb866d17d1dda301c0e943f8c01d0e9e Mon Sep 17 00:00:00 2001 From: syc0123 Date: Wed, 1 Apr 2026 13:57:11 +0900 Subject: [PATCH] =?UTF-8?q?[RAPID-micro]=20=EB=A9=94=EC=8B=A0=EC=A0=80=20E?= =?UTF-8?q?SC=20=ED=82=A4=EB=A1=9C=20=EB=8B=AB=EA=B8=B0=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 (1M context) --- frontend/components/messenger/MessengerModal.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frontend/components/messenger/MessengerModal.tsx b/frontend/components/messenger/MessengerModal.tsx index 70b9b9c0..fdd831b7 100644 --- a/frontend/components/messenger/MessengerModal.tsx +++ b/frontend/components/messenger/MessengerModal.tsx @@ -33,6 +33,14 @@ export function MessengerModal() { setUnreadCount(Number(count)); }, [serverUnread, setUnreadCount]); + useEffect(() => { + const onKeyDown = (e: KeyboardEvent) => { + if (e.key === "Escape" && isOpen) closeMessenger(); + }; + document.addEventListener("keydown", onKeyDown); + return () => document.removeEventListener("keydown", onKeyDown); + }, [isOpen, closeMessenger]); + const selectedRoom = rooms.find((r) => r.id === selectedRoomId) || null; const [newRoomOpen, setNewRoomOpen] = useState(false);