From 4842627bedf942f41224bbd23a71e9e43b3dd812 Mon Sep 17 00:00:00 2001 From: Silberengel Date: Wed, 9 Apr 2025 17:29:14 +0200 Subject: [PATCH 1/4] make the node information human-readable --- .../navigator/EventNetwork/NodeTooltip.svelte | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/src/lib/navigator/EventNetwork/NodeTooltip.svelte b/src/lib/navigator/EventNetwork/NodeTooltip.svelte index 9ebe042..072ea96 100644 --- a/src/lib/navigator/EventNetwork/NodeTooltip.svelte +++ b/src/lib/navigator/EventNetwork/NodeTooltip.svelte @@ -5,6 +5,26 @@ export let selected: boolean = false; export let x: number; export let y: number; + + function getAuthorTag(node: NetworkNode): string { + if (node.event) { + const authorTags = node.event.getMatchingTags("author"); + if (authorTags.length > 0) { + return authorTags[0][1]; + } + } + return "Unknown"; + } + + function getDTag(node: NetworkNode): string { + if (node.event) { + const dTags = node.event.getMatchingTags("d"); + if (dTags.length > 0) { + return dTags[0][1]; + } + } + return "View Publication"; + }
{node.type} ({node.isContainer ? "30040" : "30041"})
-
- ID: {node.id} - {#if node.naddr} -
{node.naddr}
- {/if} - {#if node.nevent} -
{node.nevent}
- {/if} +
+ Author: {getAuthorTag(node)} +
+ {#if node.content}
{/if}
-
\ No newline at end of file + From ece42f30218d275cba271a7caf3464a3a94c7f46 Mon Sep 17 00:00:00 2001 From: Silberengel Date: Wed, 9 Apr 2025 17:53:30 +0200 Subject: [PATCH 2/4] Fix a type error. Got rid of unused style and applied a style from the main css. Implemented Svelte props. Made sure entire element is visible on page, and added a hyperlink to the publication based upon eventID. Limit content to 200 chars. --- .../navigator/EventNetwork/NodeTooltip.svelte | 66 +++++++++++++++---- src/lib/navigator/EventNetwork/index.svelte | 12 +--- 2 files changed, 57 insertions(+), 21 deletions(-) diff --git a/src/lib/navigator/EventNetwork/NodeTooltip.svelte b/src/lib/navigator/EventNetwork/NodeTooltip.svelte index 072ea96..0c40287 100644 --- a/src/lib/navigator/EventNetwork/NodeTooltip.svelte +++ b/src/lib/navigator/EventNetwork/NodeTooltip.svelte @@ -1,10 +1,17 @@
-
{node.title}
+
{node.type} ({node.isContainer ? "30040" : "30041"})
Author: {getAuthorTag(node)}
- + {#if node.content}
- {node.content} + {truncateContent(node.content)}
{/if} {#if selected} diff --git a/src/lib/navigator/EventNetwork/index.svelte b/src/lib/navigator/EventNetwork/index.svelte index 9246df3..23aa12b 100644 --- a/src/lib/navigator/EventNetwork/index.svelte +++ b/src/lib/navigator/EventNetwork/index.svelte @@ -8,6 +8,7 @@ import { createSimulation, setupDragHandlers, applyGlobalLogGravity, applyConnectedGravity } from "./utils/forceSimulation"; import Legend from "./Legend.svelte"; import NodeTooltip from "./NodeTooltip.svelte"; + import type { NetworkNode, NetworkLink } from "./types"; let { events = [] } = $props<{ events?: NDKEvent[] }>(); @@ -90,14 +91,14 @@ function updateGraph() { if (!svg || !events?.length || !svgGroup) return; - const { nodes, links } = generateGraph(events, currentLevels); + const { nodes, links } = generateGraph(events, Number(currentLevels)); if (!nodes.length) return; // Stop any existing simulation if (simulation) simulation.stop(); // Create new simulation - simulation = createSimulation(nodes, links, nodeRadius, linkDistance); + simulation = createSimulation(nodes, links, Number(nodeRadius), Number(linkDistance)); const dragHandler = setupDragHandlers(simulation); // Update links @@ -326,10 +327,3 @@
- - \ No newline at end of file From 4f74eedbacb022e2e6791715971282d14bd7dcdf Mon Sep 17 00:00:00 2001 From: Silberengel Date: Wed, 9 Apr 2025 18:10:36 +0200 Subject: [PATCH 3/4] Fixed a warning about ambiguous tag closure. Added the summary field to the index card on visualization, as well as a close button on the cards, and added a maximum width for the cards. --- .../navigator/EventNetwork/NodeTooltip.svelte | 37 +++++++++++++++++-- src/lib/navigator/EventNetwork/index.svelte | 6 +++ src/routes/visualize/+page.svelte | 4 +- 3 files changed, 42 insertions(+), 5 deletions(-) diff --git a/src/lib/navigator/EventNetwork/NodeTooltip.svelte b/src/lib/navigator/EventNetwork/NodeTooltip.svelte index 0c40287..d785c53 100644 --- a/src/lib/navigator/EventNetwork/NodeTooltip.svelte +++ b/src/lib/navigator/EventNetwork/NodeTooltip.svelte @@ -1,6 +1,6 @@
{/if} diff --git a/src/routes/visualize/+page.svelte b/src/routes/visualize/+page.svelte index 35b837d..69341e2 100644 --- a/src/routes/visualize/+page.svelte +++ b/src/routes/visualize/+page.svelte @@ -155,6 +155,6 @@
{:else} -
+
{/if} -
\ No newline at end of file +
From 307312d5e88e48c1b39a7e8fc15f71a0351bf921 Mon Sep 17 00:00:00 2001 From: Silberengel Date: Wed, 9 Apr 2025 18:24:12 +0200 Subject: [PATCH 4/4] Moved the settings button, so that it doesn't overlap the profile drop-down on the right-top corner. fixes #174 fixes #187 --- src/routes/visualize/+page.svelte | 65 ++++++++++++++++--------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/src/routes/visualize/+page.svelte b/src/routes/visualize/+page.svelte index 69341e2..b8d6f3c 100644 --- a/src/routes/visualize/+page.svelte +++ b/src/routes/visualize/+page.svelte @@ -79,44 +79,45 @@
-

Publication Network

- - - - {#if !loading && !error} - +
+

Publication Network

+ + + {#if !loading && !error} + + {/if} +
+ {#if !loading && !error && showSettings} - {#if showSettings} -
-
-

- Visualization Settings -

+
+
+

+ Visualization Settings +

-
- - Showing {events.length} events from {$networkFetchLimit} headers - - - -
+
+ + Showing {events.length} events from {$networkFetchLimit} headers + + +
- {/if} +
{/if} + {#if loading}