From 081369a552d5154431f2b3ffef5720673eab41e8 Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Thu, 16 Nov 2023 22:03:45 +0000
Subject: [PATCH] do not destroy the editor when it is hidden, fixes #3434

Closes #3434

Merge request studip/studip!2350
---
 resources/assets/javascripts/lib/wysiwyg.js | 27 ++++-----------------
 1 file changed, 5 insertions(+), 22 deletions(-)

diff --git a/resources/assets/javascripts/lib/wysiwyg.js b/resources/assets/javascripts/lib/wysiwyg.js
index 00f453d59f0..806abaf16ca 100644
--- a/resources/assets/javascripts/lib/wysiwyg.js
+++ b/resources/assets/javascripts/lib/wysiwyg.js
@@ -33,36 +33,19 @@ const wysiwyg = {
     getEditor,
     hasEditor,
 
-    replace(textarea) {
-        if (!hasEditor(textarea)) {
-            if (isTextareaVisible(textarea)) {
-                replaceTextarea(textarea);
-            }
-        } else if (isEditorHidden(textarea)) {
-            destroyTextarea(textarea);
-        }
-    },
+    replace: replaceTextarea,
 };
 
 export default wysiwyg;
 
-function isTextareaVisible(textarea) {
-    return $(textarea).is(':visible');
-}
-
-function isEditorHidden(textarea) {
-    if (!hasEditor(textarea)) {
-        return false;
-    }
-    const editor = getEditor(textarea);
-    return editor && editor.ui && $(editor.ui.element).is(':hidden');
-}
-
 async function replaceTextarea(textarea) {
-    await loadMathJax();
+    if (hasEditor(textarea)) {
+        return getEditor(textarea);
+    }
 
     setEditor(textarea, {});
 
+    await loadMathJax();
     const chunk = await STUDIP.loadChunk('wysiwyg');
 
     const $textarea = textarea instanceof jQuery ? textarea : $(textarea);
-- 
GitLab