[ui] also sort entries by entity (resolved)

feat/vaults
Tomáš Mládek 2021-12-01 20:07:42 +01:00
parent 0864e01e1b
commit 15f39d8cc5
1 changed files with 27 additions and 10 deletions

View File

@ -57,24 +57,35 @@
}
// Sorting
let resolvedValues: { [key: string]: string } = {};
let resolvedAddresses: { [key: string]: string } = {};
$: sortedAttributes = attributes
.concat()
.sort(([aHash, _], [bHash, __]) => {
.sort(([_, aEntry], [__, bEntry]) => {
if (
resolvedValues[aHash] === undefined ||
resolvedValues[bHash] === undefined
resolvedAddresses[aEntry.value.c] === undefined ||
resolvedAddresses[bEntry.value.c] === undefined
) {
return 0;
return aEntry.value.c.localeCompare(bEntry.value.c);
} else {
return resolvedValues[aHash].localeCompare(resolvedValues[bHash]);
return resolvedAddresses[aEntry.value.c].localeCompare(
resolvedAddresses[bEntry.value.c]
);
}
})
.sort(([_, aEntry], [__, bEntry]) => {
return aEntry.attribute.localeCompare(bEntry.attribute);
})
.sort(([_, aEntry], [__, bEntry]) => {
return aEntry.entity.localeCompare(bEntry.entity);
if (
resolvedAddresses[aEntry.entity] === undefined ||
resolvedAddresses[bEntry.entity] === undefined
) {
return aEntry.entity.localeCompare(bEntry.entity);
} else {
return resolvedAddresses[aEntry.entity].localeCompare(
resolvedAddresses[bEntry.entity]
);
}
});
// Formatting & Display
@ -146,8 +157,14 @@
{/if}
{#if showEntity}
<td>
<Address link address={entry.entity} />
<td class="entity">
<Address
link
address={entry.entity}
on:resolved={(event) => {
resolvedAddresses[entry.entity] = event.detail[0];
}}
/>
</td>
{/if}
@ -172,7 +189,7 @@
address={entry.value.c}
resolve={Boolean(resolve[id]) || true}
on:resolved={(event) => {
resolvedValues[id] = event.detail[0];
resolvedAddresses[entry.value.c] = event.detail[0];
}}
/>
{:else}