diff --git a/web/src/components/ChatList.tsx b/web/src/components/ChatList.tsx index 3399194..9b92aba 100644 --- a/web/src/components/ChatList.tsx +++ b/web/src/components/ChatList.tsx @@ -84,8 +84,9 @@ export function ChatList() { onClick={() => setActiveChatId(chat.id)} onContextMenu={(e) => { e.preventDefault(); + const safePos = getSafeContextPosition(e.clientX, e.clientY); setCtxChatId(chat.id); - setCtxPos({ x: e.clientX, y: e.clientY }); + setCtxPos(safePos); }} >
@@ -155,3 +156,11 @@ export function ChatList() { ); } + function getSafeContextPosition(x: number, y: number): { x: number; y: number } { + const menuWidth = 176; + const menuHeight = 56; + const pad = 8; + const safeX = Math.min(Math.max(pad, x), window.innerWidth - menuWidth - pad); + const safeY = Math.min(Math.max(pad, y), window.innerHeight - menuHeight - pad); + return { x: safeX, y: safeY }; + }