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