add root of thread when adding an event to a tab.

This commit is contained in:
Robert C. Martin 2022-08-10 13:31:49 -05:00
parent 55f953b52b
commit 4676aba4ca
4 changed files with 47 additions and 2 deletions

View File

@ -370,6 +370,13 @@
(should= 2 root)
(should= 2 referent)
(should= [1 4] mentions)))
(it "finds the root when only root is marked."
(let [event {:tags [[:e (hexify 2) "" "root"]]}
[root mentions referent] (get-references event)]
(should= 2 root)
(should= 2 referent)
(should= [] mentions)))
)
(describe "json"

View File

@ -5,7 +5,8 @@
[more-speech.ui.swing.article-tree-util :refer :all]
[more-speech.nostr.util :as util]
[more-speech.ui.swing.ui-context :refer :all]
[more-speech.ui.swing.article-panel :as article-panel])
[more-speech.ui.swing.article-panel :as article-panel]
[more-speech.ui.swing.util :as swing-util])
(:import (javax.swing.tree DefaultMutableTreeNode)))
(defn hexify [n] (util/num32->hex-string n))
@ -497,4 +498,33 @@
_ (.add child2 (DefaultMutableTreeNode. 4))
copied-node (copy-node node)]
(should= [1 [2] [3 [4]]] (depict-node copied-node))))
)
(describe "adding ids to tabs"
(with-stubs)
(it "adds an an unrooted article id to a tab"
(let [message-id 1
messages {message-id {:tags []}}
event-context (atom {:text-event-map messages})
]
(reset! ui-context {:event-context event-context})
(with-redefs [swing-util/add-id-to-tab (stub :add-id-to-tab)
swing-util/relaunch (stub :relaunch)]
(add-article-to-tab 1 "tab" nil)
(should-have-invoked :relaunch)
(should-have-invoked :add-id-to-tab {:with ["tab" :selected 1]}))))
(it "adds the root id of a thread to a tab"
(let [message-id 1
root-id 100
messages {message-id {:tags [[:e (hexify root-id) "" "root"]]}}
event-context (atom {:text-event-map messages})
]
(reset! ui-context {:event-context event-context})
(with-redefs [swing-util/add-id-to-tab (stub :add-id-to-tab)
swing-util/relaunch (stub :relaunch)]
(add-article-to-tab message-id "tab" nil)
(should-have-invoked :relaunch)
(should-have-invoked :add-id-to-tab {:with ["tab" :selected root-id]})
)))
)

View File

@ -193,6 +193,13 @@
(prn 'get-references 'bad-tags-in-event (.getMessage e) event)
[nil nil nil])))
(defn get-root-of-thread [id]
(let [event-context (:event-context @ui-context)
messages (:text-event-map @event-context)
event (get messages id)
[root _ _] (get-references event)]
(if (some? root) root id)))
(defn process-references [state event]
(let [[_ _ referent] (get-references event)]
(if (nil? referent)

View File

@ -82,7 +82,8 @@
(defn add-article-to-tab [event-id tab-name _e]
(when-let [tab-name (if-new-tab tab-name)]
(swing-util/add-id-to-tab tab-name :selected event-id)
(let [root-of-thread (events/get-root-of-thread event-id)]
(swing-util/add-id-to-tab tab-name :selected root-of-thread))
(swing-util/relaunch)))
(defn block-article-from-tab [event-id tab-name _e]