From b02b6d7feb91b93d299f27343beaf36f4001ef78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ml=C3=A1dek?= Date: Tue, 15 Feb 2022 22:17:40 +0100 Subject: [PATCH] [ui] use Table on Home view --- webui/src/components/widgets/Table.svelte | 7 +++- webui/src/views/Home.svelte | 45 +++-------------------- 2 files changed, 11 insertions(+), 41 deletions(-) diff --git a/webui/src/components/widgets/Table.svelte b/webui/src/components/widgets/Table.svelte index 8f8f5d6..38ade92 100644 --- a/webui/src/components/widgets/Table.svelte +++ b/webui/src/components/widgets/Table.svelte @@ -12,11 +12,12 @@ import Editable from "../utils/Editable.svelte"; import { query } from "../../lib/entity"; import { Readable, readable } from "svelte/store"; - import { defaultEntitySort } from "../../util/sort"; + import { defaultEntitySort, entityValueSort } from "../../util/sort"; const dispatch = createEventDispatcher(); export let columns: string; export let header = true; + export let orderByValue = false; export let entries: UpEntry[]; export let editable = false; @@ -100,7 +101,9 @@ } function sortAttributes() { - sortedAttributes = defaultEntitySort(entries, sortKeys); + sortedAttributes = orderByValue + ? entityValueSort(entries, sortKeys) + : defaultEntitySort(entries, sortKeys); } $: { diff --git a/webui/src/views/Home.svelte b/webui/src/views/Home.svelte index 3fdd0ee..225df28 100644 --- a/webui/src/views/Home.svelte +++ b/webui/src/views/Home.svelte @@ -5,6 +5,7 @@ import UpObject from "../components/display/UpObject.svelte"; import UpObjectCard from "../components/display/UpObjectCard.svelte"; import Spinner from "../components/utils/Spinner.svelte"; + import Table from "../components/widgets/Table.svelte"; import { query } from "../lib/entity"; import { vaultInfo } from "../util/info"; import { updateTitle } from "../util/title"; @@ -19,18 +20,10 @@ })(); const { result: lastVisitedQuery } = query(`(matches ? "LAST_VISITED" ? )`); - $: lastVisited = ($lastVisitedQuery?.entries || []) - .filter((e) => e.value.t == "Number") - .sort((a, b) => (b.value.c as number) - (a.value.c as number)) - .map((e) => [e.entity, e.value.c as number]) - .slice(0, 25) as [string, number][]; + $: lastVisited = ($lastVisitedQuery?.entries || []).slice(0, 25); const { result: latestQuery } = query(`(matches ? "ADDED" ?)`); - $: latest = ($latestQuery?.entries || []) - .filter((e) => e.value.t == "Number") - .sort((a, b) => (b.value.c as number) - (a.value.c as number)) - .map((e) => [e.entity, e.value.c as number]) - .slice(0, 25) as [string, number][]; + $: latest = ($latestQuery?.entries || []).slice(0, 25); updateTitle("Home"); @@ -63,16 +56,7 @@ {#if $lastVisitedQuery == undefined} {:else} - - {#each lastVisited as [address, visited]} - - - - - {/each} -
{formatRelative(visited * 1000, new Date())}
+ {/if} {/if} @@ -83,16 +67,7 @@ {#if $latestQuery == undefined} {:else} -
- {#each latest as [address, added]} - - - - - {/each} -
{formatRelative(added * 1000, new Date())}
+ {/if} {/if} @@ -118,15 +93,7 @@ .latest, .lastVisited { - table { - border-spacing: 1em 0.25em; - } - - .timestamp { - opacity: 0.77; - white-space: nowrap; - text-align: center; - } + margin: 1rem; } .roots {