[ui] sort resolved before unresolved
This commit is contained in:
parent
15f39d8cc5
commit
7a03c63a15
1 changed files with 23 additions and 15 deletions
|
@ -57,19 +57,23 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sorting
|
// Sorting
|
||||||
let resolvedAddresses: { [key: string]: string } = {};
|
let sortKeys: { [key: string]: string } = {};
|
||||||
$: sortedAttributes = attributes
|
$: sortedAttributes = attributes
|
||||||
.concat()
|
.concat()
|
||||||
.sort(([_, aEntry], [__, bEntry]) => {
|
.sort(([_, aEntry], [__, bEntry]) => {
|
||||||
if (
|
if (
|
||||||
resolvedAddresses[aEntry.value.c] === undefined ||
|
sortKeys[aEntry.value.c] === undefined ||
|
||||||
resolvedAddresses[bEntry.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 {
|
} else {
|
||||||
return resolvedAddresses[aEntry.value.c].localeCompare(
|
return aEntry.value.c.localeCompare(bEntry.value.c);
|
||||||
resolvedAddresses[bEntry.value.c]
|
}
|
||||||
);
|
} else {
|
||||||
|
return sortKeys[aEntry.value.c].localeCompare(sortKeys[bEntry.value.c]);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.sort(([_, aEntry], [__, bEntry]) => {
|
.sort(([_, aEntry], [__, bEntry]) => {
|
||||||
|
@ -77,14 +81,18 @@
|
||||||
})
|
})
|
||||||
.sort(([_, aEntry], [__, bEntry]) => {
|
.sort(([_, aEntry], [__, bEntry]) => {
|
||||||
if (
|
if (
|
||||||
resolvedAddresses[aEntry.entity] === undefined ||
|
sortKeys[aEntry.entity] === undefined ||
|
||||||
resolvedAddresses[bEntry.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 {
|
} else {
|
||||||
return resolvedAddresses[aEntry.entity].localeCompare(
|
return aEntry.entity.localeCompare(bEntry.entity);
|
||||||
resolvedAddresses[bEntry.entity]
|
}
|
||||||
);
|
} else {
|
||||||
|
return sortKeys[aEntry.entity].localeCompare(sortKeys[bEntry.entity]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -162,7 +170,7 @@
|
||||||
link
|
link
|
||||||
address={entry.entity}
|
address={entry.entity}
|
||||||
on:resolved={(event) => {
|
on:resolved={(event) => {
|
||||||
resolvedAddresses[entry.entity] = event.detail[0];
|
sortKeys[entry.entity] = event.detail[0];
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
|
@ -189,7 +197,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) => {
|
||||||
resolvedAddresses[entry.value.c] = event.detail[0];
|
sortKeys[entry.value.c] = event.detail[0];
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
{:else}
|
{:else}
|
||||||
|
|
Loading…
Reference in a new issue