mirror of
https://github.com/chinchang/web-maker.git
synced 2025-08-04 04:17:33 +02:00
refactor to stop unnecessary setPreviewContent calls
This commit is contained in:
@@ -371,26 +371,27 @@ onboardDontShowInTabOptionBtn, TextareaAutoComplete */
|
|||||||
populateItemsInSavedPane(items);
|
populateItemsInSavedPane(items);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
function setCurrentItem(item) {
|
||||||
|
currentItem = item;
|
||||||
|
// Reset unsaved count, in UI also.
|
||||||
|
unsavedEditCount = 0;
|
||||||
|
saveBtn.classList.remove('is-marked');
|
||||||
|
}
|
||||||
function createNewItem() {
|
function createNewItem() {
|
||||||
var d = new Date();
|
var d = new Date();
|
||||||
currentItem = {
|
setCurrentItem({
|
||||||
title: 'Untitled ' + d.getDate() + '-' + (d.getMonth() + 1) + '-' + d.getHours() + ':' + d.getMinutes(),
|
title: 'Untitled ' + d.getDate() + '-' + (d.getMonth() + 1) + '-' + d.getHours() + ':' + d.getMinutes(),
|
||||||
html: '',
|
html: '',
|
||||||
css: '',
|
css: '',
|
||||||
js: '',
|
js: '',
|
||||||
externalLibs: { js: '', css: '' },
|
externalLibs: { js: '', css: '' },
|
||||||
layoutMode: currentLayoutMode
|
layoutMode: currentLayoutMode
|
||||||
};
|
});
|
||||||
alertsService.add('New item created');
|
|
||||||
unsavedEditCount = 0;
|
|
||||||
saveBtn.classList.remove('is-marked');
|
|
||||||
refreshEditor();
|
refreshEditor();
|
||||||
|
alertsService.add('New item created');
|
||||||
}
|
}
|
||||||
function openItem(itemId) {
|
function openItem(itemId) {
|
||||||
currentItem = savedItems[itemId];
|
setCurrentItem(savedItems[itemId]);
|
||||||
// codeSplitInstance.setSizes([ 33.3, 33.3, 33.3 ]);
|
|
||||||
unsavedEditCount = 0;
|
|
||||||
refreshEditor();
|
refreshEditor();
|
||||||
alertsService.add('Saved item loaded');
|
alertsService.add('Saved item loaded');
|
||||||
}
|
}
|
||||||
@@ -428,8 +429,6 @@ onboardDontShowInTabOptionBtn, TextareaAutoComplete */
|
|||||||
titleInput.value = currentItem.title || 'Untitled';
|
titleInput.value = currentItem.title || 'Untitled';
|
||||||
externalJsTextarea.value = (currentItem.externalLibs && currentItem.externalLibs.js) || '';
|
externalJsTextarea.value = (currentItem.externalLibs && currentItem.externalLibs.js) || '';
|
||||||
externalCssTextarea.value = (currentItem.externalLibs && currentItem.externalLibs.css) || '';
|
externalCssTextarea.value = (currentItem.externalLibs && currentItem.externalLibs.css) || '';
|
||||||
// FIXME
|
|
||||||
externalJsTextarea.dispatchEvent(new Event('blur'));
|
|
||||||
|
|
||||||
utils.log('refresh editor')
|
utils.log('refresh editor')
|
||||||
// Set the modes manually here, so that the preview refresh triggered by the `setValue`
|
// Set the modes manually here, so that the preview refresh triggered by the `setValue`
|
||||||
@@ -445,6 +444,9 @@ onboardDontShowInTabOptionBtn, TextareaAutoComplete */
|
|||||||
scope.cm.css.refresh();
|
scope.cm.css.refresh();
|
||||||
scope.cm.js.refresh();
|
scope.cm.js.refresh();
|
||||||
|
|
||||||
|
// To have the library count updated
|
||||||
|
updateExternalLibUi();
|
||||||
|
|
||||||
// Set preview only when all modes are updated so that preview doesn't generate on partially
|
// Set preview only when all modes are updated so that preview doesn't generate on partially
|
||||||
// correct modes and also doesn't happen 3 times.
|
// correct modes and also doesn't happen 3 times.
|
||||||
Promise.all([
|
Promise.all([
|
||||||
@@ -553,7 +555,7 @@ onboardDontShowInTabOptionBtn, TextareaAutoComplete */
|
|||||||
if (cssMode === CssModes.CSS) {
|
if (cssMode === CssModes.CSS) {
|
||||||
d.resolve(code);
|
d.resolve(code);
|
||||||
} else if (cssMode === CssModes.SCSS || cssMode === CssModes.SASS) {
|
} else if (cssMode === CssModes.SCSS || cssMode === CssModes.SASS) {
|
||||||
if (sass) {
|
if (sass && code) {
|
||||||
sass.compile(code, { indentedSyntax: cssMode === CssModes.SASS }, function(result) {
|
sass.compile(code, { indentedSyntax: cssMode === CssModes.SASS }, function(result) {
|
||||||
// Something was wrong
|
// Something was wrong
|
||||||
if (result.line && result.message) {
|
if (result.line && result.message) {
|
||||||
@@ -883,11 +885,11 @@ onboardDontShowInTabOptionBtn, TextareaAutoComplete */
|
|||||||
CodeMirror.commands.indentAuto(editor);
|
CodeMirror.commands.indentAuto(editor);
|
||||||
},
|
},
|
||||||
'Tab': function(editor) {
|
'Tab': function(editor) {
|
||||||
// FIXME: This breaks the usual tab behavior of stepping only in fixes size.
|
|
||||||
// Following code always puts `indentUnit` no. of spaces.
|
|
||||||
var input = $('[data-setting=indentWith]:checked');
|
var input = $('[data-setting=indentWith]:checked');
|
||||||
if (!editor.somethingSelected() && (!input || input.value === 'spaces')) {
|
if (!editor.somethingSelected() && (!input || input.value === 'spaces')) {
|
||||||
// softtabs adds spaces
|
// softtabs adds spaces. This is required because by default tab key will put tab, but we want
|
||||||
|
// to indent with spaces if `spaces` is preferred mode of indentation.
|
||||||
|
// `somethingSelected` needs to be checked otherwise, all selected code is replaced with softtab.
|
||||||
CodeMirror.commands.insertSoftTab(editor);
|
CodeMirror.commands.insertSoftTab(editor);
|
||||||
} else {
|
} else {
|
||||||
CodeMirror.commands.defaultTab(editor);
|
CodeMirror.commands.defaultTab(editor);
|
||||||
@@ -1028,8 +1030,8 @@ onboardDontShowInTabOptionBtn, TextareaAutoComplete */
|
|||||||
utils.log('shouldreplace', shouldReplace);
|
utils.log('shouldreplace', shouldReplace);
|
||||||
items.forEach((item) => {
|
items.forEach((item) => {
|
||||||
toMergeItems[item.id] = item;
|
toMergeItems[item.id] = item;
|
||||||
mergedItemCount = items.length;
|
|
||||||
});
|
});
|
||||||
|
mergedItemCount = items.length;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mergedItemCount) {
|
if (mergedItemCount) {
|
||||||
@@ -1045,10 +1047,10 @@ onboardDontShowInTabOptionBtn, TextareaAutoComplete */
|
|||||||
/* eslint-disable guard-for-in */
|
/* eslint-disable guard-for-in */
|
||||||
for (var id in toMergeItems) {
|
for (var id in toMergeItems) {
|
||||||
result.items[id] = true;
|
result.items[id] = true;
|
||||||
chrome.storage.local.set({
|
|
||||||
items: result.items
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
chrome.storage.local.set({
|
||||||
|
items: result.items
|
||||||
|
});
|
||||||
|
|
||||||
/* eslint-enable guard-for-in */
|
/* eslint-enable guard-for-in */
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user