From fa8855e3bee23949616e7686e68c87c56f80b53f Mon Sep 17 00:00:00 2001 From: Steve Date: Mon, 15 Mar 2021 19:40:57 -0700 Subject: [PATCH] code refactoring to improve readability --- src/js/easymde.js | 80 +++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 45 deletions(-) diff --git a/src/js/easymde.js b/src/js/easymde.js index 67ea60d..3559906 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -911,59 +911,49 @@ function toggleSideBySide(editor, triggeredByFullscreenToggle) { } // helper method to add/remove no-fullscreen classes as appropriate - function setupNoFullscreenClasses(previewActive) { + function setupNoFullscreenClasses(sidePreviewActive) { if (editor.options.sideBySideFullscreen === false) { - if (!cm.getOption('fullScreen') && previewActive) { - noFullscreenItems.forEach(function(el) { - addNoFullscreenClass(el); - }); + if (!cm.getOption('fullScreen') && sidePreviewActive) { + // only apply classes if !fullScreen and side preview is (or will be) active + noFullscreenItems.forEach(addNoFullscreenClass); } else { - noFullscreenItems.forEach(function (el) { - removeNoFullscreenClass(el); - }); + noFullscreenItems.forEach(removeNoFullscreenClass); } } } - if (/editor-preview-active-side/.test(preview.className)) { - // If side-by-side active... - if (dontToggle) { - // if not toggling, cleanup noFullscreen classes as needed - setupNoFullscreenClasses(true); - } else { - // otherwise close side-by-side, and cleanup noFullscreen classes as needed - setupNoFullscreenClasses(false); - preview.className = preview.className.replace( - /\s*editor-preview-active-side\s*/g, '' - ); - if (toolbarButton) toolbarButton.className = toolbarButton.className.replace(/\s*active\s*/g, ''); - wrapper.className = wrapper.className.replace(/\s*CodeMirror-sided\s*/g, ' '); - } + var sidePreviewActive = /editor-preview-active-side/.test(preview.className); + + if (dontToggle) { + // if not toggling, handle noFullscreen classes as needed + setupNoFullscreenClasses(sidePreviewActive); + } else if (sidePreviewActive) { + // close side-by-side, and cleanup noFullscreen classes as needed + setupNoFullscreenClasses(false); + preview.className = preview.className.replace( + /\s*editor-preview-active-side\s*/g, '' + ); + if (toolbarButton) toolbarButton.className = toolbarButton.className.replace(/\s*active\s*/g, ''); + wrapper.className = wrapper.className.replace(/\s*CodeMirror-sided\s*/g, ' '); } else { - // If side-by-side not active... - if (dontToggle) { - // if not toggling, cleanup noFullscreen classes as needed - setupNoFullscreenClasses(false); - } else { - // otherwise open side-by-side, and setup noFullscreen classes as needed - setTimeout(function () { - // When the preview button is clicked for the first time, - // give some time for the transition from editor.css to - // fire and the view to slide from right to left, - // instead of just appearing. - if (!cm.getOption('fullScreen')) { - if (editor.options.sideBySideFullscreen === false) { - setupNoFullscreenClasses(true); - } else { - toggleFullScreen(editor); - } + // open side-by-side, and setup noFullscreen classes as needed + setTimeout(function () { + // When the preview button is clicked for the first time, + // give some time for the transition from editor.css to + // fire and the view to slide from right to left, + // instead of just appearing. + if (!cm.getOption('fullScreen')) { + if (editor.options.sideBySideFullscreen === false) { + setupNoFullscreenClasses(true); + } else { + toggleFullScreen(editor); } - preview.className += ' editor-preview-active-side'; - }, 1); - if (toolbarButton) toolbarButton.className += ' active'; - wrapper.className += ' CodeMirror-sided'; - useSideBySideListener = true; - } + } + preview.className += ' editor-preview-active-side'; + }, 1); + if (toolbarButton) toolbarButton.className += ' active'; + wrapper.className += ' CodeMirror-sided'; + useSideBySideListener = true; }