diff --git a/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js b/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js index 3d90d54664cfee0e07eb75ddc7bfdad4012f6044..1d17d47a967c28ad9297285874685567ec5382fe 100644 --- a/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js +++ b/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js @@ -112,14 +112,18 @@ const AskAIOverlay = ({ setPosition, position, config }) => { const WaxSurface = activeView.dom.getBoundingClientRect(); const { selection } = activeView.state; const { to } = selection; - const end = activeView.coordsAtPos(to); - // const overLayComponent = document.getElementById('ai-overlay'); - // let overLayComponentCoords; - // if (overLayComponent) - // overLayComponentCoords = overLayComponent.getBoundingClientRect(); + const end = activeView.coordsAtPos(to - 1); + const overLayComponent = document.getElementById('ai-overlay'); + + const overLayComponentCoords = overLayComponent.getBoundingClientRect(); const top = end.top - WaxSurface.top + 20; - // const left = end.left - WaxSurface.left - overLayComponentCoords.width / 2; - const left = end.left - WaxSurface.left - 50; + let left = end.left - WaxSurface.left; + + // Don't get out of right boundary of the surface + if (end.left + overLayComponentCoords.width > WaxSurface.right) { + left -= end.left + overLayComponentCoords.width - WaxSurface.right; + } + setPosition({ ...position, left, top }); }, [position.left]);