From 2d40a920cbb35829d3f85f546397b5f90311e8ec Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Thu, 28 Sep 2023 15:36:10 +0300 Subject: [PATCH] fix selection --- editors/demo/src/Editoria/config/config.js | 2 +- .../src/AiService/ReplaceSelectedText.js | 4 ++-- .../src/AiService/components/AskAIOverlay.js | 10 +++++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/editors/demo/src/Editoria/config/config.js b/editors/demo/src/Editoria/config/config.js index e8214f1da..3c828db6d 100644 --- a/editors/demo/src/Editoria/config/config.js +++ b/editors/demo/src/Editoria/config/config.js @@ -106,7 +106,7 @@ async function DummyPromise(userInput) { if (userInput === 'reject') { reject('Your request could not be processed for now'); } else { - resolve('hello how are you?'); + resolve(text); } }, 150); }); diff --git a/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js b/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js index 34f04ad17..25b8c000f 100644 --- a/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js +++ b/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js @@ -15,7 +15,6 @@ const replaceSelectedText = (view, transformedText, replace = false) => { const parser = DOMParser.fromSchema(state.config.schema); if (from > state.doc.content.size || to > state.doc.content.size) { - console.error('Position out of range'); return; } @@ -49,7 +48,8 @@ const replaceSelectedText = (view, transformedText, replace = false) => { state = view.state; // Update the selection to the end of the new text - const newTo = from + transformedText.length; + const newFrom = replace ? from : to; + const newTo = newFrom + transformedText.length; const cursorPosition = paragraphNodes.length !== 0 ? newTo + 2 : newTo; const newSelection = TextSelection.create( state.doc, diff --git a/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js b/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js index cc697b9b6..0c33e7f0f 100644 --- a/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js +++ b/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js @@ -110,8 +110,8 @@ const AskAIOverlay = ({ setPosition, position, config }) => { useLayoutEffect(() => { const WaxSurface = activeView.dom.getBoundingClientRect(); const { selection } = activeView.state; - const { from, to } = selection; - const start = activeView.coordsAtPos(from); + const { to } = selection; + // const start = activeView.coordsAtPos(from); const end = activeView.coordsAtPos(to - 1); const overLayComponent = document.getElementById('ai-overlay'); @@ -146,8 +146,12 @@ const AskAIOverlay = ({ setPosition, position, config }) => { }; const handleSubmit = async () => { - setIsLoading(true); const inputValue = inputRef.current.value; + if (inputValue === '') { + inputRef.current.focus(); + return; + } + setIsLoading(true); // Get the highlighted text from the editor const { from, to } = activeView.state.selection; -- GitLab