[ui] get LBL attrs in a single query

feat/vaults
Tomáš Mládek 2022-02-06 13:41:47 +01:00
parent 1ee86a9da6
commit 52409a0195
No known key found for this signature in database
GPG Key ID: ED21612889E75EC5
2 changed files with 17 additions and 12 deletions

View File

@ -14,13 +14,12 @@
const params = useParams(); const params = useParams();
export let address: string; export let address: string;
export let labels: string[] = []; export let labels: string[] | undefined = undefined;
export let link = false; export let link = false;
export let resolve = true;
export let banner = false; export let banner = false;
let entity = readable(undefined); let entity = readable(undefined);
$: if (resolve) ({ entity } = useEntity(address)); $: if (labels === undefined) ({ entity } = useEntity(address));
// isFile // isFile
$: isFile = $entity?.get("IS") === BLOB_TYPE_ADDR; $: isFile = $entity?.get("IS") === BLOB_TYPE_ADDR;
@ -28,10 +27,11 @@
// Identification // Identification
let inferredIds: string[] = []; let inferredIds: string[] = [];
$: inferredIds = $entity?.identify() || []; $: inferredIds = $entity?.identify() || [];
$: resolving = inferredIds.concat(labels).length == 0 && !$entity; $: resolving = inferredIds.concat(labels || []).length == 0 && !$entity;
$: displayLabel = $: displayLabel =
Array.from(new Set(inferredIds.concat(labels))).join(" | ") || address; Array.from(new Set(inferredIds.concat(labels || []))).join(" | ") ||
address;
$: dispatch("resolved", inferredIds); $: dispatch("resolved", inferredIds);

View File

@ -10,6 +10,7 @@
import Selector from "../utils/Selector.svelte"; import Selector from "../utils/Selector.svelte";
import type { IValue } from "upend/types"; import type { IValue } from "upend/types";
import Editable from "../utils/Editable.svelte"; import Editable from "../utils/Editable.svelte";
import { query } from "../../lib/entity";
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
export let columns: string; export let columns: string;
@ -55,6 +56,14 @@
} as AttributeUpdate); } as AttributeUpdate);
} }
// Labelling
$: labelListing = query(
() =>
`(matches (in ${entries
.map((e) => '"' + e.entity + '"')
.join(" ")}) "LBL" ? )`
).result;
// Sorting // Sorting
let sortedAttributes = entries; let sortedAttributes = entries;
@ -179,9 +188,6 @@
} }
return String(value); return String(value);
} }
// Optimizations
let resolve = [];
</script> </script>
<table> <table>
@ -261,10 +267,9 @@
<UpObject <UpObject
link link
address={String(entry.value.c)} address={String(entry.value.c)}
labels={entry.listing labels={$labelListing
.getObject(String(entry.value.c)) ?.getObject(String(entry.value.c))
.identify()} ?.identify()}
resolve={Boolean(resolve[entry.address]) || true}
on:resolved={(event) => { on:resolved={(event) => {
addSortKeys(String(entry.value.c), event.detail); addSortKeys(String(entry.value.c), event.detail);
}} }}