From a1302e5b8a3f404d1ecad0d32507495df8a39734 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Fri, 29 Sep 2023 18:33:54 +0300
Subject: [PATCH] fix

---
 .../src/AiService/AskAiContentService.js       | 18 +++++++-----------
 .../src/AiService/ReplaceSelectedText.js       |  1 +
 .../src/AiService/components/AskAIOverlay.js   |  2 +-
 .../AiService/plugins/AskAiSelectionPlugin.js  | 13 +++++++++----
 4 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/wax-prosemirror-services/src/AiService/AskAiContentService.js b/wax-prosemirror-services/src/AiService/AskAiContentService.js
index 6f79d22a0..466e9fc8c 100644
--- a/wax-prosemirror-services/src/AiService/AskAiContentService.js
+++ b/wax-prosemirror-services/src/AiService/AskAiContentService.js
@@ -15,19 +15,15 @@ class AskAiContentService extends Service {
     );
 
     const createOverlay = this.container.get('CreateOverlay');
-    const { config } = this;
+    const config = this.config;
 
     // Create the overlay
-    createOverlay(
-      AskAIOverlay,
-      { config },
-      {
-        nodeType: '',
-        markType: '',
-        followCursor: false,
-        selection: true,
-      },
-    );
+    createOverlay(AskAIOverlay, config, {
+      nodeType: '',
+      markType: '',
+      followCursor: false,
+      selection: true,
+    });
   }
 
   register() {
diff --git a/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js b/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js
index e4a55dba4..0fed7eec9 100644
--- a/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js
+++ b/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js
@@ -8,6 +8,7 @@ const elementFromString = string => {
 };
 
 const replaceSelectedText = (view, responseText, replace = false) => {
+  if (!view) return;
   let { state } = view;
   let { tr } = state;
   const { from, to } = tr.selection;
diff --git a/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js b/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js
index bc5227e4c..a7a7927dd 100644
--- a/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js
+++ b/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js
@@ -192,7 +192,7 @@ const AskAIOverlay = ({ setPosition, position, config }) => {
     }
   };
 
-  return options.AiOn ? (
+  return options?.AiOn ? (
     <Wrapper id="ai-overlay">
       <AskAIForm>
         <AskAIFormInput
diff --git a/wax-prosemirror-services/src/AiService/plugins/AskAiSelectionPlugin.js b/wax-prosemirror-services/src/AiService/plugins/AskAiSelectionPlugin.js
index 56ffbe9f1..ed7a8e29c 100644
--- a/wax-prosemirror-services/src/AiService/plugins/AskAiSelectionPlugin.js
+++ b/wax-prosemirror-services/src/AiService/plugins/AskAiSelectionPlugin.js
@@ -14,10 +14,14 @@ export default () => {
         let createDecoration;
         const askAiInput = document.getElementById('askAiInput');
         if (askAiInput) {
-          // const selectionWhenBlured = tr.getMeta(key);
+          const selectionWhenBlured = tr.getMeta(key);
 
-          const from = newState.selection.from;
-          const to = newState.selection.to;
+          const from = selectionWhenBlured
+            ? selectionWhenBlured.from
+            : newState.selection.from;
+          const to = selectionWhenBlured
+            ? selectionWhenBlured.to
+            : newState.selection.to;
 
           createDecoration = DecorationSet.create(newState.doc, [
             Decoration.inline(from, to, {
@@ -38,7 +42,8 @@ export default () => {
       },
       handleDOMEvents: {
         blur(view) {
-          view.dispatch(view.state.tr.setMeta(key, view.state.selection));
+          if (view)
+            view.dispatch(view.state.tr.setMeta(key, view.state.selection));
         },
         //   focus(view) {
         //     view.dispatch(view.state.tr.setMeta(key, true));
-- 
GitLab