sorting optimization

feat/vaults
Tomáš Mládek 2021-12-20 14:11:53 +01:00
parent 55bf3123f9
commit acee884967
No known key found for this signature in database
GPG Key ID: ED21612889E75EC5
1 changed files with 9 additions and 4 deletions

View File

@ -61,17 +61,19 @@
let sortedAttributes = entries; let sortedAttributes = entries;
let sortKeys: { [key: string]: string[] } = {}; let sortKeys: { [key: string]: string[] } = {};
function addSortKeys(key: string, vals: string[]) { function addSortKeys(key: string, vals: string[], resort = true) {
if (!sortKeys[key]) { if (!sortKeys[key]) {
sortKeys[key] = []; sortKeys[key] = [];
} }
let changed = false;
vals.forEach((val) => { vals.forEach((val) => {
if (!sortKeys[key].includes(val)) { if (!sortKeys[key].includes(val)) {
changed = true;
sortKeys[key].push(val); sortKeys[key].push(val);
} }
}); });
sortAttributes(); if (resort && changed) sortAttributes();
} }
function sortAttributes() { function sortAttributes() {
@ -140,11 +142,14 @@
if (entry.value.t === "Address") { if (entry.value.t === "Address") {
addSortKeys( addSortKeys(
String(entry.value.c), String(entry.value.c),
entry.listing.getObject(String(entry.value.c)).identify() entry.listing.getObject(String(entry.value.c)).identify(),
false
); );
} }
}); });
sortAttributes();
// Navigation highlights // Navigation highlights
const { index } = getContext("browse") as { index: Writable<number> }; const { index } = getContext("browse") as { index: Writable<number> };
$: addresses = $params.addresses.split(","); $: addresses = $params.addresses.split(",");