[ui] fix & optimize sort (wow)
This commit is contained in:
parent
5cef2b8960
commit
9ce4c21b93
2 changed files with 55 additions and 59 deletions
|
@ -113,7 +113,8 @@
|
|||
entries.forEach((entry) => {
|
||||
addSortKeys(
|
||||
entry.entity,
|
||||
$labelListing.getObject(entry.entity).identify()
|
||||
$labelListing.getObject(entry.entity).identify(),
|
||||
false
|
||||
);
|
||||
|
||||
if (entry.value.t === "Address") {
|
||||
|
|
|
@ -3,11 +3,10 @@ import type { UpEntry } from "upend";
|
|||
export type SortKeys = { [key: string]: string[] };
|
||||
|
||||
export function sortByValue(entries: UpEntry[], sortKeys: SortKeys): void {
|
||||
entries
|
||||
.sort((aEntry, bEntry) => {
|
||||
entries.sort((aEntry, bEntry) => {
|
||||
return String(aEntry.value.c).length - String(bEntry.value.c).length;
|
||||
})
|
||||
.sort((aEntry, bEntry) => {
|
||||
});
|
||||
entries.sort((aEntry, bEntry) => {
|
||||
if (aEntry.value.t === "Number" && bEntry.value.t === "Number") {
|
||||
return bEntry.value.c - aEntry.value.c;
|
||||
}
|
||||
|
@ -50,15 +49,11 @@ export function sortByAttribute(entries: UpEntry[]): void {
|
|||
}
|
||||
|
||||
export function sortByEntity(entries: UpEntry[], sortKeys: SortKeys): void {
|
||||
entries
|
||||
.sort((aEntry, bEntry) => {
|
||||
entries.sort((aEntry, bEntry) => {
|
||||
return aEntry.attribute.localeCompare(bEntry.attribute);
|
||||
})
|
||||
.sort((aEntry, bEntry) => {
|
||||
if (
|
||||
!sortKeys[aEntry.entity]?.length ||
|
||||
!sortKeys[bEntry.entity]?.length
|
||||
) {
|
||||
});
|
||||
entries.sort((aEntry, bEntry) => {
|
||||
if (!sortKeys[aEntry.entity]?.length || !sortKeys[bEntry.entity]?.length) {
|
||||
if (
|
||||
Boolean(sortKeys[aEntry.entity]?.length) &&
|
||||
!sortKeys[bEntry.entity]?.length
|
||||
|
@ -85,9 +80,9 @@ export function defaultEntitySort(
|
|||
sortKeys: SortKeys
|
||||
): UpEntry[] {
|
||||
const result = entries.concat();
|
||||
sortByValue(entries, sortKeys);
|
||||
sortByAttribute(entries);
|
||||
sortByEntity(entries, sortKeys);
|
||||
sortByValue(result, sortKeys);
|
||||
sortByAttribute(result);
|
||||
sortByEntity(result, sortKeys);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -96,8 +91,8 @@ export function entityValueSort(
|
|||
sortKeys: SortKeys
|
||||
): UpEntry[] {
|
||||
const result = entries.concat();
|
||||
sortByEntity(entries, sortKeys);
|
||||
sortByAttribute(entries);
|
||||
sortByValue(entries, sortKeys);
|
||||
sortByEntity(result, sortKeys);
|
||||
sortByAttribute(result);
|
||||
sortByValue(result, sortKeys);
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue