From d8314c05968725b68f4a7d6325ff4ac38bd0437d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ml=C3=A1dek?= Date: Sat, 19 Feb 2022 18:39:13 +0100 Subject: [PATCH] [ui] entry value length takes priority to better match expectations --- webui/src/util/sort.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/webui/src/util/sort.ts b/webui/src/util/sort.ts index 3ab5a22..a9bf8bc 100644 --- a/webui/src/util/sort.ts +++ b/webui/src/util/sort.ts @@ -3,9 +3,6 @@ import type { UpEntry } from "upend"; export type SortKeys = { [key: string]: string[] }; export function sortByValue(entries: UpEntry[], sortKeys: SortKeys): void { - entries.sort((aEntry, bEntry) => { - return String(aEntry.value.c).length - String(bEntry.value.c).length; - }); entries.sort((aEntry, bEntry) => { if (aEntry.value.t === "Number" && bEntry.value.t === "Number") { return bEntry.value.c - aEntry.value.c; @@ -42,6 +39,12 @@ export function sortByValue(entries: UpEntry[], sortKeys: SortKeys): void { }); } +export function sortByValueLength(entries: UpEntry[]) { + entries.sort((aEntry, bEntry) => { + return String(aEntry.value.c).length - String(bEntry.value.c).length; + }); +} + export function sortByAttribute(entries: UpEntry[]): void { entries.sort((aEntry, bEntry) => { return aEntry.attribute.localeCompare(bEntry.attribute); @@ -81,6 +84,7 @@ export function defaultEntitySort( ): UpEntry[] { const result = entries.concat(); sortByValue(result, sortKeys); + sortByValueLength(result); sortByAttribute(result); sortByEntity(result, sortKeys); return result; @@ -93,6 +97,7 @@ export function entityValueSort( const result = entries.concat(); sortByEntity(result, sortKeys); sortByAttribute(result); + sortByValueLength(result); sortByValue(result, sortKeys); return result; }