properly start live-preview after first save

This commit is contained in:
tophf 2018-05-04 22:27:14 +03:00
parent 1f347df8cf
commit f5750c7ab6

View File

@ -591,19 +591,25 @@ onDOMscriptReady('/codemirror.js').then(() => {
setTimeout(setupLivePreview); setTimeout(setupLivePreview);
return; return;
} }
if (!styleId) { if (styleId) {
$('#editor.livePreview').onchange = livePreviewToggled;
return;
}
// wait for #preview-label's class to lose 'hidden' after the first save
new MutationObserver((_, observer) => { new MutationObserver((_, observer) => {
if (!styleId) return; if (!styleId) return;
observer.disconnect(); observer.disconnect();
setupLivePreview(); setupLivePreview();
livePreviewToggled();
}).observe($('#preview-label'), { }).observe($('#preview-label'), {
attributes: true, attributes: true,
attributeFilter: ['class'], attributeFilter: ['class'],
}); });
return;
} }
$('#editor.livePreview').onchange = function () {
const previewing = this.checked; function livePreviewToggled() {
const me = this instanceof Node ? this : $('#editor.livePreview');
const previewing = me.checked;
editors.forEach(cm => cm[previewing ? 'on' : 'off']('changes', updatePreview)); editors.forEach(cm => cm[previewing ? 'on' : 'off']('changes', updatePreview));
const addRemove = previewing ? 'addEventListener' : 'removeEventListener'; const addRemove = previewing ? 'addEventListener' : 'removeEventListener';
$('#enabled')[addRemove]('change', updatePreview); $('#enabled')[addRemove]('change', updatePreview);
@ -611,7 +617,6 @@ onDOMscriptReady('/codemirror.js').then(() => {
if (!previewing || document.body.classList.contains('dirty')) { if (!previewing || document.body.classList.contains('dirty')) {
updatePreview(null, previewing); updatePreview(null, previewing);
} }
};
} }
function updatePreview(data, previewing) { function updatePreview(data, previewing) {