Refactor sorting
This commit is contained in:
parent
dfe47f3ca6
commit
1516f6c771
|
@ -218,6 +218,16 @@ function initPopup() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function sortStyles({styles, getEnabled, getName}) {
|
||||||
|
const enabledFirst = prefs.get('popup.enabledFirst');
|
||||||
|
return styles.sort((a, b) => {
|
||||||
|
const aEnabled = getEnabled(a);
|
||||||
|
return enabledFirst && aEnabled !== getEnabled(b)
|
||||||
|
? aEnabled ? -1 : 1
|
||||||
|
: getName(a).localeCompare(getName(b));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function showStyles(styles) {
|
function showStyles(styles) {
|
||||||
if (!styles) {
|
if (!styles) {
|
||||||
return;
|
return;
|
||||||
|
@ -228,31 +238,28 @@ function showStyles(styles) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const enabledFirst = prefs.get('popup.enabledFirst');
|
|
||||||
styles.sort((a, b) => (
|
|
||||||
enabledFirst && a.enabled !== b.enabled
|
|
||||||
? a.enabled ? -1 : 1
|
|
||||||
: a.name.localeCompare(b.name)
|
|
||||||
));
|
|
||||||
|
|
||||||
const container = document.createDocumentFragment();
|
const container = document.createDocumentFragment();
|
||||||
styles.forEach(style => createStyleElement({style, container}));
|
sortStyles({
|
||||||
|
styles,
|
||||||
|
getEnabled: entry => entry.enabled,
|
||||||
|
getName: entry => entry.name
|
||||||
|
})
|
||||||
|
.forEach(style => createStyleElement({style, container}));
|
||||||
|
|
||||||
installed.appendChild(container);
|
installed.appendChild(container);
|
||||||
window.dispatchEvent(new Event('showStyles:done'));
|
window.dispatchEvent(new Event('showStyles:done'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function sortStylesInPlace() {
|
function sortStylesInPlace() {
|
||||||
if (prefs.get('popup.autoResort')) {
|
if (prefs.get('popup.autoResort')) {
|
||||||
const enabledFirst = prefs.get('popup.enabledFirst');
|
|
||||||
const styles = $$('.entry', installed);
|
const styles = $$('.entry', installed);
|
||||||
if (styles.length) {
|
if (styles.length) {
|
||||||
styles.sort((a, b) => {
|
sortStyles({
|
||||||
const aEnabled = a.styleMeta.enabled;
|
styles,
|
||||||
return enabledFirst && aEnabled !== b.styleMeta.enabled
|
getEnabled: entry => entry.styleMeta.enabled,
|
||||||
? aEnabled ? -1 : 1
|
getName: entry => entry.styleMeta.name
|
||||||
: a.styleMeta.name.localeCompare(b.styleMeta.name);
|
})
|
||||||
});
|
.forEach(style => installed.appendChild(style));
|
||||||
styles.forEach(style => installed.appendChild(style));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user