mirror of
https://github.com/Ionaru/easy-markdown-editor
synced 2025-07-02 23:54:28 -06:00
Unwind all the onlyCleanup stuff and set classes directly.
This commit is contained in:
parent
4533dd4776
commit
1ee8519e50
@ -332,13 +332,20 @@ function toggleFullScreen(editor) {
|
|||||||
document.body.style.overflow = saved_overflow;
|
document.body.style.overflow = saved_overflow;
|
||||||
}
|
}
|
||||||
|
|
||||||
var sidebyside = cm.getWrapperElement().nextSibling;
|
var wrapper = cm.getWrapperElement();
|
||||||
|
var sidebyside = wrapper.nextSibling;
|
||||||
|
|
||||||
// if non-fullscreen side-by-side is allowed, then pass along "onlyCleanup" flag
|
if (/editor-preview-active-side/.test(sidebyside.className)) {
|
||||||
var onlyCleanup = editor.options.sideBySideFullscreen === false;
|
if(editor.options.sideBySideFullscreen === false) {
|
||||||
|
var easyMDEContainer = wrapper.parentNode;
|
||||||
if (/editor-preview-active-side/.test(sidebyside.className) || onlyCleanup) {
|
if (cm.getOption('fullScreen')) {
|
||||||
toggleSideBySide(editor, onlyCleanup);
|
easyMDEContainer.className = easyMDEContainer.className.replace(/\s*sided--no-fullscreen(\s*)/g, '$1');
|
||||||
|
} else {
|
||||||
|
easyMDEContainer.className += ' sided--no-fullscreen';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
toggleSideBySide(editor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (editor.options.onToggleFullScreen) {
|
if (editor.options.onToggleFullScreen) {
|
||||||
@ -872,13 +879,11 @@ function redo(editor) {
|
|||||||
cm.focus();
|
cm.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Toggle side by side preview
|
* Toggle side by side preview
|
||||||
* @param {EasyMDE} editor - The EasyMDE object
|
* @param {EasyMDE} editor - The EasyMDE object
|
||||||
* @param {boolean} onlyCleanup Flag for only cleaning up side effects of fullScreen toggle.
|
|
||||||
*/
|
*/
|
||||||
function toggleSideBySide(editor, onlyCleanup) {
|
function toggleSideBySide(editor) {
|
||||||
var cm = editor.codemirror;
|
var cm = editor.codemirror;
|
||||||
var wrapper = cm.getWrapperElement();
|
var wrapper = cm.getWrapperElement();
|
||||||
var preview = wrapper.nextSibling;
|
var preview = wrapper.nextSibling;
|
||||||
@ -887,42 +892,24 @@ function toggleSideBySide(editor, onlyCleanup) {
|
|||||||
|
|
||||||
var easyMDEContainer = wrapper.parentNode;
|
var easyMDEContainer = wrapper.parentNode;
|
||||||
|
|
||||||
// helper method to add/remove no-fullscreen classes as appropriate
|
if (/editor-preview-active-side/.test(preview.className)) {
|
||||||
function setNoFullscreenClass (sidePreviewActive) {
|
// close side-by-side, and cleanup noFullscreen classes as needed
|
||||||
if (editor.options.sideBySideFullscreen === false) {
|
if (editor.options.sideBySideFullscreen === false) {
|
||||||
if (!cm.getOption('fullScreen') && sidePreviewActive) {
|
|
||||||
easyMDEContainer.className += ' sided--no-fullscreen';
|
|
||||||
// only apply classes if !fullScreen and side preview is (or will be) active
|
|
||||||
} else {
|
|
||||||
// retain spaces after the class
|
|
||||||
// in case there are subsequent classes
|
|
||||||
easyMDEContainer.className = easyMDEContainer.className.replace(/\s*sided--no-fullscreen(\s*)/g, '$1');
|
easyMDEContainer.className = easyMDEContainer.className.replace(/\s*sided--no-fullscreen(\s*)/g, '$1');
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var sidePreviewActive = /editor-preview-active-side/.test(preview.className);
|
|
||||||
|
|
||||||
if (onlyCleanup) {
|
|
||||||
// if not toggling, handle noFullscreen classes as needed
|
|
||||||
setNoFullscreenClass(sidePreviewActive);
|
|
||||||
} else if (sidePreviewActive) {
|
|
||||||
// close side-by-side, and cleanup noFullscreen classes as needed
|
|
||||||
setNoFullscreenClass(false);
|
|
||||||
preview.className = preview.className.replace(
|
preview.className = preview.className.replace(
|
||||||
/\s*editor-preview-active-side\s*/g, ''
|
/\s*editor-preview-active-side\s*/g, ''
|
||||||
);
|
);
|
||||||
if (toolbarButton) toolbarButton.className = toolbarButton.className.replace(/\s*active\s*/g, '');
|
if (toolbarButton) toolbarButton.className = toolbarButton.className.replace(/\s*active\s*/g, '');
|
||||||
wrapper.className = wrapper.className.replace(/\s*CodeMirror-sided\s*/g, ' ');
|
wrapper.className = wrapper.className.replace(/\s*CodeMirror-sided\s*/g, ' ');
|
||||||
} else {
|
} else {
|
||||||
// open side-by-side, and setup noFullscreen classes as needed
|
|
||||||
// When the preview button is clicked for the first time,
|
// 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,
|
// give some time for the transition from editor.css to fire and the view to slide from right to left,
|
||||||
// instead of just appearing.
|
// instead of just appearing.
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
if (!cm.getOption('fullScreen')) {
|
if (!cm.getOption('fullScreen')) {
|
||||||
if (editor.options.sideBySideFullscreen === false) {
|
if (editor.options.sideBySideFullscreen === false) {
|
||||||
setNoFullscreenClass(true);
|
easyMDEContainer.className += ' sided--no-fullscreen';
|
||||||
} else {
|
} else {
|
||||||
toggleFullScreen(editor);
|
toggleFullScreen(editor);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user