[ui] sort resolved before unresolved

feat/vaults
Tomáš Mládek 2021-12-01 20:13:01 +01:00
parent 15f39d8cc5
commit 7a03c63a15
1 changed files with 23 additions and 15 deletions

View File

@ -57,19 +57,23 @@
}
// Sorting
let resolvedAddresses: { [key: string]: string } = {};
let sortKeys: { [key: string]: string } = {};
$: sortedAttributes = attributes
.concat()
.sort(([_, aEntry], [__, bEntry]) => {
if (
resolvedAddresses[aEntry.value.c] === undefined ||
resolvedAddresses[bEntry.value.c] === undefined
sortKeys[aEntry.value.c] === undefined ||
sortKeys[bEntry.value.c] === undefined
) {
return aEntry.value.c.localeCompare(bEntry.value.c);
if (sortKeys[aEntry.value.c] && !sortKeys[bEntry.value.c]) {
return -1;
} else if (!sortKeys[aEntry.value.c] && sortKeys[bEntry.value.c]) {
return 1;
} else {
return aEntry.value.c.localeCompare(bEntry.value.c);
}
} else {
return resolvedAddresses[aEntry.value.c].localeCompare(
resolvedAddresses[bEntry.value.c]
);
return sortKeys[aEntry.value.c].localeCompare(sortKeys[bEntry.value.c]);
}
})
.sort(([_, aEntry], [__, bEntry]) => {
@ -77,14 +81,18 @@
})
.sort(([_, aEntry], [__, bEntry]) => {
if (
resolvedAddresses[aEntry.entity] === undefined ||
resolvedAddresses[bEntry.entity] === undefined
sortKeys[aEntry.entity] === undefined ||
sortKeys[bEntry.entity] === undefined
) {
return aEntry.entity.localeCompare(bEntry.entity);
if (sortKeys[aEntry.entity] && !sortKeys[bEntry.entity]) {
return -1;
} else if (!sortKeys[aEntry.entity] && sortKeys[bEntry.entity]) {
return 1;
} else {
return aEntry.entity.localeCompare(bEntry.entity);
}
} else {
return resolvedAddresses[aEntry.entity].localeCompare(
resolvedAddresses[bEntry.entity]
);
return sortKeys[aEntry.entity].localeCompare(sortKeys[bEntry.entity]);
}
});
@ -162,7 +170,7 @@
link
address={entry.entity}
on:resolved={(event) => {
resolvedAddresses[entry.entity] = event.detail[0];
sortKeys[entry.entity] = event.detail[0];
}}
/>
</td>
@ -189,7 +197,7 @@
address={entry.value.c}
resolve={Boolean(resolve[id]) || true}
on:resolved={(event) => {
resolvedAddresses[entry.value.c] = event.detail[0];
sortKeys[entry.value.c] = event.detail[0];
}}
/>
{:else}